学习Visual Basic编程:从基础到实战,开发俄罗斯方块游戏教程

2025-02-08
来源:网络整理

前言

它继承了易于学习和易于在语言中使用的特征,并且特别适合初学者学习系统编程。随着21世纪信息协会的出现,计算机在人们的工作和生活中加深了,要求我们越来越多地处理计算机。为了在繁忙的时间表中放松用户,已经出现了各种类型。休闲软件,例如聊天工具,游戏等。因此,我们的小组开始设计和启动这样的游戏软件。在这个学期之前,我最初掌握了语言的最基本知识,因此在Hua 和 Bing等教师的指导下,我开始写俄罗斯俄罗斯游戏。

毫无疑问,俄罗斯方块是有史以来最伟大的游戏之一。它是一种永恒的经典娱乐,但实际上与传统的经典娱乐方法不同,因为它的本质是电子的,因此它确实属于现代产品。俄罗斯方块是一个举世闻名的游戏玩法,当游戏刚发行时,看起来非常直观。与掉落的玩具片段及其形状有关的东西使得甚至新手都可以安排它们并正确地组合它们,就像俄罗斯方块触摸我们的一些内在感官一样,即使是最混乱的我们也必须解决问题。

在所有发布的游戏中,俄罗斯方块也被认为是唯一可以真正吸引各种各样的人的作品。一些批评家可能声称俄罗斯方块比过去二十年来出现的任何人都浪费了人们的时间。至于我们,我们应该很乐意将其提名为历史上最伟大的游戏之一。

为了记住经典,能够找到一种下班后放松和娱乐大多数计算机用户的方法,我们的小组开始使用VB语言开发经典的俄罗斯方块游戏。

项目概述1.1项目名称

俄罗斯方块游戏

1.2设计平台

VB是一种视觉编程工具,使用语言作为基本语言。

VB是该公司在1991年退出的应用程序开发工具,意为“视觉”。当它首次启动时,它仍然存在一些缺陷,功能相对较少。但是经过多年的发展和研究。最近,该公司推出了VB6.0版本

VB6.0运行环境:硬件,需要超过486的处理器,超过16MB的内存,超过50MB的硬盘,CD-ROM驱动器和鼠标。软件:需要95版或更高版本。

1.3编程设计思想

该游戏用于娱乐所有人,因此在使用过程中必须给所有人带来幸福,并消除每个人的疲劳。因此,我们在游戏中添加了美丽的场景和优美的音乐,并设置了传球和升级的功能。激发每个人对娱乐的热情。

从基本的游戏玩法开始,主要的是俄罗斯方块的形状和旋转。在设计中,我们在图片框中构造了一个4*4网地的小块,将这些小块结合成新形状,每四个小块都可以连接在一起以创建形状,因此我们总共设计了7个形状,并且每个形状都可以通过旋转来改变。该形状可以使用随机函数以预览形式提前显示。要进行用户参考,然后将显示的形状复制到游戏表单中以进行放置。在游戏形式中,用户可以使用键盘的方向键来控制正方形的运动,然后使用递归语句来判断每条线。一行的块已满,然后消除了该行的块,上方的块自由落下。块的向下速度由时钟控件控制。在游戏中,用户还可以使用向下钥匙来加快秋季的速度。速度,定义变量,记录删除功能,最后您可以获得用户的分数,使用IF语句来判断分数并达到某个点,您可以升级到下一个级别。

俄罗斯方块游戏设计的主要步骤是以下10个方面:

(1)游戏接口设计。

(2)俄罗力服形状。

(3)俄罗斯方块的旋转。

(4)俄罗斯方块的运动(包括左,右和向下)。

(5)俄罗斯方块的自动取消函数。

(6)在游戏级别的免费选择。

(7)免费选择游戏速度。

(8)游戏得分的计算。

(9)游戏菜单选项的设计和功能实现。

(10)游戏背景音乐。

1.4使用的控件和主要对象

我们在设计过程中主要使用的控件包括:控件​​,控件,控件,控件,文本控件,控件等。

1.5实施的主要功能

我们开发的俄罗斯方块游戏主要实现以下功能:

1。您可以灵活地控制图形框中正方形的运动。

2。在游戏过程中可以自由旋转。

3。当安排一行的正方形时,该行的正方形将被自动消除,然后上面的所有正方形将向下移动,这可以支持连续的行消除。

4。在游戏之前,您可以选择游戏的速度和游戏水平。游戏的速度是阻止降速。游戏级别是游戏最初生成时基本级别的随机随机数。您选择生成的行数。该线路至少产生5个不规则的障碍,这增加了游戏的难度,这无疑不是游戏专家的新挑战。

