quick-x-player 使用说明

本文详细介绍了Cocos2d-x快速模拟器quick-x-player的用法和一些使用技巧,包括如何打开项目、从命令行启动、设置参数以及一些高级功能。了解这些内容可以帮助开发者高效地测试游戏功能。

quick-cocos2d-x 里附带了一个功能强大的模拟器,称为 quick-x-player(后文简称 player)。

player 可以在 Mac 和 Windows 环境中模拟游戏引擎的绝大部分功能。在开发过程中,利用 player 可以高效的测试游戏功能。

quick-x-player

虽然 iOS 和 Android 开发环境都提供了相应的模拟器,但 quick-x-player 相比它们具有明显的优势:

  1. player 无需安装 Xcode、Visual Studio、Android SDK 这些开发工具就可以运行。
  2. player 以 x86 本机代码执行,可以保持 60fps 的稳定速度运行游戏代码,占用的 CPU 和 GPU 资源极少。
  3. player 提供了一键刷新功能,就像刷新浏览器一样,按下热键(Windows 中 F5,Mac 中 CMD+R)就可以刷新 player,让开发者立即测试到修改后的效果。
  4. player 提供了数十种最常见的设备分辨率,选择一下菜单就可以切换到不同分辨率。方便测试游戏在不同分辨率上的显示效果。
  5. player 提供了日志存档功能,方便发生错误时查找题。
  6. 可以同时启动多个 player,这在模拟多个客户端的网络游戏时特别方便。
  7. 开发者可以很容易的将自己的 C/C++ 代码加入 player,编译出适合自己游戏的 player。

当然了, player 无法模拟那些必须在移动设备上才能使用的功能,例如实现 IAP(内购)、广告显示等。所以在一个产品的大部分开发阶段,只需要 player 就可以完成。当产品开发进入后期,需要整合操作系统功能,以及第三方 SDK 时才需要借助 iOS 和 Android 设备。

下载 quick-cocos2d-x 后,在 player/bin/mac 和 player/bin/win32 目录中,可以找到 Mac 版和 Windows 版的 player 可执行文件。本文下面就以 Mac 版为例详细说明 player 的用法和一些使用技巧。

打开项目

启动 player 后,选择“Open”图标,或选择菜单“File -> Open Project“,显示打开项目对话框:

player-open-project

  • 项目目录:保存项目脚本文件和资源文件的父目录。例如下图中的目录结构,项目目录就是 benchmark 目录:

player-open-project-02

  • 入口脚本文件:虽然没有硬性规定,但大多数情况下我们用 main.lua 做入口文件名。所谓入口文件就是整个游戏第一个运行的 Lua 脚本文件。入口文件会负责初始化游戏,载入场景等工作。

  • 存档文件保存目录:当游戏需要存储玩家的状态时,我们需要设置一个路径,告诉 player 将存档文件放置在哪一个目录。在程序中,可以用 device.writablePath 获得存档文件保存目录。

  • 屏幕分辨率和方向;这里根据游戏的要求选择正确的屏幕方向,以及适当的分辨率。在程序中,可以用 display.width, display.height 获得屏幕分辨率。

  • 载入框架:如果游戏使用了 quick-cocos2d-x 提供的 Lua 框架,那么应该选中该选项。

    选中该选项后,在载入入口文件之前就会载入框架。框架文件打包在 framework_precompiled.zip 中,保存在 quick-cocos2d-x/lib/framework_precompiled/ 目录中。框架的源代码在 quick-cocos2d-x/framework/ 目录中。

  • 将调试信息写入文件:player 在运行过程中会产生一些调试信息。如果希望保存这些调试信息到文件里,请选中该选项。调试信息会保存到项目目录的 debug.log 文件中。

    如果同时开启多个 player 运行同一项目,那么多个 player 的调试信息会同时追加到 debug.log 中,此时可以关闭一些 player 的调试信息写入功能。

确认所有选项无误后,点击“Open Project”按钮就会打开项目并运行。

Snip20130806_8

如何从命令行启动 player

player 支持下列命令行参数:

  • -workdir 设置项目目录,等同于 player Open Project 对话框中的 Project Directory
  • -file 设置启动脚本,等同于 Open Project 对话框中 Script File
  • -writable 设置 device.writablePath 对应的路径,未指定时为项目目录
  • -package.path 设置附加的 Lua 模块加载路径,格式为 “/mylualib1;/mylualib2;;”,用 “;” 分割多个路径,最后一个 “;” 表示 -workdir 所指目录
  • -size 设置模拟器的屏幕尺寸,格式为“宽度x高度”
  • -scale 设置模拟器的缩放比例,格式为 “1.0”,“0.5” 等数值
  • -write-debug-log 将调试信息写入 debug.log 文件,该文件存放于项目目录中
  • -disable-write-debug-log 禁止写入调试信息到 debug.log 文件
  • -console 显示调试信息控制台窗口
  • -disable-console 禁止调试信息控制台窗口
  • -load-framework 载入 QUICK_COCOS2DX_ROOT 环境变量所指 quick-cocos2d-x 目录中的预编译框架文件
  • -disable-load-framework 禁止载入预编译框架文件
  • -offset 启动时模拟器窗口的偏移位置,格式为 “{X偏移量,Y偏移量}”

