为什么写这个 上面这个问题的答案也是我写这篇文章的初衷,在最近给游戏添加一些列表的时候,对比着应用了一下他们两个,在它们两个之间的优劣势之间进行取舍,就有了这个问题的答案. 按照我一个iOS开发而言,他们俩之间交集就是 UITableView是UIScrollView 的子类,也就是说UITableView是在UIScrollView的基础上写的,在平时的应用中 UITableView或者是UICollectionView应用肯定比UIScrollView要多,要强大! 但是在Cocos中,UI…
为什么要使用Lua进行游戏开发?转载请注明出处http://www.cnblogs.com/zisou/p/cocos2dx-lua1.html 上面一个问题我觉得在我们使用Lua之前需要深入思考的,Lua有何优点?缺点又是什么?先找准自己的项目定位 在什么时候使用是很必要的: 经过自己一番摸索之后有如下结论: 优点: 1,嵌入式脚本开发可以跳过平台市场进行独立的游戏资源更新: 2,在使用Lua开发能降低在使用C++中得指针引用报错,nil类型问题: 3,可以使用Lua表结构来完成面向对象: 还…
问题: 开发cocos2dx手游Cocos2dx+lua合适还是Cocos2dx+js合适 百牛信息技术bainiu.ltd整理发布于博客园 回答: 作者:廖宇雷链接:https://www.zhihu.com/question/21130385/answer/18485625来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 2014.02更新:请放心选择 Lua 吧.触控已经收购了 quick-cocos2d-x,2014年肯定会大力强化 cocos2d-x 的…
cocos2dx目前lua对应的c++对象的生命周期管理,是基于c++析构函数的,也就是生命周期可能存在不一致,比如c++对象已经释放,而lua对象还存在,如果这时候再使用,会有宕机的风险,为此我开发了cocos-lua项目,基于lua gc管理c++对象的生命周期. cocos-lua以cocos2d-x 3.17.2的c++项目为基础,采用基于lua gc来管理c++对象的生命周期,提供更丰富cocos2d-x lua api,包括几乎除模版以外的所有lambda(schedule.sche…
花了几天时间看了下cocos2d-x lua绑定那块,总算是基本搞明白了,下面分三部分解析lua绑定: 一.lua绑定主要用到的底层函数 lua绑定其本质就是有一个公用的lua_Stack来进行C和Lua之间的值传递,在路径[项目根目录]\frameworks\cocos2d-x\external\lua\luajit\include下有个lua.h文件,大部分lua绑定底层函数以及相关的常量都在这里. 1.lua堆栈常量 #define LUA_REGISTRYINDEX (-10000) /…
相信很多朋友在使用cocos2d-x+lua开发游戏时都遇到过接入iOS原生SDK的问题,比如常见的接应用内支付SDK,广告SDK或是一些社交平台SDK等等,我也没少接过这类SDK.这篇文章主要是对我做过项目中接入iOS原生SDK实现方案的一个总结,在这里分享给大家,希望对自己和大家的开发工作都有帮助. 在展开正文之前,先做几点说明: 1.我这里说的iOS原生SDK是指那些完全用Objective-C语言开发,为原生iOS程序设计的SDK.swift很好很强大,不过我还没用过,惭愧,不过语言终归…
用cocoside 创建一个项目 cocos2dx lua 项目即可 ,然后替换掉gamescene 就可以,具体效果还有函数的参数,相信大家一看就明白.简单说下ide 创建的 cocos lua 项目 和cocos quick 项目的区别.cocos lua项目就是简单的一个没有带quick框架的项目,在src目录下没有framwork目录(这里面在quick项目有,是别人写好的一个框架) 可以直接用IDE打包.cocos quick 项目就是包含了别人开发的quick框架.暂时右键没有直接打…
cococs2dx 3.13.1 + vs2013 + win10 1.首先按照<cocos2dx lua 绑定之一:自动绑定自定义类>绑定Student类 2.在Student类中增加一个用于测试手动绑定的函数manual_call ①Student.h中增加函数 //手动绑定调用函数 void manual_call(); ②Student.cpp中增加函数实现 //和自动绑定相比,只增加了这个函数 void Student::manual_call() { std::cout <&…
RichLabel 简介 RichLabel基于Cocos2dx+Lua v3.x解析字符串方面使用了labelparser,它可以将一定格式的字符串,转换为lua中的表结构扩展标签极其简单,只需添加一个遵守规则的标签插件即可,无需改动已存在代码!!! (标签插件都在labels文件夹下) labelparser的详解labelparser在github上的源码RichLabel在github上的源码 支持图片(缩放,旋转,是否可见) 支持文本属性(字体,大小,颜色,阴影,描边,发光) 支持标签…
cocos2d-x lua table数据存储 version: cocos2d-x 3.6 1. 将table转为json http://blog.csdn.net/songcf_faith/article/details/46389157 http://www.cnblogs.com/songcf/p/4556773.html 1) 引入json库 require("src/cocos/cocos2d/json") 2) 使用json -- table转json local jso…
cocos2d-x lua 使用ListView version: cocos2d-x 3.6 本文主要讲述:使用Cocos Studio创建ListView,和列表项的模板,代码中通过模板创建列表的每一项,并替换其中的图片文字等. 1. 加载Cocos Studio编辑好的资源 -- //cocos studio 中资源的名字 M.srcLayer = { ["listView"] = "list_view", ["btnFriends"] =…
先用xcode5.1.1或更低版本创建一个Category,如图: 然后拷贝以下代码到刚创建的UIImageView+ForScrollView.m文件中: - (void) setAlpha:(float)alpha { if (self.superview.tag == noDisableVerticalScrollTag) { && self.autoresizingMask == UIViewAutoresizingFlexibleLeftMargin) { &&…
我们的编写的第一个Cocos2d-x Lua程序,命名为HelloLua,从该工程开始学习其它的内容.创建工程我们创建Cocos2d-x Lua工程可以通过Cocos2d-x提供的命令工具cocos实现,但这种方式不能与Cocos Code IDE集成开发工具很好地集成,不便于程序编写和调试.由于Cocos Code IDE工具是Cocos2d-x开发的专门为Cocos2d-JS和Cocos2d-x Lua开发设计的,因此使用Cocos Code IDE工具很方便创建Cocos2d-x Lua工…
Call custom c++ from Lua cocos2d-x lua binds c++ class, class functions ,enum and some global functions to lua through auto-binding by bindings-generator(tools/bindings-generator) and some manual binding,so we can call custom c++ from lua convenientl…
相信很多朋友在使用cocos2d-x+lua开发游戏时都遇到过接入iOS原生SDK的问题,比如常见的接应用内支付SDK,广告SDK或是一些社交平台SDK等等,我也没少接过这类SDK.这篇文章主要是对我做过项目中接入iOS原生SDK实现方案的一个总结,在这里分享给大家,希望对自己和大家的开发工作都有帮助. 在展开正文之前,先做几点说明: 1.我这里说的iOS原生SDK是指那些完全用Objective-C语言开发,为原生iOS程序设计的SDK.swift很好很强大,不过我还没用过,惭愧,不过语言终归…
cocos2d-x lua与c++简单交互 version: cocos2d-x 3.6 本文讲述lua与c++的一些简单交互: lua通过消息方式调用c++无参接口 c++调用lua带参接口 1.通过消息方式调用无参接口 接收方监听消息命令,发送方发送消息请求. 1) c++层监听消息 //在appdelegate启动时监听 void communication_cpp_lua::registerAllEvent() { Director::getInstance()->getEventDis…
cocos2d-x lua 使用http(下载图片, POST JSON) version: cocos2d-x 3.6 1.使用http post json与服务器交互 require("src/cocos/cocos2d/json") require("src/cocos/network/NetworkConstants") -- post json local xhr = cc.XMLHttpRequest:new() xhr.responseType = c…
cocos2d-x lua table与json的转换 version: cocos2d-x 3.6 1.引入json库 require("src/cocos/cocos2d/json") 2.使用json function testJson() local beginTime = os.time() local testTable = {} -- [ -- { -- "UserId": "1234567890", -- "Name&q…
cocos2d-x lua 调用onEnter和onExit version: cocos2d-x 3.6 onEnter和onExit在lua中不会因节点别add和remove而直接被调用,当子节点被父节点add和remove时,会发送enter和exit的消息,所以需要再初始化节点的时候,监听消息,并在收到消息后调用onEnter或onExit. local function onNodeEvent(event) if event == "enter" then self:onEn…
cocos2d-x lua 触摸事件 version: cocos2d-x 3.6 1.监听 function GameLayer:onEnter() local eventDispatcher = self:getEventDispatcher() local function onTouchBegan(touch, event) local locationInNode = self:convertToNodeSpace(touch:getLocation()) local s = self…
cocos2d-x lua 使用自定义消息EventCustom version: cocos2d-x 3.6 1.发送消息 -- post message -- event将会被传递给消息接收函数,所以所有需要传递的数据都可放到event中 local event = cc.EventCustom:new("MSG_TEST") event._usedata = {["state"]=self.curState, ["actionId"]=se…
cocos2d-x lua 实现状态机 version: cocos2d-x 3.6 0.状态机 状态机主要分为2大类:第一类,若输出只和状态有关而与输入无关,则称为Moore状态机:第二类,输出不仅和状态有关而且和输入有关系,则称为Mealy状态机. 1.应用场景 例如一个跑酷游戏,角色有如下状态:跑动,滑行,起跳,下落,飞行等.每一个状态有持续时间,和该状态期间的处理逻辑,当前状态由用户输入和上一个状态确定.那么很容易想到角色的状态变化通过状态机来实现,非常的方便. 2.实现 1) 各状态的…
cocos2d-x lua 实现单例(管理类) version: cocos2d-x 3.6 示例代码 local DogManager = class("DogManager") -- other require local UserData = require("src/app/controller/UserData") DogManager.instance = nil function DogManager:getInstance() if not DogM…
自从开始关注OpenResty之后,逐渐关注Lua语言,发现这个语言真真是容易让人喜爱的语言.偶然间发现了cocos2d-x,还支持lua,所以果断尝试一下. 这里是在cocos2d-x官方网站下载了v2.2.3版本. 命令行中切换到解压后的COCOS2DX目录,切换到tools/project-creator,直接输入 python create_project.py 它就会告诉你有哪些参数,这里根据提示输入项目名和包名,在语言选项中选择lua就可以了,如 python create_proj…
使用cocos2d-x lua架构,游戏中存在两种内存回收方式. 1.cocos2d-x 本身内存回收 PS:假设在lua在创建一个类,继承cocos2d-x的一个类A,则该A也遵循cocos2d-x的内存回收方式 假设A没有被其它cocos2d-x的对象引用,或者调用retain()方法,则会被回收 2.lua 本身内存收回…
在整个Port的过程中遇到的问题总结例如以下 1.一定要使用最新版本号的cocos2dx,原因大家看一下changelog就知道了,近期的cocos2dx版本号都是在修windows phone上的bug,所以为了避免少出问题,还是直接升级到最新版本号吧 2.假设你使用的是cocos2dx + lua方式,眼下的project-creator并不支持lua版本号的windows phone平台,可是cpp版本号是支持的,因此我们能够在cpp版本号的基础上把libcocoslua以及liblua两…
Cocos2d-x 3.0超过环境的版本号来建立和前Cocos2d-x 2.0 差异较大的版本,从同时Cocos2d-x 3.0项目打包成apkAndroid的应用程序文件,步骤,构建环境有些乏味安德鲁斯,但是,一旦建立后,.未来将很快!OK,发环境吧! 1.cocos2d-x环境的设置以及android的环境搭建 1.下载cocos2d-x 3.0正式版 2.下载android的sdk以及ndk 3.下载ant (注:cocos2d-x的环境变量配置须要用到ant.主要是android须要使用…
之前说,我把这个两个词区别.经过太长时间.当然,反击的麻烦.quick-cocos2d-x它提到quick,cocos2d-x lua姑且称为本地lua对. 我认为,首先与这两个小的朋友接触会跟着或多或少知道我有同样的疑惑,个是使用两种不同的api吧.我仅仅能说说对了一半,确实,quick有一套自己的API,可是,qucik的这套api是在原生lua上进行再次封装的,所以quick还是支持原生lua的api. 还记得第一次打开quick主页的时候,那时候还没有被触控收购.就看到标题写到-- "这…
在我的书或出售之前,我的源代码,有Csvshadow文件. 也许这是偏见.我与工作将是最长的轮廓Csv,所以,我会帮助不大喜欢它的游戏. Csv文件,非常格式easy,也就是说,一个数据线,字段之间用逗号分隔,策划也能够方便地使用Excel进行编辑. Csv格式的文件.解析起来也非常easy,所以自己动手写写非常快~(小若:我就喜欢拿来主义,你怎么着) 近期在用Lua写游戏,对于技能.怪物等配置,我还是选择用Csv~ 不得不说,Lua等脚本语言,在某些方面是C++没法比的,这次我就用Csv来表达…
cococs2dx 3.13.1 + vs2013 + win10 1.首先定义C++类Student 在cocos2d-x\cocos文件夹下新建一个user_define的文件夹放置两个文件. 注意:这个类没有从Ref继承,是一个简单的C++类. ①头文件Student.h #pragma once #include "base/ccMacros.h" #include <iostream> #include <string> //注意这个CC_DLL,否则…