5。游戏的得分支持积分并遵循公式:

得分=原始得分 + 100 *(2 ^同时消除的行数-1)

这样,您同时消除的行越多,得分就会越高。当游戏点达到一定水平时,您可以自动升级。此升级是指速度升级。

6.游戏提供了美丽的场景和优美的音乐,为您带来了无限的热情。

1.6开发商和分工

团队负责人李胡(Li Hu)所做的工作如下:

(1)俄罗斯方块的旋转。

(2)俄罗斯方块的运动。

(3)俄罗斯方块的自动取消功能。

(4)计算游戏得分。

(5)游戏菜单选项的设计和功能实现。

副团队负责人Wang 所做的工作如下:

(1)游戏接口设计。

(2)俄罗力服形状。

(3)游戏级别的免费选择。

(4)免费选择游戏速度。

(5)游戏背景音乐。

文本2.1游戏设计的特定实现

在我们两个人的共同努力下,这种设计终于成功完成了。由于时间紧迫,设计中可能没有一些注意事项,但其功能可以满足大多数用户的需求。我相信,随着时间的流逝,我们肯定能够创建一个更经典,完美的俄罗斯方块游戏。我们将向您展示如何详细实施每个步骤。

2.1.1游戏界面的设计以及背景音乐和特殊效果的实现

俄罗斯方块游戏主要由两个接口组成:登录接口和开始游戏接口。

游戏的背景音乐是​​由一件代码播放的,呼吁系统播放器播放背景音乐。由于此设计主要是为游戏设计的设计,因此我不会在此处介绍播放背景音乐的功能。

2.1.2俄罗力服的形状

我相信我的朋友已经玩了俄罗斯方块,并且熟悉游戏玩法和立方体形状。我们的游戏只选择了最基本的7个中型形状,包括条纹,正常S,反向S,常规7,反向7和T形。如果需要,我们可以添加更多样式。将游戏界面的游戏区域图像框架分为10*20的小片段,对每片小块放置一个控件,然后将预览区域的图像框架分为相同比例的4*4小部分。它还具有控件,因此我们可以预览区域图片框是从游戏区域图片框中选择的部分。游戏区域的小块号和预览区域数如下:

90

91

92

93

94

95

96

97

98

99

游戏区域编号预览区域编号

13

14

15

16

23

24

25

26

33

34

35

36

俄罗斯方块在线游戏果汁_俄罗斯方块在线游戏免费线玩开_俄罗斯方块在线游戏

在观看区域中,使用块的7形形状,例如长形设计,分别有四个正方形,分别为3.4.5.6和5.15.25.35,以:以下阵列形成两形形状。

m(0)= 3:m(1)= 4:m(2)= 5:m(3)= 6:= 0

m(0)= 5:m(1)= 15:m(2)= 25:m(3)= 35:= 1

将其形状编号为0和1,这很方便以后打电话,其他块形状相同。

2.1.3俄罗斯方块的旋转

俄罗斯方块的旋转主要导致正方形的位置。例如,条带有两种中等样式,并且根据小方块的数量变化,可以实现整个形状的旋转,例如:

如果n(0)-18> = 2和n(3) + 9 = 0.5,则(j)。 = true

下一个

下一个

根据您选择的难度系数,您可以随机在底部的每一行中生成一半以上(即超过5)的小块,这适合喜欢高难度的玩家。

2.1.6计算游戏分数和游戏菜单的编辑

游戏得分的计算主要基于淘汰线的数量确定。当然,消除的行数不同,每行的分数也不同。如果您每次消除的行数为1,则最终得分为100。点,如果同时消除了2行,则最终得分为300分,同时消除了3行,得分为700点和4行同时消除,得分为1500点,基于公式:分数=原始得分 + 100 *(2 ^同时消除的行数-1)。

对于游戏的编辑,读者可以参考以下功能简介。

2.2游戏功能简介

文件f --------开始F1:启动游戏。

继续F2:继续比赛。

暂停F3:暂时停止游戏并在单击继续时继续游戏。

退出CTRL+问:退出游戏。

设置---------------选择游戏级别。

选择游戏速度。

测试------------显示F5:显示欲望区域块。

隐藏F6:隐藏欲望区域块。

帮助-----------操作提示,版本信息和作者信息。

用户界面显示在图中:

图片 - 界面图片 - 游戏接口

图片 - Menu编辑界面图片 - 游戏帮助接口

相关说明

经过两周多的设计和开发, Game取得了成功。它的功能基本上满足用户需求,并且可以完成诸如游戏控制,块变换和层删除之类的功能。它还提供游戏设置。对于某些具有相对较强技术技能的玩家,可以调整游戏水平和游戏速度,以​​便玩家可以充分利用竞争游戏的特征,不断挑战自己并挑战自己的极限。

