本文搭建环境:Xcode v-8.3.3 + cocos2dx v-3.15

1.创建一个空项目

在 ~/cocos2dx315/cocos2d-x-3.15/tools/cocos2d-console/bin 此路径下

打开终端并运行命令 :cocos new HelloLua -p com.wwj.hellolua -l lua -d /Users/xxx/Desktop/TestArea/TestLua315

注:HelloLua 工程名 com.wwj.hellolua 包名 /Users/xxx/Desktop/TestArea/TestLua315 存放路径

创建提示信息如下:表示创建工程成功



2.Xcode 打开 HelloLua.xcodeproj 工程



层级视图如下图所示:



主入口就是 main.lua 中 的 main 函数:执行了 app 路径下的 MyApp.lua 脚本 (注:这里是用点表示路径 不是‘/’)

local function main()
    require("app.MyApp"):create():run()
end

坑1 : 在 XCode 下运行项目崩溃, 追踪到崩溃的位置为 lua_open() 函数:
// register lua module
    auto engine = LuaEngine::getInstance();
......
_state = lua_open();
纠结了很久,搜索了一些解决方案,没有解决根本问题。但是,可以正常的在真机上进行运行测试,不会产生崩溃。 (如有大侠碰到并解决此问题,望不吝赐教!!!)


3.执行自己写的 lua 脚本

在 views 下创建一个脚本文件,与 MainScene 同级,我这创建的是 LoginLayer.lua, 并写入自己的代码

local LoginLayer = class("LoginLayer",function() return cc.Scene:create() end)

function LoginLayer.create()
    local scene = LoginLayer.new()
    scene:addChild(scene:createLayer())
    return scene
end

function LoginLayer:createLayer()
    local winSize = cc.Director:getInstance():getVisibleSize()
    local layer = cc.Layer:create()
    local label = cc.Label:createWithSystemFont("123","Arial",32)
    label:setPosition(cc.p(winSize.width/2,winSize.height/2))
    layer:addChild(label)
    return layer
end

return LoginLayer


对入口函数进行修改:
local function main()
    local loginScene = require("app.views.LoginLayer"):create()
    cc.Director:getInstance():runWithScene(loginScene)
end

这样便运行出来了我们自己创建的程序:(当然,我这里为了测试,你可以写更为精彩的代码)


注意:

1.代码的写法, 为什么有的是 ' : '(冒号),有的是 ' . '(点),注意二者的区分

2.测试阶段可以使用 print(" === === ") 函数输出日志进行跟踪分析

3.重申:Xcode 运行报内存错误问题,如有解决办法,望指点一二,感激不尽!

cocos2dx 在 Mac 下创建 lua 工程总结的更多相关文章

  1. xcode – 上传到App Store时进行身份验证

    只需为现有安装/文件夹创建备份,这很重要,因为在(新)安装期间,Transporter将删除以前的安装:现在运行以下命令来更新Transporter:希望这有助于某人.

  2. 无法验证iOS应用(已获得有效证书)

    当切换到优胜美地时,我干净安装了我的Mac,现在我在将iOS提交到商店时遇到了问题.当我验证我的存档时,我不断收到“您的帐户已经拥有有效的iOS分发证书”.我已尝试从会员中心重命名和重新下载我的证书,但这不起作用.解决方法一个非常常见的“doh!”

  3. Xcode:如何导出开发人员配置文件以便在另一台Mac上导入它

    我需要从我的旧Mac导出我的开发者配置文件并将其导入另一台Mac,因为我收到以下错误:我发现我可以从这里导出它:但在我的Mac上我有2个帐户,如果我点击导出帐户,我是否导出它们?就像导出用于签署iOS开发证书的私钥并将其导入新Mac一样?

  4. iOS从UIWebview内容创建pdf

    哪个是从webview内容中获取最佳质量pdf文档的最佳选择?

  5. macos – 使用Xcode 4在Mac OS X Lion上设置SDL

    我一直试图让一个超级简单的SDL程序工作.我正在使用MacOSXLion.我有SDL在SNowLeopard工作,但它似乎不想在狮子身上工作.到目前为止我有这个:当我尝试编译此代码时,它给了我这个错误:如果我取消注释当前评论的#ifdef内容,程序将编译,但随后会在SDL_SetVideoMode行上接收SIGABRT.我刚才在另一个程序中看到了这些注释的东西,我不确定我是否应该拥有它.我怎么能让这个工作?

  6. ios – 未在Mac上接收自定义记录区域的CloudKit推送通知

    这看起来只是OSX中的一个错误,但可以通过这个简单的更改来解决.

  7. ios4 – 在iOS模拟器和设备中测试NSFileProtectionComplete

    我锁定了模拟器,但是当我在Finder中双击文件时,文件仍然可读.解决方法iTunes不会从设备复制文件,除非它有您的密码或设备先前已被信任;这就是它如何解密数据.在Xcode8及更早版本中,模拟器使用主机文件系统,macOS当前不支持每个文件加密,就像iOS一样,因此在macOS上你无法在模拟器中测试它.

  8. xcode4 – 设置XCode 4工作区以为Mac和iOS构建库

    我正在尝试在XCode工作区内构建几个应用程序:一个应用程序将是一个iOS应用程序,另一个应用程序将是一个MacOSX应用程序.我希望在应用程序的两个版本中都包含一组特定的类.我正在努力弄清楚什么样的项目结构最能支持一些共享的代码,一些特定于iOS应用程序,一些特定于Mac应用程序.是否有一般的XCode或XCode4中的这种事情的最佳实践?我应该为共享代码创建一个库项目,并为该库的iOS和MacOSX版本创建2个不同的目标吗?

  9. xcode – Mac App Store拒绝 – 未启用应用沙箱

    我已将我的应用程序提交到MacAppStore,并且验证正常.但是,我继续使用以下内容获取无效二进制消息;AppsandBoxnotenabled–Thefollowingexecutablesmustincludethe“com.apple.security.app-sandBox”entitlementwithaBooleanvalueoftrueintheentitlementsproper

  10. macos – Applescript iTunes字典解释

    我想知道以下不同配色方案的含义:蓝色C标签是什么意思?请温柔;-)解决方法蓝色“C”表示“命令”.你这样使用这些:紫色C表示“类”.这些表示可以从iTunes中提取的不同类型的数据,选择单个类会显示它具有的属性(橙色E).类是在您请求信息后返回给您的内容,如下所示:运行之后,currentSong将包含一个Song类的实例,然后您可以询问该信息,例如其艺术家是谁,等等.

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部