怎么运行cocos2dx 3.x simulator?
2016-09-15 00:05
211 查看
1.simulator的好处是:
快速切换分辨率;F5快速重新启动项目;
这对于脚本语言来说都是很方便快捷的。
![](https://images2015.cnblogs.com/blog/55799/201609/55799-20160914120344461-1057475085.png)
2.涉及到显示参数的文件有两个:
①lang,这个是菜单的语言文件,如果没有这个文件的话,则上图的菜单为英文。(这个文件可以在ide-support文件夹找到,但是在3.13中去掉了这个文件夹)
②config.json,这个文件定义了一些分辨率之类的参数,将在下面列出来。
③还有启动参数,也在下面列出来。
3.启动参数(不提供启动参数,将不能正常运行,在windows下可以使用bat文件来提供启动参数进行启动)
具体可以参看ProjectConfig.cpp文件里的parseCommandLine函数实现
①-workdir:工作目录
②-writable-path:写入路径
③-entry:脚本入口文件
④-landscape:是否横屏
⑤-portrait:是否竖屏
⑥-resolution:窗体分辨率
⑦-scale:缩放比例
⑧-write-debug-log:日志路径
⑨-console:是否显示控制台
⑩-position:窗体偏移位置
⑪-debugger:调试器类型
⑫-app-menu:是否显示菜单
⑬-resize-window:窗口大小是否可变
⑭-retina-display:是否retina
⑮-port:没有实现功能
⑯-listen:绑定监听地址
⑰-search-path:资源搜索路径
⑱-first-search-path:首个资源搜索路径
⑲-language-data-path:语言数据路径
在windows下写的运行bat如下(simulator.exe当前目录为工作目录;当前目录下的src和res为资源搜索路径;窗口分辨率1134x750):
4.config.json配置文件
具体可以参看ConfigParser.cpp文件里的readConfig函数实现
①width:设计分辨率的宽
②height:设计分辨率的高
③name:窗口显示的名字
④isLandscape:是否横屏
⑤entry:脚本入口文件
⑥consolePort:控制台监听端口
⑦debugPort:没有实现
⑧uploadPort:文件上传端口
⑨isWindowTop:没有实现
⑩simulator_screen_size数组:菜单按钮显示的分辨率
5.个性化需求:让运行窗口在屏幕中间
①-position可以设置偏移位置,如果屏幕分辨率都一样的话可以设置这个属性,另外一个方法就是增加一个参数。
②增加一个-screen-center参数
在ProjectConfig.h/ProjectConfig.cpp中增加_isInScreenCenter属性(仿照_isResizeWindow属性增加对应的方法)
③ProjectConfig.h增加代码:
![](https://images2015.cnblogs.com/blog/55799/201609/55799-20160927204738031-513203732.png)
![](https://images2015.cnblogs.com/blog/55799/201609/55799-20160927204750891-1739302820.png)
④ProjectConfig.cpp增加代码:
![](https://images2015.cnblogs.com/blog/55799/201609/55799-20160927204804656-1258106114.png)
![](https://images2015.cnblogs.com/blog/55799/201609/55799-20160927204823453-311176979.png)
读取配置文件中的数据:
![](https://images2015.cnblogs.com/blog/55799/201610/55799-20161027153419875-681627501.png)
⑤在SimulatorWin.cpp中增加代码
6.个性化需求:增加-console_leftop参数让控制台窗口出现在屏幕左上角的位置
①和上面的代码同理,增加_isConsoleLeftTop属性
②在SimulatorWin.cpp中增加代码
快速切换分辨率;F5快速重新启动项目;
这对于脚本语言来说都是很方便快捷的。
![](https://images2015.cnblogs.com/blog/55799/201609/55799-20160914120344461-1057475085.png)
2.涉及到显示参数的文件有两个:
①lang,这个是菜单的语言文件,如果没有这个文件的话,则上图的菜单为英文。(这个文件可以在ide-support文件夹找到,但是在3.13中去掉了这个文件夹)
②config.json,这个文件定义了一些分辨率之类的参数,将在下面列出来。
③还有启动参数,也在下面列出来。
3.启动参数(不提供启动参数,将不能正常运行,在windows下可以使用bat文件来提供启动参数进行启动)
具体可以参看ProjectConfig.cpp文件里的parseCommandLine函数实现
①-workdir:工作目录
②-writable-path:写入路径
③-entry:脚本入口文件
④-landscape:是否横屏
⑤-portrait:是否竖屏
⑥-resolution:窗体分辨率
⑦-scale:缩放比例
⑧-write-debug-log:日志路径
⑨-console:是否显示控制台
⑩-position:窗体偏移位置
⑪-debugger:调试器类型
⑫-app-menu:是否显示菜单
⑬-resize-window:窗口大小是否可变
⑭-retina-display:是否retina
⑮-port:没有实现功能
⑯-listen:绑定监听地址
⑰-search-path:资源搜索路径
⑱-first-search-path:首个资源搜索路径
⑲-language-data-path:语言数据路径
在windows下写的运行bat如下(simulator.exe当前目录为工作目录;当前目录下的src和res为资源搜索路径;窗口分辨率1134x750):
@echo off start simulator.exe -workdir ./ -search-path ./src;./res -resolution 1334x750 exit
4.config.json配置文件
具体可以参看ConfigParser.cpp文件里的readConfig函数实现
①width:设计分辨率的宽
②height:设计分辨率的高
③name:窗口显示的名字
④isLandscape:是否横屏
⑤entry:脚本入口文件
⑥consolePort:控制台监听端口
⑦debugPort:没有实现
⑧uploadPort:文件上传端口
⑨isWindowTop:没有实现
⑩simulator_screen_size数组:菜单按钮显示的分辨率
5.个性化需求:让运行窗口在屏幕中间
①-position可以设置偏移位置,如果屏幕分辨率都一样的话可以设置这个属性,另外一个方法就是增加一个参数。
②增加一个-screen-center参数
在ProjectConfig.h/ProjectConfig.cpp中增加_isInScreenCenter属性(仿照_isResizeWindow属性增加对应的方法)
③ProjectConfig.h增加代码:
![](https://images2015.cnblogs.com/blog/55799/201609/55799-20160927204738031-513203732.png)
![](https://images2015.cnblogs.com/blog/55799/201609/55799-20160927204750891-1739302820.png)
④ProjectConfig.cpp增加代码:
![](https://images2015.cnblogs.com/blog/55799/201609/55799-20160927204804656-1258106114.png)
![](https://images2015.cnblogs.com/blog/55799/201609/55799-20160927204823453-311176979.png)
读取配置文件中的数据:
![](https://images2015.cnblogs.com/blog/55799/201610/55799-20161027153419875-681627501.png)
⑤在SimulatorWin.cpp中增加代码
Vec2 pos = _project.getWindowOffset(); if (pos.x != 0 && pos.y != 0) { RECT rect; GetWindowRect(_hwnd, &rect); if (pos.x < 0) pos.x = 0; if (pos.y < 0) pos.y = 0; MoveWindow(_hwnd, pos.x, pos.y, rect.right - rect.left, rect.bottom - rect.top, FALSE); } //增加的代码 else if (_project.isInScreenCenter()){ RECT rect; GetWindowRect(_hwnd, &rect); int screen_x = GetSystemMetrics(SM_CXSCREEN); int screen_y = GetSystemMetrics(SM_CYSCREEN); SetWindowPos(_hwnd, HWND_TOP, (screen_x + rect.left - rect.right) / 2, (screen_y + rect.top - rect.bottom) / 2, 0, 0, SWP_NOSIZE | SWP_NOZORDER); }
6.个性化需求:增加-console_leftop参数让控制台窗口出现在屏幕左上角的位置
①和上面的代码同理,增加_isConsoleLeftTop属性
②在SimulatorWin.cpp中增加代码
if (_project.isShowConsole()) { AllocConsole(); _hwndConsole = GetConsoleWindow(); if (_hwndConsole != NULL) { ShowWindow(_hwndConsole, SW_SHOW); BringWindowToTop(_hwndConsole); freopen("CONOUT$", "wt", stdout); freopen("CONOUT$", "wt", stderr); HMENU hmenu = GetSystemMenu(_hwndConsole, FALSE); if (hmenu != NULL) { DeleteMenu(hmenu, SC_CLOSE, MF_BYCOMMAND); } //增加的代码 if (_project.isConsoleLeftTop()){ RECT rect; GetWindowRect(_hwndConsole, &rect); MoveWindow(_hwndConsole, 0, 0, rect.right - rect.left, rect.bottom - rect.top, FALSE); } } }
相关文章推荐
- cocos2dx-3.x android虚拟机运行错误的问题
- cocos2dx 3.x运行自己shader出错的问题
- cocos2dx怎么在android studio 运行
- XCode运行Simulator,每次重启模拟器或者更换模拟器都要输入密码验证怎么解决?
- cocos2dx 3.x引擎升级,lua绑定genbindings.py运行错误问题
- cocos2dx 3.x 生成的exe 模拟器无法运行(黑屏)
- cocos2dx 3.x 使用dragonbones 4.5 -- (一)
- 开机会自动运行chkdsk ,怎么设置不运行
- 一个C程序怎么就可以神奇的运行起来那?
- cocos2dx 3.x中的渲染机制
- 误用组策略的禁止程序运行怎么办?
- 本来运行的好的Ajax.dll怎么突然不起作用了
- cocos2dx 3.x designResolutionSize须主动设置
- 当android项目有多个Activity时,运行的时候怎么切换
- cocos2dx 3.x getStringFromFile lua 读取二进制文件
- Cocos2dx 3.x scheduler是怎么工作的
- GDB怎么调试运行着的程序
- cocos2dx3.x利用sokcet创建客户端和服务端(一)
- cocos2dx 3.x中的OpenGL(一)-Cocos2d-x渲染结构
- Cocos2dx-3.2自带例子的运行