[讨论]坦克游戏的问题
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()
函数的重要性,具体用法请参阅附件中的贪吃蛇例子;
上面的内容是转贴的:
(4)同步动作那里,应该怎么样实现,要是按键与敌方同时进行那好像有矛盾,因为需要等待按键,而在等待按键这段时间里
敌人就不能动了,这是我的理解,有哪位能解答一下?
----------------解决方案--------------------------------------------------------
while(退出条件)
{
接受按键动作;
if(有按键动作) 移动;
敌方智能移动;
}
----------------解决方案--------------------------------------------------------
int value
value=bioskey(1);/*这个是不是不需要等待按键的*/
----------------解决方案--------------------------------------------------------
以下是引用lucis009在2007-7-23 13:37:30的发言:
int value
value=bioskey(1);/*这个是不是不需要等待按键的*/
int value
value=bioskey(1);/*这个是不是不需要等待按键的*/
跟kbhit()作用是一样的
----------------解决方案--------------------------------------------------------