Visual Basic 2010でボールの跳ね返りアプリケーションをコーディングしようとしています。2つのクラスがあります。1つはボールオブジェクトの作成とボールの移動で、もう1つはボールの位置と速度を含むボールクラスです。
私のメインクラス:
Public Class Bouncer 'start of main class
Private ball As BouncyBall 'private ball object field
'form load event handler
Private Sub CST8333_Lab3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
ball = New BouncyBall(Me) 'call ball constructor
End Sub 'end form load event handler
'timer event handler to control ball movement
Private Sub Timer_Tick(sender As System.Object, e As System.EventArgs) Handles Timer.Tick
ball.MoveBall() 'move the ball object
End Sub 'end timer event handler
End Class 'end main class
私のボールクラス:
Class BouncyBall 'start of ball class
'private field variables
Private ballX As Integer
Private ballY As Integer
Private ballMovementX As Integer
Private ballMovementY As Integer
Private location As Point
Private _bouncer As Bouncer
'ball object constructor
Sub New(bouncer As Bouncer)
'instantiate variables
_bouncer = bouncer
ballX = 50
ballY = 50
ballMovementX = 5
ballMovementY = 5
location = New Point(ballX, ballY)
End Sub 'end ball object constructor
'subroutine to move ball
Public Sub MoveBall()
If (ballX >= _bouncer.Width) Then 'check if ball hits right side
ballMovementX = -ballMovementX
ElseIf (ballX <= 0) Then 'check if ball hits left side
ballMovementX = -ballMovementX
End If
If (ballY >= _bouncer.Height) Then 'check if ball hits bottom
ballMovementY = -ballMovementY
ElseIf (ballY <= 0) Then 'check if ball hits top
ballMovementY = -ballMovementY
End If
'move ball
ballX += ballMovementX
ballY += ballMovementY
Me.location = New Point(ballX, ballY)
End Sub 'end subroutine to move ball
End Class 'end ball class
ボールオブジェクトは、フォーム内を移動するラベルで構成されます。ボールオブジェクトはBouncyBallと呼ばれ、MoveBall()サブルーチンのルールで、フォームの周りでボールをガイドする必要があります。しかし、私のボールはまったく動きません。私のタイマーは有効になっていて、50ミリ秒の間隔があるので、それは私の問題ではありません。私の問題は、MoveBall()ルールが、ラベルのプロパティを実際に更新しない変数を使用していることだと思います。
変数を使用してBouncyBallボールの位置を更新する方法を見つけた後も、ボールはまだ動いていません。ルールを含むBouncyBallクラスを、フォーム上の実際のラベル(BouncyBallとも呼ばれます)にリンクする必要があると思います。
誰かが私のボールを動かすのを手伝ってくれますか?アイデアが足りなくなり始めています。ありがとう!