有關於VB2010的一些問題
1.我在打一個打磚塊的程式,但是我不知道他為什麼要乘以(i mod 5) 或是(i mod 11)
For i = 1 To 55
brick(i) = New Label
With brick(i)
.BackColor = Color.MediumSlateBlue
.Width = 45
.Height = 20
.Top = 21 + 21 * (i Mod 5)
.Left = 16 + 46 * (i Mod 11)
.Visible = True
End With
Me.Controls.Add(brick(i))
break(i) = True
Next
2.為什麼還要宣告一個陣列為Boolean?(不是要知道它的功用,而是為什麼是Boolean,不能使用其他的嗎?)
Dim break(55) As Boolean
3.Boolean = true的意思是什麼? =false的時候又是什麼意思?
4.這一串程式的意思又是什麼?
If B1.Left + B1.Width > brick(i).Left And B1.Left < brick(i).Left + brick(i).Width And B1.Top + B1.Height > brick(i).Top And B1.Top < brick(i).Top + brick(i).Height And break(i) = True Then
If B1.Left <= brick(i).Left + brick(i).Width Then
dy = 1
ElseIf B1.Left + B1.Width >= brick(i).Left Then
dy = 1
ElseIf B1.Top <= brick(i).Top + brick(i).Height Then
dy = 1
ElseIf B1.Top + B1.Height => brick(i).Top Then
dy = -1
End If
brick(i).Visible = False
point = point + 10
b = point
Label1.Text = "恭喜得分:" + b
break(i) = False
End If
Next
6.還有這個的意思(可以的話請給我完整的。謝謝)
If B1.Top > P.Top + P.Height Or B1.Top < P.Top - B1.Height Or B1.Left > P.Left + P.Width Or B1.Left < P.Left - B1.Width Then
不好意思,因為學校沒教它的用法,所以比較不清楚
另外
我不用二維陣列的原因是因為
老師說不行
然後就被退了
所以我才去找其他的方法,但是一直不太懂
非常謝謝你的幫助
1 個解答
- 終結者Lv 46 年前最佳解答
1.這是位置的擺放,他可以造成11X5的二維圖形。詳細說明請看參考資料
2.因為這個變數只要"有"和"沒有"兩種情形,所以就用這種變數。你不想用這種變數也可以,只要可以判斷有憾沒有兩種情形就可以。如dim break as short
設為整數,然後用1代表有,用0代表沒有,當然也可以用字串。
3.true就是真,false就是假。建議你找本書來看,把基本概念學詳細點。
4.這一串的程式在判斷球有沒有打到磚頭
B1.Left + B1.Width 代表球的右側
brick(i).Left + brick(i).Width 代表磚頭的右側
brick(i).Top + brick(i).Height 代表磚頭的底部
B1.Top + B1.Height 代表球的底部
自己在紙上畫出兩者的相對位置就很清楚了。但螢幕的左邊數字較小,右邊數字較大。上面數字較小,下面數字較大。
6.B1.Top > P.Top + P.Height 球的上面位置比P的底部還要低(記住:下面數字大,上面數字小)
B1.Top < P.Top - B1.Height P的上面不會並到球的下面,也就是球在P的上面
B1.Left > P.Left + P.Width球的左邊在P的右邊
B1.Left < P.Left - B1.Width 球整個在P的左邊
(自己在紙上畫圖會更清楚,別人說的不容易看懂)