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 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高 ...
随机推荐
- SQL UNIQUE Constraint
SQL UNIQUE Constraint The UNIQUE constraint uniquely identifies each record in a database table. The ...
- jQuery实现淡入淡出二级下拉导航菜单的方法
本文实例讲述了jQuery实现淡入淡出二级下拉导航菜单的方法.分享给大家供大家参考.具体如下: 这是一款基于jQuery实现的导航菜单,淡入淡出二级的菜单导航,很经常见到的效果,这里使用的是jquer ...
- 使用jquery操作session方法分享
摘要: 今天分享的是使用jquery来处理session.我们将使用sessionStorage对象,它类似与localStorage对象,只是sessionStorage是用来储存session数据 ...
- 《Programming with Objective-C》第七章 Values and Collections
1.平台相关的数据类型 These types, like NSInteger and NSUInteger, are defined differently depending on the tar ...
- 数据库已有时间索引,想再添加ID索引
将时间索引的代码复制进去后,将编辑框的变量改为m_QueryID. 准备先以时间索引查找出大概数据,再直接使用ID索引精确查找. 于是想直接精确查ID为105的数据信息. 出现错误: 发现错误原因是忘 ...
- ios开发之--NSMutableParagraphStyle与NSParagraphStyle的使用
在ios6以后,苹果官方建议用“- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options ...
- ThreadLocal并不是一个Thread
ThreadLocal是什么? 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁 ...
- java框架---->RxJava的使用(一)
RxJava是响应式程序设计的一种实现.在响应式程序设计中,当数据到达的时候,消费者做出响应.响应式编程可以将事件传递给注册了的observer.今天我们就来学习一下rxJava,并分析一下它源码感受 ...
- Codeforces Round #425 (Div. 2))——A题&&B题&&D题
A. Sasha and Sticks 题目链接:http://codeforces.com/contest/832/problem/A 题目意思:n个棍,双方每次取k个,取得多次数的人获胜,Sash ...
- Fully qualified name FQCN
Fully qualified name - Wikipedia https://en.wikipedia.org/wiki/Fully_qualified_name In computer prog ...