≡
导航
搜索
教程
插件
模型
模板
博客
交易
朋友
编程语言分享讨论总汇吧
已关注 | 取消
+关注
关注:
10
帖子:
1,222
签到
05月06日 尚未签到
看帖
图片
精品
视频
共有回帖数
0
个
c语言编写小游戏系列教程之画地图
取消只看楼主
收藏
回复
心忧不前
等级:
这是一系列文章,本来是发在自学去论坛的,感觉对学了c语言语法的朋友应该有所帮助,特意转发到c语言贴吧来,如果大家喜欢,我将继续更新。
由于是以前写的 素材都是从论坛复制的 有水印 见谅。
这个系列的教程,首先会跟大家一起制作一个推箱子游戏。
推箱子游戏是十分简单的一个游戏,我想大家都有玩过,基本规则就是将把箱子全部推到指定的位置,由于我们只用基本的c语言,所以 就用数字或者字符来代替图片。
制作这个游戏可以分为下面几个知识点:
1、地图如何表示?
2、如何用按键去控制游戏中的人去推箱子
3、如何检测箱子是否可以移动,比如 前面是墙或者其他的箱子时就不能移动?
4、怎么样才算赢了?
5、如何保存游戏状态,下次接着玩?
今天就来解决 第一个疑问,如何显示游戏地图。
我的大致思路如下,可以用一个二维数组来保存地图信息,因为二位数组 正好跟地图的 x坐标和y坐标对应,都是二维的,操作起来比较直观。
地图中的围墙,箱子,障碍物等等,可以用数字来表示,比如 1 表示 箱子,2 表示障碍物,3表示箱子应该摆放的位置等等等等。
由于要表示的物体种类比较少,我们直接用 char类型就够了(int类型也可以,但是是没必要的浪费)。
比如这样 char map[y][x]; 这样定义一个 y 和 x 都是一个常量,y表示地图的 高, x表示地图的 宽,这个应该很容易理解。就像这张图一样。
接下来就发用c语言来实现的上面部分。代码中,用 9表示围墙(把0-8 保留来保存其他东西,比如 箱子,障碍物等等,当然你也可以 1或者其他数表示围墙,个人喜好而已),0,表示空地。
代码如下,有详细注释。(贴吧不适合放代码代码 所以统统贴在 codepad.org上)代码点击查看:http://codepad.org/cElmCh23
运行效果跟我们想象中的也一样:
大家可能会说了,这算什么地图,不就几个数字吗?
好了,接下来我们改动一点东西,用字符来替换数字,让地图看起来更像地图。
那么,怎么做呢?
基本思路就是,在输出数组的时候,我们做个判断,当数字是9 的时候,我们不输出9,我们输出一个星号*,表示是墙,当时0的时候呢,我们就输出空格,表示是空地 。
代码如下:
http://codepad.org/ciJHojkB
效果图:
好了,地图画好了,那么,我们给他加一个箱子如何?
添加一个箱子,思路也是一样,只是改变数组中的内容,前面说了,我们用1表示箱子,那么我们就来试试吧。
比如,我想在6,5 这个坐标放一个箱子,那么我们可以直接酱紫,map[5][6]=1; 注意,前面的5 才是y坐标,也就是 行。
改变好数组了,再在输出的时候加一个判断, 如果是 1 就显示 一个代表箱子的 字符。O(∩_∩)O~ 来看看可爱的代码。
我们用 回 字来表示箱子吧。
代码:
http://codepad.org/iuCScUeq
效果图如下:
楼主 2015-08-30 19:52
回复
共有回帖数
0
个
回 帖
表情
图片
视频
欢迎来到本吧,您可以在此发帖和众多大咖交流学习.
选择或直接输入昵称
Tips:支持QQ截图直接粘贴
发表
登录直线网账号
自动登录
忘记密码
免费注册
本吧信息
查看详情
吧主:
禾木
本吧公告
好好学习,天天向上!
我常逛的吧
我管理的吧
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈
|
关于直线
|
版权声明
|
会员须知