quick-cocos2d-x + Lua 开发
quick-cocos2d-x + Lua 开发
quick-cocos2d-x + Lua 开发 首页在Eclipse中搭建quick-cocos2d-x的lua开发环境.
1. 首先需要给eclipse装一个lua的plugin(google之), 或者直接下载ldt集成开发环境(http://www.eclipse.org/koneki/ldt/), 目前稳定版本是0.9。
2.通过git工具clone: https://github.com/dualface/quick-cocos2d-x,比如我放在e盘. 如果你后面需要重新编译quick,那你需要git submodule update一下 cocos2dx的代码,具体参考quick说明。
3. 尝试运行E:\quick-cocos2d-x\sample\CoinFlip\run_simulator_win32.bat, 如果你是xp系统,可能会弹出无法定位inet_ntop这些错误, 这是因为quick里使用了luaSocket,而它使用了一些winXP不支持的系统API, 我修改了部分socket代码,在WIN32下替换了这些API的调用,https://github.com/laomoi/c2x_lua_bindings/tree/master/luasocket_winxp_patch 把这里面的3个文件替换掉lua_extension/socket里的文件后再重新编译生成模拟器。
4. 打开ldt,新建lua工程(以sample\CoinFlip为例)

5. 留意到ldt自带了一个lua5.1的execution environment, 这个东西主要是为了实现代码提示用的, 默认它支持了lua5.1的一些系统API, 比如io, os, math这些
6. 为了支持语法提示Cocos2dx和quick额外添加的一些lua bindnig和 quick framework,我们现在需要重新制作一个execution environment之后替换这个默认的lua 5.1.
详细制作的过程可参考https://github.com/laomoi/lua_complete_eclipse, 这里我们直接下载我之前生成好的execution environment, 然后在项目里添加进来




添加成功后, 项目目录应该如图所示, 下面有个quickLua.(debugger.lua如果没有不要紧,后面步骤会添加进去)

如果此时还没看到图中所示的quickLua, 那么重新在项目属性里, Lua->BuidPath->Libraries-> 点击Add Library重新添加一下 quickLua。
7. 在代码里试试看是否已经能弹出语法提示了
8. 下面配置调试环境让ldt支持在quick的模拟器里断点调试


点击debug,就会启动一个debug的侦听器等待lua程序通过socket连进来, 默认是30秒超时。
9. Lua程序要连进来,需要Luasocket的支持(参考第3步说明), 同时需要在项目里引入一个debugger.lua文件,这个文件可以在ldt里面生成导出

只是0.9版本的ldt默认导出的debugger文件不支持luajit,而quick使用了luajit2,所以我们需要重新制作一个debugger.lua, 这里已经有个猛男制作好了:
gist.github.com/jdesgats/5383865/raw/56591f94f48a253a821a5610525b402206c3df96/debugger.lua
直接下载拷贝到你的scripts目录里
然后在项目lua代码开头(比如game.lua,或者main.lua)加以下代码
local initconnection = require(“debugger”)
initconnection(’127.0.0.1′ , 10000 , ‘luaidekey’)
10. 尝试一下断点调试, 比如在scene/MenuScene 开头加个断点, 然后ldt开启debug侦听, 接着运行sample\CoinFlip\run_simulator_win32.bat, 顺利的话你会看到模拟器启动话,就停在断点上了

11. 你可能会发现调试时无法跳入quick framework里的代码,比如display.lua里的函数执行无法跳入。简单的解决方法是, 把framework拷贝入你的项目目录, 然后注释掉 main.lua里的CCLuaLoadChunksFromZip(“res/framework_precompiled.zip”)
再进行调试就可以跳进display.lua了。

12. ldt默认会解析execution environment里面和 build-source里面的lua文件,如果你发现你自己写的lua文件没有 被解析到,请检查
A. 你的代码文件文件是否在build-source里, 右键属性, build, source-path 进行查看
B. 是否依照了 ldt规定的文档格式写了注释 ,参考 http://wiki.eclipse.org/Koneki/LDT/User_Area/Documentation_Language
quick-cocos2d-x + Lua 开发的更多相关文章
- 在cocos code ide的基础上构建自己的lua开发调试环境
对于一种语言,其所谓开发调试环境, 大体有以下两方面的内容: 1.开发, 即代码编写, 主要是代码提示.补齐, 更高级一点的如变量名颜色等. 2.调试, 主要是运行状态下断点.查看变量.堆栈等. 现在 ...
- 详解LUA开发工具及其环境配置
LUA开发工具及其环境配置是本文要介绍的内容,主要是来了解并学习lua开发工具的使用和环境的配置,第一次接触LUA的话,就跟本人一起学习吧.看我能不能忽悠到你. LUA是语言,那么一定有编写的工具.第 ...
- Lua开发环境配置
Lua(英语发音:/ˈluːə/)程序设计语言是一个简洁.轻量.可扩展的脚本语言,是葡萄牙语中“Luna”(月亮)的意思. Lua is a powerful, fast, lightweight, ...
- nginx 与 lua 开发环境搭建
首先下载最新版的 相关软件 的安装文件. nginx: http://nginx.org/en/download.html LuaJIT: http://luajit.org/download.htm ...
- 一、ESP8266入门(基于LUA开发)
序 一入坑便停不下来... 还挺有意思的哈,233,,,, 资料杂,自己一个一个去找确实浪费了不少时间,而且大多还都是英文的,需要硬着头皮看. 这次实践入门,更是对英语的重要确信无疑.Github必须 ...
- Nginx详解二十三:Nginx深度学习篇之Nginx+Lua开发环境搭建
Nginx+Lua开发环境 1.下载LuaJIT解释器wget http://luajit.org/download/LuaJIT-2.0.2.tar.gztar -zxvf LuaJIT-2.0.2 ...
- [转载]使用VS2015搭建Lua开发环境
参考原文请看: Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境(一) Lua学习笔记2:Windows7下使用VS2015搭建Lua开发环境(二) 本篇主要分以下几个部分: 一 ...
- 快速将wax配置到项目中进行lua开发
通过Finder浏览到你保存该项目的文件夹.创建三个新的文件夹:wax.scripts和Classes. 第一:首先,下载源代码的压缩包.Wax放在GitHub上(https://github.com ...
- CentOS安装OpenResty(Nginx+Lua)开发环境
一.简介 OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高 ...
随机推荐
- 深入理解Mybatis中sqlSessionFactory机制原理
对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外.本章将通过以下几点详细介绍MyBatis的初始化过程. 1.MyBatis的初始化做了什么 2. MyBatis基于XML配置 ...
- java---正则表达式的字符串简单实用及扩展链接
一:什么是正则表达式 1.定义:正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的 ...
- 【BZOJ】1009: [HNOI2008]GT考试(dp+矩阵乘法+kmp+神题)
http://www.lydsy.com/JudgeOnline/problem.php?id=1009 好神的题orzzzzzzzzzz 首先我是连递推方程都想不出的人...一直想用组合来搞..看来 ...
- ACM计算几何模板——二维几何基础(基本运算,点和线,多边形)
/*==========================*\ | 计算几何基础函数 | | 1.点和向量的定义 | | 2.向量的基本运算 | | 3.点积 | | 4.向量长度 | | 5.两向量角 ...
- Spring RestTemplate post
MultiValueMap<String, Object> map = new LinkedMultiValueMap<>(); map.add("auditPara ...
- PHP疑难杂症
下面这种写法是否允许? echo '\n' // \n echo "\n" // 输出换行 直接访问对象不存在的属性,会怎样? $o = new stdClass(); echo ...
- 纯CSS序列号
per-Css-ol .ol { cursor:pointer; list-style-type: none; counter-reset: sectioncounter; } .ol li:befo ...
- 160616、jQuery插件之ajaxFileUpload及jqueryeasyui学习资料分享
第一步:先引入jQuery与ajaxFileUpload插件.注意先后顺序,ajaxFileUpload插件依赖jquery <script src="${base}/mobile/j ...
- (转)android mock location
android mock location 2014-01-26 我来说两句 来源:党玉涛 收藏 我要投稿 现在软件市场上有很多可以改变手机地理位置的软件,更改后打开微信就可以随意定位 ...
- 【转】spring boot application.properties 配置参数详情
multipart multipart.enabled 开启上传支持(默认:true) multipart.file-size-threshold: 大于该值的文件会被写到磁盘上 multipart. ...