按钮碰撞事件vb.net

时间:2016-10-31 21:02:00

标签: vb.net

我试图让一些按钮快速移动。每次点击一个特定按钮都应该"奖励"具有一定数量积分(正面或负面)的玩家。这与某些“白痴测试游戏”中的某些方面类似。你在网上看到了。

如何使用按钮执行碰撞检查?

我知道可以使用图片框执行事件冲突,使用以下代码picObject1.bounds.intersectsWith(picObject2.bounds)。 但是,当我尝试将该功能用于按钮时,它们并未注册为碰撞。我不知道是不是因为按钮没有界限(虽然听起来不对),或者是因为我错过了一些其他隐藏的细节。

正确方向的任何指针都非常有用!

1 个答案:

答案 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

现在只需在表单中添加一个计时器即可移动按钮。