欢迎来到天天文库
浏览记录
ID:42819721
大小:72.00 KB
页数:4页
时间:2019-09-23
《VB上机练习5(简单空战游戏设计思路及代码)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VB上机练习5-键盘事件、时钟事件(2009-12-0408:13:24)[编辑][删除]标签:高中信息技术 算法与程序设计 教育 分类:算法与VB程序设计VB教学已有一段时间了,学生已经感受过新鲜、神奇、茫然。不能继续茫然了,怎么办呢,后面还有好几个难啃的算法,真是难为我这些学生了。后面的东西先放放吧,先来个简单游戏设计,重新激发下学生的兴趣。主题:用vb设计飞机射击游戏主要问题:(1)飞机移动控制;(2)子弹飞行,目标飞行;(3)子弹发射(4)是否命中新知识点:KeyPress()按键事件;timer()时钟事件;picturebox控件;imag
2、e控件;对象位置属性一、飞机移动控制功能:用键盘的的'A''D''W''S'4个键分别控制飞机左右上下移动。设计:用一个PictureBox控件当飞机,命名为picFJ,设置BorderStyle0-none,设置Picture飞机图片。【知识点】KeyPress(KeyAsciiasInteger)事件:即敲键盘时激发的事件。KeyPress定义方法:进入代码窗口,选择picFJ、选择KeyPress将出现下面代码块。PrivateSubpicFJ_KeyPress(KeyAsciiAsInteger)EndSubKeyAscii为传入参数,即用户所
3、敲键的Ascii码值,我们可以加行打印代码测试(PrintKeyAscii)PrivateSubpicFJ_KeyPress(KeyAsciiAsInteger) printKeyAsciiEndSub调试程序,我们敲键时就会将所敲键的Ascii码打印到窗口。通过此测试我可以知道adws空格的Ascii码分别为:9710011911532接下来我们就可以写出如下代码:'控制飞机移动及子弹发射PrivateSubpicFJ_KeyPress(KeyAsciiAsInteger) IfKeyAscii=97Then 'picFJ左移
4、ElseIfKeyAscii=100Then 'picFJ右移 ElseIfKeyAscii=115Then 'picFJ下移 ElseIfKeyAscii=119Then 'picFJ上移 ElseIfKeyAscii=32Then 'picFJ发射子弹 EndIfEndSub对象位置移动:VB中对象的位置由两个参数控制,对象左角点相对窗体左边的距离Left;对象左角点相对窗体上边的距离Top(如图)。由此,要移动对象位置,只要改变这两个参数就可以了。飞机左移的代码为:picFJ.Lef
5、t=picFJ.Left-100,于是可写出如下代码:PrivateSubpicFJ_KeyPress(KeyAsciiAsInteger) IfKeyAscii=97Then 'picFJ左移 picFJ.Left=picFJ.Left-100 ElseIfKeyAscii=100Then 'picFJ右移 picFJ.Left=picFJ.Left+100 ElseIfKeyAscii=115Then 'picFJ下移 picFJ.Top=picFJ.Top+100
6、 ElseIfKeyAscii=119Then 'picFJ上移 picFJ.Top=picFJ.Top-100 ElseIfKeyAscii=32Then 'picFJ发射子弹 EndIfEndSub二、子弹飞行功能:子弹飞行设计:用Image控件作子弹,名称为:imgZD,设置imgZD的Picture属性为子弹图片,设置index为0(将子弹对象构造成数组,因为会用到比较多的子弹)。分析:子弹飞行原理即子弹的位置不断改变(imgZD(0).Top=imgZD(0).Top-200)。用户只管发射,发
7、射后自动飞行。如何控制子弹自动改变位置,需要引进一个新的概念,时间控制动作。用到Timer控件。Timer控件有个Timer()事件。它的作用是每隔一段时间重复做某事。现在我们要的就是每隔一段时间重复执行子弹往上移动。设计:添加一个Timer对象,名称:Timer1,Interval(时间间隔,单位:毫秒)设置为40,双击Timer1的图标,将生成如下代码块:该代码块内的代码将每隔40毫秒执行一次。PrivateSubTimer1_Timer()EndSub要重复执行的代码为:imgZD(0).Top=imgZD(0).Top-200,于是可写出如下代
8、码PrivateSubTimer1_Timer() if imgZD(0).top-img
此文档下载收益归作者所有