~~

对于 Mac 版 player,应该用如下方式启动:

#!/bin/sh
$QUICK_COCOS2DX_ROOT/player/bin/mac/quick-x-player.app/Contents/MacOS/quick-x-player -workdir /Users/myname/myproj -file scripts/main.lua -size 800x480

对于 Windows 版 player:

@echo off
%QUICK_COCOS2DX_ROOT%playerbinwin32quick-x-player.exe -workdir C:myproj -file scriptsmain.lua -size 800x480

-文章转自点击打开链接

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <windows.h> #include <time.h> #define MAX_ROWS 20 #define MAX_COLS 20 #define WALL '#' #define PATH ' ' #define PLAYER 'P' #define START 'S' #define END 'E' char maze[MAX_ROWS][MAX_COLS]; int player_x, player_y; void init_maze(int rows, int cols) { for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { maze[i][j] = WALL; } } } void display_maze(int rows, int cols) { // 清屏并重新打印迷宫 printf("\033[H\033[J"); // 如果在Windows中,使用 system("cls"); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { printf("%c ", maze[i][j]); } printf("\n"); } } void dfs_maze_generation(int x, int y, int rows, int cols) { int dx[] = { -2, 2, 0, 0 }; int dy[] = { 0, 0, -2, 2 }; maze[x][y] = PATH; int order[4] = { 0, 1, 2, 3 }; for (int i = 0; i < 4; i++) { int j = rand() % (4 - i) + i; int temp = order[i]; order[i] = order[j]; order[j] = temp; } for (int i = 0; i < 4; i++) { int nx = x + dx[order[i]]; int ny = y + dy[order[i]]; if (nx >= 1 && nx < rows - 1 && ny >= 1 && ny < cols - 1 && maze[nx][ny] == WALL) { maze[nx][ny] = PATH; maze[nx - dx[order[i]] / 2][ny - dy[order[i]] / 2] = PATH; dfs_maze_generation(nx, ny, rows, cols); } } } void generate_maze(int rows, int cols) { init_maze(rows, cols); srand(time(NULL)); dfs_maze_generation(1, 1, rows, cols); maze[0][0] = START; maze[rows - 1][cols - 1] = END; player_x = 1; player_y = 1; maze[player_x][player_y] = PLAYER; } void move_player(char move, int rows, int cols) { int new_x = player_x, new_y = player_y; if (move == 'w') new_x--; if (move == 's') new_x++; if (move == 'a') new_y--; if (move == 'd') new_y++; if (new_x >= 0 && new_x < rows && new_y >= 0 && new_y < cols && maze[new_x][new_y] != WALL) { maze[player_x][player_y] = PATH; player_x = new_x; player_y = new_y; maze[player_x][player_y] = PLAYER; } } void control_player(int rows, int cols) { if (_kbhit()) { char move = _getch(); if (move == 'w' || move == 'W' || move == 'a' || move == 'A' || move == 's' || move == 'S' || move == 'd' || move == 'D') { move_player(move, rows, cols); } // 添加退出游戏的功能 if (move == 'q' || move == 'Q') { printf("游戏退出\n"); exit(0); } } } // 主菜单 void show_menu() { printf("=================================\n"); printf(" 迷宫游戏\n"); printf("=================================\n"); printf("1. 开始游戏\n"); printf("2. 退出程序\n"); printf("请选择操作 (1-2): "); } int main() { int rows, cols; int choice; while (1) { show_menu(); scanf("%d", &choice); if (choice == 1) { printf("请输入迷宫的行数和列数 (最大20x20): "); scanf("%d %d", &rows, &cols); if (rows > MAX_ROWS) rows = MAX_ROWS; if (cols > MAX_COLS) cols = MAX_COLS; generate_maze(rows, cols); while (1) { control_player(rows, cols); display_maze(rows, cols); if (player_x == rows - 1 && player_y == cols - 1) { printf("恭喜你成功到达终点!\n"); break; } Sleep(100); // 延迟,避免CPU过高 } } else if (choice == 2) { printf("程序退出。\n"); break; } else { printf("无效选项,请重新选择!\n"); } 修改以上代码,使运行时迷宫不会闪烁,并且隐藏光标
最新发布
06-24
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值