3.1游戏设计中的缺点

但是,由于简短的课程设计时间,游戏仍然存在许多不令人满意的方面,例如块类型太少,并且在退出游戏后无法存储进度。这些需要进一步改进。我们还可以更改游戏中的背景音乐以适合不同的玩家。通过水平后,我们可以发挥一部分,以吸引玩家挑战极限并不断增加球员的兴趣。我相信,在此过程中,我们将为您带来一款具有更全面的更新和功能的游戏。

3.2 VB和C之间的差异

我们的迷你游戏也可以用C语言实现。编程中没有VB语言,并且C语言和VB语言之间存在很多共同点。尽管语法存在一些差异,但编程思想完全相同。 VB可以实现C#无法执行的许多功能,例如语句,参数,本地变量,用于访问对象实例的静态方法,绑定事件,在异常处理,直接固定后等等。同样的CIL,但是VB为什么支持许多有趣的功能?让我们一起探索它。

3.2.1本地静态变量

VB支持使用关键字声明的本地变量,因此可以在流程结束时维护该变量的值:

sub()

我是

I += 1'实施一个程序调用计数器

结束子

我们实施一个简单的过程计数器。每个时间测试都被调用,计数器值增加1。实际上,在许多情况下,我们需要保持变量的值。 C#不能在内部使用。因此,要实现流程计数器,我们必须声明一个类级变量。这显然不如VB好。因为不能阻止其他过程修改计数器变量。这与对象封装相同。它应该是方法的局部变量,但是现在我被迫将其分开,这显然是一个不好的设计。那么VB如何生成局部静态变量?返回上述代码组装,我们可以清楚地看到,在VB生成的CIL中,我似乎不是局部变量,而是作为类:。 $$$ 2001 $ i

也就是说,我被更名为班级的领域,但被授予。由于它不是有效的标识符,因此不可能尝试访问代码中的$$ 2001 $ i。但是,在IL中,将此变量添加到一个变量的代码与通用类字段完全相同并已加载。我认为这种方法非常聪明,将静态变量转变为具有生命周期的类字段,但是编译器控制访问权限并使之成为局部变量。它还解释了为什么VB使用两个不同的关键字来声明静态变量 - 和。由于局部静态变量的本质是类的字段,因此它仍然与真实的局部变量不同。例如,在多线程条件下,访问本地静态变量与访问字段相同。

3.2.2和

除了使用C#处理事件响应外,VB还具有从VB5继承的唯一事件处理方法。

我喜欢称这种事件处理方法静态事件处理。在编写响应事件的方法时,它已经确定该方法响应哪个事件,而C#绑定代码中的事件。 VB中的静态方法非常有用。它们可以显着增强代码可读性,并使事件处理非常方便。与C#不同,您必须在没有表单设计师的情况下手动绑定事件。

3.2.3类型转换操作员

在2005年,一个新运营商 - 等同于C#运营商。我一直希望VB拥有这样的操作员。 VB的当前类型转换操作员主要包括总和。它们的用法几乎相同。我详细比较了这两个运营商,并得出以下结论:

1。转换为参考类型时,两者之间没有区别。除非类型转换运算符超载,否则这两个直接说明均被调用。操作员不能超载。

2。转换为值类型时,例如,VB指定的类型转换函数将被调用,例如在转换为时,将自动调用。

3.2.4默认属性和属性参数

在原始VB6中,有一个唯一的功能 - 默认属性。在VB6中,对象的名称可以直接表示对象的默认属性。

3.2.5可选参数并按名称传递

VB支持从4.0开始的“可选参数”功能。也就是说,函数或子例程的某些参数是可选的,可以在呼叫时输入而无需输入。实际上,自1.0以来,VB具有可选参数的一些函数,但是直到4.0才能自己开发这样的过程。在VB4中,可选参数可以没有默认值,而在VB中,如果使用可选参数,则必须具有默认值。调用时,如果VB发现省略了参数,它将自动读取该参数的默认值。部分并将其明确传递到过程中。该部分完全由编译器处理,没有性能损失,并且与手动传递所有参数完全相同。至于按名称传递,VB将自动调整参数的顺序,结果与传统的传递方式没有什么不同。这表明我们可以充满信心地利用这种便利。此外,如果将带有可选参数的过程带入C#,则最多将成为不可选择的参数,并且不会造成任何其他麻烦。

PS。许多COM组件都使用默认参数,并且某些过程具有很长的参数列表,可以在VB中轻松处理,而在C#中,开发人员经常将参数传递给呕吐血液。

