c语言编写小游戏系列教程之移动游戏人物,C_C++,自学去.pdf

c语言编写小游戏系列教程之移动游戏人物,C_C++,自学去.pdf

ID:52323470

大小:1.29 MB

页数:14页

时间:2020-03-26

c语言编写小游戏系列教程之移动游戏人物,C_C++,自学去.pdf_第1页
c语言编写小游戏系列教程之移动游戏人物,C_C++,自学去.pdf_第2页
c语言编写小游戏系列教程之移动游戏人物,C_C++,自学去.pdf_第3页
c语言编写小游戏系列教程之移动游戏人物,C_C++,自学去.pdf_第4页
c语言编写小游戏系列教程之移动游戏人物,C_C++,自学去.pdf_第5页
资源描述:

《c语言编写小游戏系列教程之移动游戏人物,C_C++,自学去.pdf》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、2015/1/22【新提醒】c语言编写小游戏系列教程之移动游戏人物,C/C++,自学去设为首页收藏本站admin在线

2、每日签到

3、我的

4、设置

5、消息

6、提醒(2)

7、门户管理

8、管理中心

9、退出积分:9681

10、用户组:管理员消息新听众(3)坛友互动(1)论坛视频教程c/c++PHP问答平台编程文章个人空间搜索QQ群快捷我导的航帖子(1)请输入搜索内容帖子热搜:c语言java编程教程自学去搜论坛编程语言C/C++c语言编写小游戏系列教程之移动游戏人物返回列表删除主题

11、升降

12、置顶

13、直播

14、高亮

15、精华

16、图章

17、图标

18、关闭

19、移

20、动

21、分类

22、复制

23、索合并

24、分割

25、修复

26、警告

27、屏蔽

28、标签

29、生成文章自»›››查看:1563

30、回复:15[精品文章]c语言编写小游戏系列教程之移动游戏人物[复制链接]admin发表于2014122212:56:20

31、只看该作者

32、只看大图楼主电梯直达file:///上节课用另一个方法来实现了游戏地图,我们这节课在那个基础上,我们来让游戏和玩家有互动,通过按键来控制游戏中的人物移动。首先要说的就是,我们上节课的代码,都是在main函数中。这节课代码需要写到几个函数中,在主函数中只要调用就可以学了。大致的函数封装如

33、下。79039759681主题帖子积分管理员首先说游戏的主循环。整个游戏在一个大的循环中,循环的接收用户按键》根据用户按键来改变人物的位置》更新地图数据》根据地图绘制出界面。积分9681就像这样while(1)去{input();//接收用户输入update();//更新人物位置和地图数组display();//根据修改后的地图数组显示对应的界面。。。然后停留一段时间继续循环}这就是游戏的整个思路。IP编辑禁止帖子清理然后是移动人物的函数://移动人voidmove_person(person_t*pe

34、rson,dir_tdir){intx=0,y=0;//保存在xy方向上的移动距离switch(dir){caseUP:y;break;caseDOWN:y++;break;caseLEFT:x;break;caseRIGHT:x++;break;default:http://www.zixue7.com/thread1544811.html1/142015/1/22【新提醒】c语言编写小游戏系列教程之移动游戏人物,C/C++,自学去break;}//防止数组越界if(person>x+x>0&&per

35、son>x+xx+=x;}if(person>y+y>0&&person>y+yy+=y;}}第一个参数是要移动的人物,第二个参数是一个枚举变量表示要像什么方向移动,防止数组越界,其实就是把人限制在地图里面,让他出不了地图。其他移动箱子也是类似。由于我们是直接循环整个地图数组然后用printf直接输出的,所有会有非常明显的闪烁,用户体验很不好。所以我们这里使用了控制台的双缓冲技术。简单的说就是,让我们画的图先画到一个缓冲区中,然后画好了再一下子显示出来,这

36、样用户就不会感觉到闪烁了。如果在主函数中调用display();就是普通的printf输出的,可以看到十分明显的闪烁。如果调用buf_display();就是双缓冲的。display();和buf_display();只能同时调用其中一个。代码我都做了详细的注释。花了三四个小时。。终于完工了。。。希望对大家有所帮助。。代码如下:文件下载:map.c(6.67KB,下载次数:69)01.#include02.#include03.#include04

37、.#include05.06.//因为后面多出会用到地图的宽和高,我们就定义为宏,方便以后扩展07.#defineW3008.#defineH2009.10.11.//定义几个枚举变量,用来表示每个物体对应的数字,OBJ_SUCCESS表示当箱子放到目标点上的时候对应的数字12.enumobject{OBJ_NULL=0,OBJ_WALL,OBJ_PERSON,OBJ_BOX,OBJ_OBS,OBJ_TARGET,OBJ_SUCCESS};13.//定义表示方向的枚举变量14.ty

38、pedefenum{DIR_NULL,UP,RIGHT,DOWN,LEFT}dir_t;15.typedefenum{START,PLAYING,OVER}game_state_t;16.17.//定义人,考虑到下次还会用,我就定义一个别名,person_t_t表示是一个类型(type)这只是一个命名习惯而已,参照nginx源码的,好的命名习惯有助于让程序更加容易维护,呵呵18.typedefstruct{19.intx;20.inty;2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。