匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 6 年前

有關於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 個解答

評分
  • 6 年前
    最佳解答

    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的左邊

    (自己在紙上畫圖會更清楚,別人說的不容易看懂)

還有問題?馬上發問,尋求解答。