致谢

在本课程的设计中,我从教练Hua 和 Bing中学到了很多东西。老师的认真和负责任的工作态度,严格的学术精神和深刻的理论水平使我受益匪浅。他在理论和实践方面都为我提供了巨大的帮助,并且有了很大的改善。这对我未来的工作和学习是巨大的帮助。感谢他的患者指导。

此外,许多学生在游戏开发过程中还为我们提供了很大的帮助,帮助解决了许多困难,以便可以及时开发游戏。感谢您在此设计方面的帮助。

参考:

[1] Gong ,Lu ,Yang 。编程教程。由高等教育出版社出版。

[2] Liu ,Cai ,Bai 。 6.0编程。由大学出版社出版。

[3] Tang ,Tang 。 80个VB6编程案例。山东电子音频和视频出版社。

[4] lu yi。示例教程。由科学出版社出版。

[5] Zhao ,Kang ,Liu 。经典实例的讲座50。由科学出版社出版。

附录:

sub(a a)'定义使块不可见的过程

案例

案例0'a = 0使游戏区域阻塞

(n(0))。 =

(n(1))。 =

(n(2))。 =

(n(3))。 =

情况1'a = 1使预览块看不见

(M(0))。 =

(M(1))。 =

(M(2))。 =

(M(3))。 =

结尾

结束子

sub(a a)'定义使块可见的过程

案例

情况0'a = 0使游戏区域可见

(n(0))。 = true

(n(1))。 = true

(n(2))。 = true

(n(3))。 = true

情况1'a = 1使预览块看不见

(M(0))。 = true

(M(1))。 = true

(M(2))。 = true

(M(3))。 = true

结尾

结束子

sub()'定义消除整个行的过程

i = 190至10步-10

如果(i)。 = true和_

(i + 1)。 = true和_

(i + 2)。 = true和_

(i + 3)。 = true和_

(I + 4)。 = true和_

(I + 5)。 = true和_

(i + 6)。 = true和_

(I + 7)。 = true和_

(I + 8)。 = true和_

(I + 9)。 = true

对于j = i + 4到i步骤-1

t = 1

(J)。 =

(2 * i + 9 -j)。 =

对于K = 1至4000

下一个

t = 0

下一个

= + 1

对于j = i -1至0 step -1

如果(j)。 = true

(J)。 =

(J + 10)。 = true

如果结束

下一个

俄罗斯方块在线游戏免费线玩开_俄罗斯方块在线游戏果汁_俄罗斯方块在线游戏

'为了实施持续破坏行,在此使用递归电话

如果结束

下一个

结束子

()为'自定义功能,以确定正方形是否可以掉落

如果n(0)<190和n(1)<190和n(2)<190和n(3)<190

if(n(n(0) + 10)。 =和_

(n(1) + 10)。 =和_

(n(2) + 10)。 =和_

(n(3) + 10)。 =然后

= true

else:=

如果结束

else:=

如果结束

结尾

()为'自定义功能,以确定是否可以向左移动正方形

如果n(0)mod 10 0和n(1)mod 10 0和n(2)mod 10 0和n(3)mod 10

if(n(0) - 1)。 =和_

(n(1) - 1)。 =和_

(n(2) - 1)。 =和_

(n(3) - 1)。 =然后

= true

else:=

如果结束

else:=

如果结束

结尾

()为'自定义功能,以确定块是否可以向右移动,如果n(0)mod 10 9和n(1)mod 10 9和n(2)mod 10 9和n(3)mod 10

if(n(n(0) + 1)。 =和_

(n(1) + 1)。 =和_

(n(2) + 1)。 =和_

(n(3) + 1)。 =然后

= true

else:=

如果结束

else:=

如果结束

结尾

目录

序言11

项目概述11

1.1项目名称11

1.2设计平台11

1.3编程想法11

1.4使用的控件和主要对象22

1.5实施的主要功能22

1.6开发商和劳动部22

文字33

2.1游戏设计的具体实现33

2.1.1游戏界面的设计以及背景音乐和特殊效果的实现33

2.1.2俄罗斯方块的造型33

2.1.3俄罗斯俄罗斯旋转33

2.1.4如何实现块的运动并自动消除块的完整行44

2.1.5免费选择游戏速度和游戏级别55

2.1.6游戏分数计算和游戏菜单的编辑55

2.2游戏功能简介55

相关注释66

3.1游戏设计中的缺点66

3.2 VB和C 77之间的差异

3.2.1本地静态变量77

3.2.2和

3.2.3类型转换操作员77

3.2.4默认属性和属性参数88

3.2.5可选参数并按名称88

致谢88

参考:88

附件:99

分享