计算机vb小游戏,我想用VB6.0做一个小游戏(俄罗斯方块即可)补充:要快 爱问知识人...

Private n(3), m(3) As Integer 'n(3)记录游戏区的四个活动方块的编号 'm(3)记录预览区的四个活动方块的编号 Private situation, situation2, linenum, t As Integer 'situation记录游戏区的方块样式 'situation2记录预览区的方块样式 'linenum记录一次消除的行数 ?Private Sub hidefang(a As Integer) '定义使方块不可见的过程 Select Case a Case 0 'a=0使游戏区方块不可见 cmdfang(n(0))。

Visible = False cmdfang(n(1))。Visible = False cmdfang(n(2))。Visible = False cmdfang(n(3))。Visible = False Case 1 'a=1使预览区方块不可见 cmdfangnext(m(0))。

Visible = False cmdfangnext(m(1))。Visible = False cmdfangnext(m(2))。Visible = False cmdfangnext(m(3))。Visible = False End Select End Sub Private Sub showfang(a As Integer) '定义使方块可见的过程 Select Case a Case 0 'a=0使游戏区方块可见 cmdfang(n(0))。

Visible = True cmdfang(n(1))。Visible = True cmdfang(n(2))。Visible = True cmdfang(n(3))。Visible = True Case 1 'a=1使预览区方块不可见 cmdfangnext(m(0))。

Visible = True cmdfangnext(m(1))。Visible = True cmdfangnext(m(2))。Visible = True cmdfangnext(m(3))。Visible = True End Select End Sub Private Sub clearline() '定义消除整行的过程 For i = 190 To 10 Step -10 If cmdfang(i)。

Visible = True And _ cmdfang(i 1)。Visible = True And _ cmdfang(i 2)。Visible = True And _ cmdfang(i 3)。Visible = True And _ cmdfang(i 4)。

Visible = True And _ cmdfang(i 5)。Visible = True And _ cmdfang(i 6)。Visible = True And _ cmdfang(i 7)。Visible = True And _ cmdfang(i 8)。

Visible = True And _ cmdfang(i 9)。Visible = True Then For j = i 4 To i Step -1 t = 1 cmdfang(j)。Visible = False cmdfang(2 * i 9 - j)。

Visible = False For k = 1 To 4000 DoEvents Next t = 0 Next linenum = linenum 1 For j = i - 1 To 0 Step -1 If cmdfang(j)。

Visible = True Then cmdfang(j)。Visible = False cmdfang(j 10)。Visible = True End If Next clearline '为了实现连消数行,这里使用递归调用 End If Next End Sub

解决方案2:

俄罗斯方块写过好几次了,每次的感觉都不一样,都有新的收获。

就像达芬奇画鸡蛋一样,虽然都是画同样的鸡蛋,但是每次都有不同的收获。 ?  先来看看我们需要的是一个怎么样的程序。 ?  首先要有2个大功能:1。开始游戏 2。退出游戏。其中要编程的主要工作都集中在“开始游戏”之后的过程中。俄罗斯方块的游戏规则相信大家一定都不陌生,也许还有不少人都是骨灰级玩家了,但是在此还是有必要说明一下游戏的规则,因为从编程和玩家的两个不同角度来观察游戏规则,还是有微妙的区别的——侧重的东西不同。

?  游戏在一个m*n的矩形框内进行。游戏开始时,矩形框的顶部会随机出现一个由四个小方块构成的形状,每过一个很短的时间(我们称这个时间为一个tick),它就会下落一格,直到它碰到矩形框的底部,然后再过一个tick它就会固定在矩形框的底部,成为固定块。

接着再过一个tick顶部又会出现下一个随机形状,同样每隔一个tick都会下落,直到接触到底部或者接触到下面的固定块时,再过一个tick它也会成为固定块,再过一个tick之后会进行检查,发现有充满方块的行则会消除它,同时顶部出现下一个随机形状。

直到顶部出现的随机形状在刚出现时就与固定块重叠,表示游戏结束。 ?  说的有点罗嗦,但是细细分析一下每隔tick之间发生事情的顺序对理清程序思路有好处。 ?  接下来开始分析程序的设计了。 ?  照理应该从大的设计一步一步往下细分的,但由于时间有限,我就反过来从小的往大的讲了,请谅解。

我会尽量把问题说明白。 ?  显然俄罗斯方块是一个简单的游戏,因为它都是基于矩阵的。既然是面向对象的方法来写,那么我们首先应该封装一个矩阵类,权且叫做CMatrix吧。 ?class CMatrix //矩阵类,这是一个整形矩阵类型 { public: //默认构造函数。

CMatrix(); //根据构造函数参数创建指定大小的矩阵 CMatrix(int width, int height); //根据构造函数参数创建指定大小的矩阵,并为矩阵的每个元素统一分配一个初始值。

追答 : 弄了很久啦,求采纳

追答 : 萨瓦迪卡

追答 : 还在线吗

展开剩余1条追问追答收起。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值