Cocos2d 调试

准备工作

调试代码下载

生成调试配置

这里很多同学出现过一个问题,就是同时下载了很多的lua 调试插件,所以这里需要注意 如果使用luaide进行lua调试,
需要先禁用或卸载其他的lua调试插件.
步骤:

  1. 如果你没有生成过调试配置 那么先生成

    演示

    演示

    演示

    演示

  2. 如果你已经有调试配置了可修改/删除工作目录下的.vscode/launch.json
  3. 根据调试需要选择本地或者远程调试即可

参数说明

参数说明:

launch 本地调试

{
    "name": "Cocos2-launch",
    "type": "lua",
    "request": "launch",
    "runtimeType": "Cocos2",
    "localRoot": "${workspaceRoot}",
    "mainFile": "scripts/main.lua",
    "port": 7003,
    "exePath": "E:\\editor\\quick-2.2.6\\player\\win\\player.exe",
    "printType": 1
}
  1. name:命名调试器选择项名字

    演示

  2. type: 默认配置不需要修改
  3. request:默认配置不需要修改
  4. runtimeType:默认配置不需要修改
  5. localRoot: 等同于 cocos 中的 workdir 用来告诉cocos运行程序,工作目录是哪一个 提供两种方式
    1. ${workspaceRoot} 的相对路径

      1. 如果你直接拖入vscode的就是 工作目录那么 直接填写 ${workspaceRoot}

        演示

      2. 如果你拖入的只是工作目录中的一个文件夹 那么通过/.. 对于的层级进行设置

        演示.png

    2. 填写绝度路径(不推荐)
      1. 演示.png

  6. mainFile:启动的lua 文件 该配置和 localRoot 配合使用 以localRoot为根目录 进行相对路径填写
    1. 例1: 启动文件在 localRoot 的 src 目录名字为 main.lua --> src/main.lua
    2. 例2: 启动文件在 localRoot 的 scripts 目录下文件名为 game.lua --> scripts/game.lua
  7. port: 调试端口 和 调试代码中的端口统一即可 无特殊需求
  8. exePath:执行的exe文件路径 例如:E:/cocos/player/player.exe
  9. printType: print打印方式
    1. 控制台和系统输出
    2. 控制台输出
    3. 系统输出

attach 远程调试

{
    "name": "COCOS(remote debugging)",
    "type": "lua",
    "request": "attach",
    "runtimeType": "Cocos2",
    "localRoot": "${workspaceRoot}",
    "port": 7003,
    "printType": 1
},
  1. name:命名调试器选择项名字 同上
  2. type: 默认配置不需要修改
  3. request:默认配置不需要修改
  4. runtimeType:默认配置不需要修改
  5. localRoot: 与本地调试不同,远程调试 localRoot 当做scriptMap 一般情况下默认为 ${workspaceRoot} 即可,如果你的代码目录是 ${workspaceRoot} 下载的某个路径 也可明确指定 如 ${workspaceRoot}/scripts
  6. port: 调试端口 和 调试代码中的端口统一即可 无特殊需求
  7. printType: print打印方式
    1. 控制台和系统输出
    2. 控制台输出
    3. 系统输出

调试代码添加

说明:
下载对应的LuaDebug 或 LuaDebugjit 后放入脚本目录中

local breakSocketHandle,debugXpCall = require("LuaDebugjit")("192.168.1.102",7003)
local breakSocketHandle,debugXpCall = require("LuaDebugjit")("localhost",7003)
1. IP地址当本机调试时可使用localhost远程调试或移动设备端调试是需要输入调试器所在机器具体的ip
2. port 端口 LuaIde 默认配置中端口为7003  如有需要可执行更改确保调试器配置端口和调用
代码的端口统一即可
3. breakSocketHandle luaIde断点及时刷新函数,需要在定时器中调用 该函数确保断点能够及时的
发送到lua 客户端
4. debugXpCall 程序异常监听函数,用于当程序出现异常时调试器定位错误代码

cocos2.x

local breakSocketHandle,debugXpCall = require("LuaDebug")("localhost",7003)
CCDirector:sharedDirector():getScheduler():scheduleScriptFunc(breakSocketHandle ,0.3,false)
--如果已经存在 __G__TRACKBACK__ 请将 debugXpCall 直接加入 __G__TRACKBACK__ 即可
--__G__TRACKBACK__ 方法不是必须 debugXpCall是实现的是在lua 脚本调用错误时进行代码错误定位
function __G__TRACKBACK__(errorMessage)
    debugXpCall();
end
local status, msg = xpcall(main, __G__TRACKBACK__)

示例文件:cocos2x_main.lua

cocos3.x

local breakSocketHandle,debugXpCall = require("LuaDebug")("localhost",7003)
cc.Director:getInstance():getScheduler():scheduleScriptFunc(breakSocketHandle, 0.3, false)
--如果已经存在 __G__TRACKBACK__ 请将 debugXpCall 直接加入 __G__TRACKBACK__ 即可
--__G__TRACKBACK__ 方法不是必须 debugXpCall是实现的是在lua 脚本调用错误时进行代码错误定位
function __G__TRACKBACK__(errorMessage)
    debugXpCall();
