vb俄罗斯方块游戏程序设计论文内容摘要:
木大学信息工程学院课程设计 第 6 页 用户界面具体如图: 图 — 登陆界面 图 — 游戏界面 图 — 菜单编辑界面 图 — 游戏帮助界面 有关说 明 经过两个多星期的设计和开发,俄罗斯方块游戏 已经成功。 其功能基本符合用户需求,能够完成游戏的控制,方块的变换以及消层等功能。 并提供游戏设置,对于一些技术性比较过硬的玩家,可以调游戏级别、以及游戏速度,使得玩家能够充分的发挥竞技游戏的特色,可以不断的挑战自我,挑战极限。 游戏设计中的不足之处 但是由于课程设计时间较短,所以该游戏还有许多不尽如人意的地方,比如方块类 型太少,退出游戏不能存储进度等多方面问题。 这些都有待进一步改善,我们在游戏中还可以更换背景音乐,以适合不同的玩家,在每通过一关可以给玩家播放 一段 flash,吸引玩家去挑战极限,不断提高玩家的兴趣,相信在以后的制作过程中我们将给大家带来一个更新功能更塔里木大学信息工程学院课程设计 第 7 页 全面的游戏。 VB 与 C 语言之间的不同之处 我们这个小游戏也可以用 C语言来实现,在程序的编程上没有 VB 语言方便实用, C语言和 VB语言之间存在很多的 共同点 , 虽然 语法方面有点差异,但是在编程思路上完全一样,VB能够实现很多 C不能做到的功能,如 When语句、 Optional参数、局部 Static变量、对象实例访问静态方法、 Handles绑定事件、 On Error处理异常、 Object直接后期绑定等等。 VB和 C语言,编译出来的是同样的 CIL,但为什么 VB支持很多有趣的特性呢。 我们一起来探究一下。 VB支持用 Static关键字声明局部变量,这样在过程结束的时候可以保持变量的数值: Public Sub Test1() Static i As Integer i += 1 39。 实现一个过程调用计数器 End Sub 我们实现了一个简单的过程计数器。 每调用一次 Test,计数器的数值就增加 1。 其实还有很多情况我们希望保持变量的数值。 而 C的 static是不能用在过程内部的。 因此要 实现过程计数器,我们必须声明一个类级别的变量。 这样做明显不如 VB好。 因为无法防止其他过程修改计数器变量。 这就和对象封装一个道理,本来应该是一个方法的局部变量,现在我要被迫把它独立出来,显然是不好的设计。 那么 VB 是怎么生成局部静态变量的呢。 将上述代码返汇编,我们可以清楚地看到在 VB生成的 CIL中, i不是作为局部变量,而是作为类的 Field出现的: .field private specialname int32 $STATIC$Test1$2020$i 也就是说, i被改名作为一个类的字段,但被冠以 specialname。 在代码中试图访 问$STATIC$Test1$2020$i是不可能的,因为它不是一个有效的标识符。 但是在 IL中,将这个变量加一的代码却与一般的类字段完全一样,是通过 ldfld加载的。 我觉得这个方法十分聪明,把静态变量变成生命周期一样的类字段,但是又由编译器来控制访问的权限,让它成为一个局部变量。 同时也解释了 VB为什么要用两个不同的关键字来声明静态变量 —— Static和 Shared。 由于局部静态变量的实质是类的字段,所以它和真正的局部变量还是有所不同的。 比如在多线程条件下,对局部静态变量的访问就和 访问字段相同。 Handles和 WithEvents VB除了可以用 C那样的方法来处理事件响应以外,还有从 VB5继承下来的独特的事件处理方式 —— WithEvents。 我喜欢称这种事件处理方式为静态的事件处理,书写响应事件的方法时就已经决定该方法响应的是哪一个事件,而 C则是在代码中绑定事件的。 VB中 WithEvents静态方法是非常有用的,它可以显著增强代码可读性,同时也让 ,不像 C那样离开了窗体设计器就必须手工绑定事件。 在 Visual Basic 2020中将加入一个新的运算符 —— TryCast,相当于 C的 as运算符。 我一直希望 VB有这样一个运算符。 VB目前的类型转换运算符主要有 CType和 DirectCast。 他们的用法几乎一样。 我详细比较了一下这两个运算符,得出以下结论: ,两者没有什么区别,都是直接调用 castclass指令,除非重载了 类 型转换运算符 CType。 DirectCast运算符是不能重载的。 , CType会调用 VB指定的类型转换函数(如果有的话),比如将 String转换为 Int32时,就会自动调用。 塔里木大学信息工程学院课程设计 第 8 页 在原先的 VB6里,有一项奇特的功能 —— 默认属性。 在 VB6中,对象的名称可以直接表示该对象的默认属性。 VB从 “ 可选参数 ” 这一特性。 就是说,函数或子程序的参数有些是可选的,调用的时候可以不输入。 其实 VB从 ,只不过到了。 在 VB4里,可选参数可以不带默认值,而在 VB里,如果使用可选参数,则必须带有默认值。 在调用的时候, VB若发现参数被省略, 则自动读取 .param部分的默认值,并显式传递给过程。 这一部分完全由编译器处理,而且没有任何性能损失,和手工传递所有参数是完全一样的。 至于按名传递, VB会自动调整参数的顺序,其结果与传统方式的传递也没有任何的不同。 这说明我们可以放心地使用这项便利。 而且带有可选参数的过程拿到 C中,顶多变成不可选参数,也不会造成什么其他的麻烦。 COM组件都使用了默认参数,而且有些过程的参数列表非常长,在 VB里可以轻松地处理它们,而在 C中经常让开发者传参数传到吐血。 致谢 在本次课程设计中,我从指导老师 化希 耀和张兵 身上学到了很多东西。 老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。 他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。 另外,在游戏开发过程中许多同学也给于我们很大的帮助,帮助解决了不少的难点,使得游戏能及时开发完成 ,在此谢谢各位对此次设计的帮助。 参考文献 : [1]龚沛曾,陆慰民,杨志强 .Vsual Basic 程序设计教程 .高等教育出版社出版。 [2]刘新民,蔡琼,白糠生 .Vsual Basic 程序设计 .清华大学出版社出版。 [3]唐凯军,汤惠莉 .VB6编程 80 例上手 .山东电子音像出版社。 [4]卢毅 .Vsual Basic 实例教程 .科学出版社出版。 [5]赵欣胜,亢慧娟,刘晟宏 .Vsual Basic 经典范例 50 讲 .科学出版社出版。 塔里木大学信息工程学院课程设计 第 9 页 附件: Private Sub hidefang(a As Integer) 39。 定义使方块不可见的过程 Select Case a Case 0 39。 a= 0使游戏区方块不可见 cmdfang(n(0)).Visible = False cmdfang(n(1)).Visible = False cmdfang(n(2)).Visible = False。vb俄罗斯方块游戏程序设计论文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。