1.simulator的好处是:

快速切换分辨率;F5快速重新启动项目;

这对于脚本语言来说都是很方便快捷的。

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增加代码:

④ProjectConfig.cpp增加代码:

读取配置文件中的数据:

⑤在SimulatorWin.cpp中增加代码

    Vec2 pos = _project.getWindowOffset();
if (pos.x != && pos.y != )
{
RECT rect;
GetWindowRect(_hwnd, &rect);
if (pos.x < )
pos.x = ;
if (pos.y < )
pos.y = ;
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) / , (screen_y + rect.top - rect.bottom) / , , , 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, , , rect.right - rect.left, rect.bottom - rect.top, FALSE);
}
}
}

怎么运行cocos2dx 3.x simulator?的更多相关文章

  1. cocos2dx 3.13 simulator的问题

    下载新的cocos2dx 3.13,想使用simulator来运行lua项目,结果发现使用vs2013编译不通过. 1. 9>main.cpp(5): error C2146: 语法错误: 缺少 ...

  2. Xcode 运行cocos2dx弹出内部错误对话框(Internal Error)

    cocos2dx未捕获的异常升高.选择"继续"继续运行在一个不一致的状态.选择"崩溃"停止应用和崩溃报告一个错误文件. 莫名其妙,代码没有报错,运行时却弹出(内 ...

  3. 在linux中使用cmake编译运行cocos2d-x 3.4 projects

    原因: 由于不想在真机环境和 ide中调试环境, 只想在linux端进行 调试和运行, 需要使用cmake对现有的游戏进行编译(cocos2dx-lua 3.4) 修改步骤: 1.修改framewor ...

  4. (已解决)Xcode 运行cocos2dx弹出内部错误对话框(Internal Error)

    cocos2dx未捕获的异常升高.选择“继续”继续运行在一个不一致的状态.选择“崩溃”停止应用和崩溃报告一个错误文件. 莫名其妙,代码没有报错,运行时却弹出(内部错误)对话框出来: 再看看崩溃的底层代 ...

  5. XCode 7 运行 cocos2dx 2.2.6问题小节

    终于磕磕绊绊的在模拟器上,成功运行了已有项目. 公司提供的Mac系统,版本炒鸡低.向同事拷贝了OS,和XCode. 安装完成后,将已有的可以在Windows上成功运行Android版本的项目,拷贝到了 ...

  6. Visual Studio 2013创建并运行Cocos2d-x工程

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. 1.准备: 我们得先把Visual Studio 2013安装好:可以去MSDN官网下载,在安装好 2.安装好vs之后,在cmd(终端)创 ...

  7. 解决cocos2dx在Xcode中运行时报:convert: iCCP: known incorrect sRGB profile 的问题

    解决cocos2dx在Xcode中运行时报:convert: iCCP: known incorrect sRGB profile 的问题 本文的实践来源是参照了两个帖子完成的: http://dis ...

  8. [Cocos2d-x]Mac下运行HelloCpp For Android

    2013年12月22日 一.简介: Mac下运行Cocos2d-x的samples和新建的HelloCocos2dx项目 二.内容: 环境: OS:mac OS X 10.9.1 IDE:Androi ...

  9. cocos2dx游戏开发——微信打飞机学习笔记(一)——开发准备

    一.环境的搭建 1.Windows开发准备: (1)软件下载及安装 •下载Cocos2d-x 最新版本:http://www.cocos2d-x.org/download 或者从Cocos2d-x G ...

随机推荐

  1. Summary: Depth-first Search(DFS)

    There are generally two methods to write DFS algorithm, one is using recursion, another one is using ...

  2. 修改form 的字段背景颜色及字体颜色

    1.通过个性化实现 2. 修改form 代码 有一张工资单,当某个员工的工资超过5000时,用户需要系统能用红色来指示员工的姓名和工资. 实现方法: 我们新做一张form,按常规建好block和ite ...

  3. mysql_connect

    in this passage, we slove the problem about Mysql_connect. first, let' see an example: resource mysq ...

  4. Pointofix 1.7 Portable试用

    Pointofix 1.7 Portable简体中文单文件便携版 软件大小:347K软件语言:简体中文软件类别:国外软件/桌面工具/教育教学运行环境:windows XP/Vista/Win7开 发 ...

  5. linux常用命令:sort 命令

    sort 命令是Linux系统下一种对文件排序的工具,sort 命令功能十分强大,是 Shell 脚本编程是常用的文件排序工具. 1.命令格式: sort [选项]... [文件]... 或:sort ...

  6. 功能测试三剑客:测试框架、bug预防、探索性测试

    功能测试有一套框架来实现完整的覆盖测试的各个维度 测试框架: 参加本人之前的博客测试框架(包括总体的框架.web测试框架.PC客户端.手机客户端.服务器端.接口测试)六部分,罗列了各个领域的测试覆盖考 ...

  7. 在notepad++里面使用正则表达式替换掉所有行逗号前面内容

    需求:在notepad++里面使用正则表达式替换掉所有行逗号前面内容,一文本内容如下(只贴一小部分,实际上N多): 级别,層級程序,程式插件,外掛程式鼠标,滑鼠打印,列印打开,開啟博客,部落格联系,聯 ...

  8. Java eclipse下 Ant build.xml实例详解 附完整项目源码

    在有eclipse集成环境下ant其实不是很重要,但有些项目需要用到,另外通过eclipse来学习和理解ant是个很好的途径,所以写他demo总结下要点,希望能够帮到大家. 一.本人测试环境eclip ...

  9. leetcode 136 Single Number, 260 Single Number III

    leetcode 136. Single Number Given an array of integers, every element appears twice except for one. ...

  10. 20145127 《Java程序设计》第一周学习总结

    通过第一周的Java程序设计的学习,听了娄老师的第一堂课,虽然课堂上老师并没有一开始就讲许多专业的知识,而是带领着我们对于Java这门语言,并不仅仅是一门语言,经行了初步的认识与了解,并且对于Java ...