冒险岛online
更新最全资料

小小冒险岛C语言作业分享17级同学大一上学期

冒险岛C语言作业

分享一个17年级大一上学期用C语言实现的小冒险岛。 一步一步的代码、图片和音乐素材、可执行程序可在百度网盘下载:

提取码:5zui

概括

本设计是模仿大冒险岛小小冒险岛论坛,借鉴小游戏“小冒险岛”的经验而设计的。 if函数实现了角色和背景的单独移动,让角色在小游戏盒子下走出大地图。 本游戏画面来源于游戏原作,玩法为角色移动和猎杀怪物。 玩家可以在不同的地图中来回穿梭,在不同的挡板上跳来跳去。 走出村子可以猎杀怪物,但也会被怪物猎杀。 当Hp为0时,被怪物触碰会降低Hp。

一、设计思路

1.搭建基础框架。

2. 盗用原版游戏中最基本的角色和背景图片。

3、实现简单的文字左右移动,设计图片输出。

4. 编写结构并定义映射元素。

5、为定义的地图元素编写挡板和跳转的判断,实现地图中人物的跳转。

6.增加地图元素,设置传送点和方向,增加更多地图,实现地图的变换。

7.再次添加地图元素,添加怪物数据和贴图,完善角色攻击功能。

二、分步实施方法

1.对于字符图像的输出

其实刚开始的时候,我的人物画面,站立、行走、攻击等连贯的展示并不清晰。 但是以我对动画的理解,在一定的、有规律的时间内改变人物的画面,可以营造出一种动感。 这样看来,Sleep是最合适的,但是因为有怪物的存在,如果使用Sleep的话,会影响怪物的出现小小冒险岛论坛,所以就用了老师飞机战使用的延迟。 手动确定帧数,字符显示良好。 .

2.地图元素的定义

小冒险岛的一张地图有很多元素,包括挡板、绳索、光圈,每张地图都是独立的。 如果单独定义,会占用很多行,而且变量会很多很复杂。 在这里,使用了结构。 对于 的定义工整规整,更容易录入数据。

3.人物跳跃与挡板连接

在这个游戏中,角色离开挡板后会进入跳跃状态,所以我写了角色的跳跃,只改变了角色的上升速度和对局势的判断。 在中间,字符的位置发生了变化。 为了使它成为字符底部的中间位置,字符图片的输出位置分别减去宽度和高度的二分之一。 这样便于判断角色与挡板的相遇。 确定字符的纵坐标与挡板的纵坐标相等,以提高字符与挡板的贴合度。

4.人物爬绳

当角色爬到绳子的顶部和底部或者横向移动到绳子的范围之外时,就会离开爬绳的状态。 这里采用了和跳跃一样的自动判断。 同时,同时按下绳子上的W和K,角色会发生变化。 跳跃功能实现了角色的快速爬绳。 (由于时间关系,没有人物爬绳的图片,这个快速爬绳要是能加上特效就好了)

5.字符转移

角色通过光圈从一张地图转到另​​一张地图并不容易。 对于每个传送点,我都定义了它们的位置、传送到的地图以及传送地图的光圈位置。 为了处理角色传送后的位置变换过程中,我给它一个相对于游戏框架的位置,通过传送点相对于背景的位置来反转背景的位置,从而达到实现字符的传输。

6.人物二段跳

按E实现角色二段跳,即使在空中也可以改变角色的跳跃方向。 并且增加的绝对值用于加速角色在地图上的行走。 因为个人喜好,二段跳没有延迟,所以有点像飞行一样的效果。

三、经验与总结

1、循环函数内部不要定义变量,会大大拖慢程序运行速度。

2.两个人多讨论代码中的变量,统一算法,不要用两个算法写一个相似的部分。

3、每次写的时候一定要备份对应的程序,不然改了有bug还得一步一步敲回去。

4.在这次大作业中,我深刻体会到与人合作的不易。 两个人的代码风格不一样,对方写的代码很难看懂。 如果评论很少,那就更糟了。 尤其是在编程和别人合作的时候,一定要规范自己的代码,不能随便按照自己的性子随便写一个字。 到时候别人不理解,到时候你也很难改。

赞(0)
未经允许不得转载:冒险岛online » 小小冒险岛C语言作业分享17级同学大一上学期
分享到: 更多 (0)