| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8250 人关注过本帖, 2 人收藏
标题:[原创制作坦克游戏方法总结适合新手
取消只看楼主 加入收藏
奔跑的鸟
Rank: 1
等 级:新手上路
帖 子:391
专家分:0
注 册:2006-1-20
结帖率:100%
收藏(2)
 问题点数:0 回复次数:2 
[原创制作坦克游戏方法总结适合新手

附件内容是c语言示例(包括贪吃蛇等)来自本论坛,只是忘了再哪里找的就重发了下,希望斑竹不要认为我是重法贴


通过制作这个坦克游戏,我初步掌握了一些小游戏的制作方法,现在总结如下:
1要学好c语言的基本语言,了解基本算法和流程控制;
2学会绘制基本图形;图型模式的启动请参阅该版斑竹置顶贴《给我一个点我能勾

画全世界》,基本图形的函数可以多参阅其他程序,我在这里只提几个最基本

的函数:
1)矩形:rectangle(int x,int y,int ex,int ey);
其中x是起始点横坐标,y是起始点纵坐标,ex是终止点横坐标,ey 是终止点纵坐标;
2)圆 :circle(int x,int y,int r);
x,y是圆心坐标,r是半径;
3)设置背景色: setbkcolor(int c);
c 是你想设置的颜色,详细内容参阅该版斑竹置顶贴《函数查阅器 》;
3这些你都掌握后就可以进行你第一个游戏的尝试了;
1)首先你要了解自己c语言掌握情况,构思符合实际的游戏构想,可以稍稍超 越自己的水平,但是要清楚技术瓶茎在哪里;
2)多看看其他人的程序,找到解决或绕过瓶颈的方法;
3)制作游戏具体过程(我以坦克为例):
(1)分割屏幕:就是设定好游戏范围,和用方格将屏幕分割,这样方便
定位你的图形位置,我是绘制了一个表格函数放到了
include文件夹里,你可以直接把代码放到程序里也可以;
(2)绘画静态图形:以你的网格为标准,绘制你的游戏主人公,我的就
是绘制坦克,具体方法请参阅我的原代码中
void tank (int x,int y,int c)函数,
还有炮弹函数和爆炸函数;
(3)让你的图形动起来:
A 我是先编辑我控制的坦克:
a用到了键盘控制:
具体做法是先定义你要用的键位,如坦克开头
定义的那几行#define,后面的值是与键一对一对应的,如:
up 0x4800 down 0x5000 left 0x4b00
right 0x4d00 esc 0x011b 等等 ;
b根据输入的键,改变主人公(坦克)的坐标,
参阅原程序主函数结尾部分;
c循环根据坐标绘制主人公(坦克);
B 让对方的坦克动起来:
a只是把键盘控制用随机数控制代替,我用
random()函数产生4个随机数,依次代替4个按键;
b,c和上述的A样;
(4)同步动作:把所有的东西放在一个大循环当中,每循环依次就改变
一次坐标,并根据新坐标绘图,这里我要强调keyhit()
函数的重要性,具体用法请参阅附件中的贪吃蛇例子;
至次,你的游戏就应该初步成型了,之后的工作不过是怎么完善他装饰他,这个

要根据个人的喜好自己搞定了;
因为我也是新手,所以我的总结难免有不对的地方,还请各位高手多多指点,我

写这片文章也只是想帮一把和我样想做游戏但还没有走到我这步的同道中人;

0FCeKf1u.rar (66.55 KB) [原创制作坦克游戏方法总结适合新手


[此贴子已经被作者于2007-2-18 13:04:48编辑过]

搜索更多相关主题的帖子: 坦克 游戏 制作 
2007-02-18 10:13
奔跑的鸟
Rank: 1
等 级:新手上路
帖 子:391
专家分:0
注 册:2006-1-20
收藏
得分:0 
initgraph(&gd,&gm,"c:\\tc");这句应该把“c:\\tc”路径改为你电脑里的路径

简单的快乐着~
2007-05-03 19:13
奔跑的鸟
Rank: 1
等 级:新手上路
帖 子:391
专家分:0
注 册:2006-1-20
收藏
得分:0 
关于keyhit()函数,你还是去看贪食蛇的程序吧,他是有按键输入就跳出循环,这个等待是不影响程序进行的

简单的快乐着~
2007-07-25 00:42
快速回复:[原创制作坦克游戏方法总结适合新手
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018865 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved