实验1 二维游戏场景绘制

目录

一、实验目的与要求

二、实验内容与方法

三、实验步骤与过程

1. 完成基本实验

2. 修改游戏显示名称

3. 修改游戏地图

4. 完成Bug修改

1) 树枝检测Bug

2) 游戏结束响应Bug

5. 游戏优化

1) 修改游戏窗口大小

2) 添加键盘交互

四、实验结论或心得体会


一、实验目的与要求

1.熟悉cocos2d-x开发环境。

2.了解cocos2d-x中二维游戏场景绘制方法。

3.掌握瓦片地图编辑器使用方法。

二、实验内容与方法

1.完成基本实验 (30)

按照“英雄快跑实验指导”文件指引,成功运行本次实验游戏。

2.修改游戏显示名称 5分)

通过修改游戏代码,使自己的学号替换原“MyGame”字样出现在标题栏左上角。

3.修改游戏地图 5分)

修改原有地图,将你的学号添加在背景中。

4.完成Bug修改 10分)

通过修改游戏代码的方式修复BUG,如:游戏结束响应Bug、树枝检测Bug。

5. 游戏优化(5分)

自行设计并优化游戏。

6.录制通关视频 5分)

录制游戏通关视频,上传至BB系统。

7.完成实验报告 40分)

截图记录关键步骤,分析实验结果,撰写心得体会。

三、实验步骤与过程

1. 完成基本实验

首先我们使用 cocos new 命令创建新项目。

 创建结果如下:

接着我们把红框内容复制到生成的项目中的"Classes"文件夹内,并把蓝框内容替换掉。

 

然后我们把红框内容中的图片、地图、字体资源复制到生成的项目中的"Resources"文件夹内。

 

接下来打开Visual Studio,添加、删除现有项(类)。

 

之后修改代码。

 

最后点击调试器按钮,稍等片刻,即可成功运行本次实验游戏。

 

2. 修改游戏显示名称

修改在AppDelegate.cpp中的applicationDidFinishLaunching函数。

3. 修改游戏地图

在Tiled软件中修改游戏地图,将学号添加在背景中,并保存为MoveAndControl_new,以区分修改前后。

 接下来在Config.h中修改地图的路径,以指定新的地图。

再次运行游戏即可看到修改结果。

4. 完成Bug修改

1) 树枝检测Bug

注意到原本游戏中,游戏角色在经过树枝部分时会掉落,并不会留在树枝上通过。

我们观察代码,可以发现,游戏是通过TiledID和playerTiledID来判断是否要自动下落,所以我们需要知道树枝部分的TiledID。

我们打开Tiled软件,将光标移到树枝部分的像素,查询属性栏得到树枝的TiledID值为148和132,但因为项目中从1计数,而Visual Studio从0计数,所以需要+1,即我们需要的TiledID值为149和133。

    

接下来我们来修改代码,在update函数中的判断自动下落部分加上对树枝的判断。

这里的效果是不跳动时遇到树枝不会自动下落,即可以在树枝上走动。

 这里的效果是下落时遇到树枝时不会下落。

 再次启动游戏即可看到游戏人物可以站在树枝上。

2) 游戏结束响应Bug

注意到原本游戏中,在game over之后地图仍然会向前滚动,导致游戏结束响应Bug。

 我们观察代码,可以发现触发游戏结束的函数gameover()里缺少了让地图停止滚动的功能。

接下来我们只需要添加这部分代码即可解决问题。

再次启动游戏即可看到游戏正常结束响应。

 

5. 游戏优化

1) 修改游戏窗口大小

注意到游戏窗口起始大小只有480x320,导致部分地图不能完整体现,为了给予玩家更好的游戏体验,我们来修改游戏窗口大小。

 修改在AppDelegate.cpp中的designResolutionSize参数。

效果如下图:

2) 添加键盘交互

为了增加与游戏的互动,我们可以添加更多的交互,这里我选择添加一些键盘交互。

首先我们需要在头文件中声明键盘事件函数。

 然后在cpp文件里实现。

最后在场景的init函数中绑定回调函数即可。

交互中我实现了2种功能,分别是暂停功能以及控制游戏人物/地图速度的功能。

在游戏过程中按下键盘P键,会让游戏停止更新,从而达到暂停的效果,若此时再次按下键盘P键,即可让游戏继续更新。

如果按下键盘A键,则会增加速度变量,按下键盘S键,则会减少速度变量。该速度变量用于取代原本的定值。

四、实验结论或心得体会

根据实验指引顺利的完成了实验,通过这次实验,我熟悉了cocos2d-x的开发环境,对cocos2d-x中二维游戏场景绘制方法有所了解,并掌握了瓦片地图编辑器使用方法,最后根据以上知识完成实验。总的来说是一次不错的体验,期待未来能够做出一个好趣的游戏。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值