end
local status, msg = xpcall(main, __G__TRACKBACK__)

示例文件:cocos3x_main.lua

时间: 2024-07-28 13:45:39

Cocos2d 调试的相关文章

LuaIde 文档导航页

VsCode使用基础 LuaIde 配置项 FAQ 视频教程地址 调试代码下载 cocos2d调试文档 Ulua&ToLua调试文档 SLua调试文档 xLua调试文档

关于windows下创建cocos2d lua工程 无法断点调试 relative (file not exist) 的问题

环境搭建:按照网上给出的攻略,安装pyhton2.7, 下载cocos2d-x-3.x的引擎, 安装VS2012,babelua插件. 创建工程:在cocos2d-x-3.6\tools\cocos2d-console\bin 目录下使用命令 cocos -new HelloLua -p HelloLua -d X:\ 开始编译:除了一些弃用接口和符号数的比较警告之外没有报错,经过我小破机二十几分钟的编译,全部通过,成功生成各种库和Windows下的模拟器. 使用babelua插件创建lua工程

Xcode7 真机免证书调试Cocos2D游戏

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;) 经过一番实验,如今最终能够在Xcode7上免证书真机调试了: 以上是在iPhone 6 plus上执行的效果,能够明显看到视野大了很多. 由于时间关系,我简单说说每一步的操作,在网上也不怎么能搜到,可能太过于简单,大家都懒得说吧 ;) 我用的是Xcod7.2 , OS X 10.11 ,设备为 iphone6p(iOS 9.2),另外一台是4s,系统为7.1.

[cocos2dx笔记008]cocos2d 用luabridge手动绑定类

基于cocos2dx 2.2.2版本.这几天使用了cocostudio实现了,动画,骨骼动画,UI编辑,粒子效果,虽然有些不足,但已经算是非常好了.今天尝试用lua,这个非常简单,创建的时候,设置语言为lua,那就可以创建lua工程. 在cocos2d-x-2.2.2\tools\project-creator下运行: python create_project.py -project test_lua -package com.android.zdhsoft -language lua xco

cocos2d 3.0 屏幕适配

1.解决方案 先直接给出解决方案,再慢慢解释,当然这个解决方案也不是完全完美的. [cpp] view plaincopy //如果是横屏游戏: glview->setDesignResolutionSize(960, 640, ResolutionPolicy::FIXED_HEIGHT); //一张960x640的背景显示 auto visibleSize = Director::getInstance()->getVisibleSize(); auto Bg = Sprite::crea

Windows下Codeblocks调试Cocos2d-x项目体验(一次失败的体验)

很久之前的一篇文章有介绍过在Ubuntu下安装Cocos2d-x3.11并使用Codeblock调试Cocos2d-x程序:http://www.cnblogs.com/moonlightpoet/p/5553499.html 而在Windows下很多都是用Visual Studio进行调试的,在写这篇博客的时候我的笔记本二号还在安装Visual Studio当中. 然而对Cocos2d-x以及Cocos2d-x JS有一定了解后我觉得用什么编译器都是无所谓的,以cpp程序为例,在proj.li

Cocos2D v3.4.9粒子效果不能显示的原因分析及解决办法

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在游戏App中为了衬托气氛我们往往使用一些特殊的图形效果,粒子效果无疑是其中最为常用,也最为方便的一种. 正常使用下,粒子效果的确很稳定,但是本猫最近在RPG游戏里却遇到了粒子效果不能显示的问题,调试着实花了一些功夫.现将问题现象,分析以及解决方法记录下来和大家一起分享,也便于以后回忆查找. 问题现象很简单,就是粒子效果不显示-但也不是所有粒子效果都不显示,只

Cocos2D中使用CCDrawNode绘制几何图形崩溃的解决

在cocos2D v3.x中已经不能像在v2.x中那样直接调用ccDrawXXX函数来绘制几何图形了. 我们可以使用CCDrawNode或者CCRenderer来绘制图形. 但是官方的Api手册中说的很清楚,CCDrawNode只推荐放在游戏的调试中调用,因为改变其状态必须先删除再重新添加,导致在绘制大量复杂几何图形时性能会很差. 在cocos2D v2.x中直接调用OpenGL的绘制一般放在draw方法中,但是在v3.4中实际测试发现,将CCDrawNode的绘制放在draw会导致App崩溃,

cocos2d-x快乐的做让人快乐的游戏3:cocos-2d 3.x中的物理世界

Cocos2d-x 3.0+ 中全新的封装的物理引擎给了开发人员最大的便捷,你不用再繁琐与各种物理引擎的细节,全然的封装让开发人员能够更快更好的将物理引擎的机制加入?到自己的游戏中,简化的设计是从2.0到3.0+的一个质的飞跃.(假设用的2.x版本号的cocos2d-x,看前一篇文章box2d) 以下相同以一个小demo来展示一下物理引擎的运用,同一时候说一下我在运用物理引擎中遇到的一些小小的问题. Cocos2d-x 3.0+中的物理属性: 1.物理世界被集成到场景中,当你创建一个场景,你能够