入坑cocos之菜鸟瞎喷

cocos API:http://api.cocos.org/
cocos 官网:http://www.cocos.com/
cocos3.10(cocos2d-x+cocos studio +cocos)下载:
http://pan.baidu.com/s/1kVL20Hx 密码:vked

cocos作为一个游戏引擎在2D方面获得一片赞誉,不过也是骂声也是不少。
刚刚上手cocos2d-x 3.10 lua碰到了几个问题记录于此

新建项目之后print无输出,运行错误也不提示错信息。

AppDelegate.cpp文件中

auto engine = LuaEngine::getInstance();
后边加上
engine->executeString("print = release_print");

获取不到lua文件,require报错

在main.lua文件首行加入

local p = "/src/app/views/"
local m_package_path = package.path
package.path = string.format("%s?.lua;%s?/init.lua;%s", p, p, m_package_path)

改变不了游戏方向

src文件夹下config.lua中把代码中的width和height的数值就行对调即可调整方向,同时也可以改变分辨率(ps:自己摸索的,若有不对请多指教)

CC_DESIGN_RESOLUTION = {
    width = 960,
    height = 640,
    autoscale = "SHOW_ALL",
    callback = function(framesize)
        local ratio = framesize.width / framesize.height
        if ratio <= 1.34 then
            -- iPad 768*1024(1536*2048) is 4:3 screen
            return {autoscale = "SHOW_ALL"}
        end
    end
}

场景跳转

或许是我场景写法不对就是跳转场景跳转失败
我使用了enterScene方法

self:getApp():enterScene("GameScene")

android返回键监听

在网上找了好多都不好用,就这个可以,
把返回的layer添加到当前的scene中就行了

function MainScene:keyCode( ... )
  local layer = cc.Layer:create()
    print("返回键监听")
     --回调方法
    local function onrelease(code, event)
        if code == cc.KeyCode.KEY_BACK then
              print("你点击了返回键")
               cc.Director:getInstance():endToLua()
        elseif code == cc.KeyCode.KEY_HOME then
            print("你点击了HOME键")
            cc.Director:getInstance():endToLua()
        end
    end
     --监听手机返回键
    local listener = cc.EventListenerKeyboard:create()
    listener:registerScriptHandler(onrelease, cc.Handler.EVENT_KEYBOARD_RELEASED)
    --lua中得回调,分清谁绑定,监听谁,事件类型是什么
    local eventDispatcher =layer:getEventDispatcher()
 eventDispatcher:addEventListenerWithSceneGraphPriority(listener,layer)
    return layer

 end

获取csb中的控件

--加载csb文件
MainScene.RESOURCE_FILENAME = "MainScene.csb"
-- 获取UI控件  ["csb文件中的控件名"]   = {["varname"] = "变量名",这里有一个坑,
这个方法不能绑定所有的node,只是绑定了首层的node,获取不到二层及以下的节点
MainScene.RESOURCE_BINDING = {  
 ["ButStart"]   = {["varname"] = "startBtn"},}

VS编译后没后cmd窗口(黑窗口)

在cocos项目目录中的\frameworks\runtime-src\proj.win32中有一个
SimulatorWin.cpp 文件把文件中这一行的0改为大于0的数值即可

#define SIMULATOR_WITH_CONSOLE_AND_MENU 0

你可能感兴趣的:(cocos)