我试图让一些按钮快速移动。每次点击一个特定按钮都应该"奖励"具有一定数量积分(正面或负面)的玩家。这与某些“白痴测试游戏”中的某些方面类似。你在网上看到了。
如何使用按钮执行碰撞检查?
我知道可以使用图片框执行事件冲突,使用以下代码picObject1.bounds.intersectsWith(picObject2.bounds)
。
但是,当我尝试将该功能用于按钮时,它们并未注册为碰撞。我不知道是不是因为按钮没有界限(虽然听起来不对),或者是因为我错过了一些其他隐藏的细节。
正确方向的任何指针都非常有用!
答案 0 :(得分:0)
处理按钮的Click
事件。代码可能如下所示:
Public Class Form1
Private PlayerScore As Integer = 0
Private Buttons() As Button
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Buttons = Enumerable.Range(0,10).
Select(Function(i)
i = New Button()
AddHandler i.Click, AddressOf ScoreClick
Me.Controls.Add(i)
Return i
End Function)
End Sub
Dim rnd As New Random()
Private Sub ScoreClick(ByVal sender As Object, ByVal e As EventArgs)
Dim button As Button = DirectCast(sender, Button)
PlayerScore += rnd.Next(-10, 10)
End Sub
End Class
现在只需在表单中添加一个计时器即可移动按钮。