目录
1. 按照“英雄快跑实验指导”文件指引,尝试运行本次实验游戏
Bug1:改变窗口大小后,窗口中人物动画的位置和实际位置有偏差。
Bug3:下图所示的树的高度太高,角色无法跳到其上面。使用Tiled打开地图文件,将树改成合适的高度,这样角色就能跳上树顶了。
Bug4:在显示Gameover字样后,地图还会滚动,过一段时间,会显示Success字样,且与Gameover字样重合。
前言
这门课的所有实验都挺简单的,但是我估摸着混了个A+,不写白不写,本次实验可能会有我没有发现的错误或者仍需完善的内容,但整体上是没有问题的,得分也不低。
一、实验目的与要求
1.熟悉cocos2d-x开发环境。
2.了解cocos2d-x中二维游戏场景绘制方法。
3.掌握瓦片地图编辑器使用方法。
二、实验内容与方法
1.完成基本实验
按照“英雄快跑实验指导”文件指引,成功运行本次实验游戏。
2.修改游戏显示名称
通过修改游戏代码,使自己的学号替换原“MyGame”字样出现在标题栏左上角。
3.修改游戏地图
修改原有地图,将你的学号添加在背景中。
4.完成Bug修改
通过修改游戏代码的方式修复BUG,如:游戏结束响应Bug、树枝检测Bug。
5. 游戏优化
自行设计并优化游戏。
三、实验步骤与过程
1. 按照“英雄快跑实验指导”文件指引,尝试运行本次实验游戏
(1)进入D:\Cocos2d-x\cocos2d-x-3.17.2\tools\cocos2d-console\bin目录,在该目录打开Windows PowerShell,输入cocos new MyGame -p com.学号.edu -l cpp -d Hero_Running命令创建项目。
(2)将“英雄快跑”源代码和Resources中的文件,复制到本项目的Classes和Resources目录中,并将HelloWorldScene.cpp文件和HelloWorldScene.h文件删除,同时更新VS中的资源管理器列表。
(3)修改AppDelegate.cpp的内容,引用头文件MapScene.h,将创建场景的方法改为MapScene类中的createScene方法。
#include "MapScene.h"
// create a scene. it's an autorelease object
auto scene = MapScene::createScene();
// run
director->runWithScene(scene);
(4)尝试编译并运行程序,如下图所示,成功运行游戏。
2. 修改窗口大小和游戏显示名称
(1)在AppDelegate.cpp中,将变量designResolutionSize改为cocos2d::Size(960, 640),这样就能将窗口大小改为960x640。
static cocos2d::Size designResolutionSize = cocos2d::Size(960, 640);
(2)使用GLViewImpl类的createWithRect函数创建游戏窗口,将第一个参数改为学号,这样就能将游戏显示名称改为学号。
if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) || (CC_TARGET_PLATFORM == CC_PLATFORM_MAC) || (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX)
glview = GLViewImpl::createWithRect("学号", cocos2d::Rect(0, 0, designResolutionSize.width, designResolutionSize.height));
#else
glview = GLViewImpl::create("学号");
#endif
director->setOpenGLView(glview);
}
3. 将学号添加到游戏背景中
(1)打开Resources目录中的地图文件MoveAndControl.tmx,在Tiled中编辑地图,在地图中添加我的学号。
(2)如果使用别的图集,需要添加一个新的图层,位于上方的图层会覆盖下方的图层,不然程序会出现错误,这是因为不同图集会出现相同的砖块类型。