请VB游戏高手来一下

来源:百度知道 编辑:UC知道 时间:2024/06/25 10:27:29
我想做个游戏
由左右键控制图形炮台转动(任意转动)
当按下空格的时候沿炮口方向发射出类似激光的子弹(可以连续发射)
当子弹打中图片1的时候消失
图片1的生命(text1.text)减少
谢谢swx1995大哥
我说的不是3D的
重要的就是发射子弹的环节
谢谢
还有不知道keyascii可以写text1.text=keycode吧?
和放个目标是什么意思?
最好能把文件发给我哦
给网址最好
邮箱fux4@163.com

我写了个demo,你自己下回去看看吧,一个坦克游戏的demo可以移动和攻击目标
http://blog.mys530.com/article/20.htm

===============以下是之前回复的====================
不知道你的游戏刷新过程是怎么写的..
总之每刷新一桢,就要刷新屏幕上所有物体的状态,判断哪些新生成,哪些该销毁,所以子弹不能只发射,不销毁..
图片1的信息最好用结构体来存储,其中要有个RECT来存储这个图片的位置,把子弹用定义成POINTAPI,只记录坐标就好了,子弹发射要用数组,子弹要判断敌我,速度,还有方向,最好也用结构体来存储,判断子弹是否打中目标,或者移除屏幕范围,建议用API PtInRect 来做,这个api的执行速度非常快,几百发子弹一会也可以判断完毕

我能表达的也只有这些了,呵呵,如果你能看懂就看了,看不懂只能慢慢体会,但千万不要退缩,多做做就会了

还有啊,做游戏最好别直接移动控件,多了会很卡,快了会出现闪烁,最好是直接在pic控件或者form上画图像,最最好呢,是用api来画,速度很快,呵呵

我想问一下 被你这样一说有点像3D了?

给你几个参考:
首先,制作界面,放一个炮台,再放一个目标。
然后在form_keypress里面去判断按了左键还是右键。
如果你不知道keyascii你可以这样写,在里面写debug.print keyascii
这样你按左右键就能得到它的keyascii了。

那么往左就是
炮台(一个图片).left = 炮台.left - 5 * 15 '5:5像素,15:VB单位与像素的转换
往右就是
炮台.left = 炮台.left + 5 * 15

当然也要加上判断
向左:
if 炮台.left >= 5