get paid to paste

VBA Pong Code

'I added this to a module
Public Type POINTAPI
    X As Long
    Y As Long
End Type

Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public ballDirectionX As Integer
Public ballDirectionY As Integer
Public ballSpeed As Integer

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)


' I added everything below to my form - performance will depend on your machine, just try to tweak it
Private Sub Form_Load()
    ' Initialize ball direction and speed
    ballDirectionX = 12
    ballDirectionY = 3
    ballSpeed = 8250

    ' Initialize the starting positions of the paddles
    ' Place the left paddle (paddle1) towards the left side of the form
    paddle1.Top = 222
    paddle1.Left = 310  ' Adjust this value to move paddle1 more to the left as needed

    ' Place the ball towards the left side, near the left paddle
    ball.Top = 0
    ball.Left = 0  ' Adjust this value to position the ball more to the left as needed

    ' Initialize the position of the right paddle (paddle2)
    paddle2.Top = Me.InsideHeight / 2 - paddle2.Height / 2

    ' Set the Timer Interval for continuous movement
    Me.TimerInterval = 2
    
End Sub

Private Sub Form_Resize()
    ' If you need to reposition elements on form resize
    ball.Left = (Me.InsideWidth - ball.Width) / 22
    ball.Top = (Me.InsideHeight - ball.Height) / 220
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    ' Move paddle1 with the mouse (Optional)
    If Y > 4 And Y < Me.InsideHeight - paddle1.Height Then
        paddle1.Top = Y
    End If
    
        If Y < Box7.Top Then
        paddle1.Top = Box7.Top
    ElseIf Y + paddle1.Height > Box7.Top + Box7.Height Then
        paddle1.Top = Box7.Top + Box7.Height - paddle1.Height
    Else
        paddle1.Top = Y
    End If

End Sub

Private Sub Form_Timer()
    ' Ball movement logic
    ball.Left = ball.Left + ballDirectionX
    ball.Top = ball.Top + ballDirectionY

    ' Collision detection with the top and bottom of Box7
    If ball.Top < Box7.Top Then
        ball.Top = Box7.Top  ' Position the ball at the top boundary of Box7
        ballDirectionY = -ballDirectionY  ' Reverse the vertical direction
    ElseIf ball.Top + ball.Height > Box7.Top + Box7.Height Then
        ball.Top = Box7.Top + Box7.Height - ball.Height  ' Position the ball at the bottom boundary of Box7
        ballDirectionY = -ballDirectionY  ' Reverse the vertical direction
    End If

    ' Collision detection with the paddles
    If (ball.Left <= paddle1.Left + paddle1.Width And ball.Top + ball.Height >= paddle1.Top And ball.Top <= paddle1.Top + paddle1.Height) _
    Or (ball.Left + ball.Width >= paddle2.Left And ball.Top + ball.Height >= paddle2.Top And ball.Top <= paddle2.Top + paddle2.Height) Then
        ballDirectionX = -ballDirectionX
    End If

    ' Check for collision with the right side of Box7
    If ball.Left + ball.Width > Box7.Left + Box7.Width Then
        If ball.Top + ball.Height < paddle2.Top Or ball.Top > paddle2.Top + paddle2.Height Then
            Me.decision.Caption = "Player 1 Wins!"
            Me.TimerInterval = 0 ' Stop the game
        Else
            ballDirectionX = -ballDirectionX ' Reflect the ball
        End If
    End If

    ' Check for collision with the left side of Box7
    If ball.Left < Box7.Left Then
        If ball.Top + ball.Height < paddle1.Top Or ball.Top > paddle1.Top + paddle1.Height Then
            Me.decision.Caption = "Player 2 Wins!"
            Me.TimerInterval = 0 ' Stop the game
        Else
            ballDirectionX = -ballDirectionX ' Reflect the ball
        End If
    End If

    ' Refresh the form to update the positions of the controls
    Me.Repaint
End Sub


Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Const KEY_UP As Integer = 38   ' Up Arrow Key for paddle1
    Const KEY_DOWN As Integer = 40 ' Down Arrow Key for paddle1
    Const KEY_P As Integer = 80    ' P key for paddle2
    Const KEY_L As Integer = 76    ' L key for paddle2
    Const PaddleMoveSpeed As Integer = 40  ' Increase this value to make paddle1 move faster
    Const PaddleMoveSpeed2 As Integer = 40 ' Increase this value to make paddle2 move faster

    Select Case KeyCode
        Case KEY_UP
            ' Move paddle1 up faster
            If paddle1.Top > Box7.Top Then
                paddle1.Top = paddle1.Top - PaddleMoveSpeed
            End If
            KeyCode = 0  ' Prevent further processing of the key

        Case KEY_DOWN
            ' Move paddle1 down faster
            If paddle1.Top + paddle1.Height < Box7.Top + Box7.Height Then
                paddle1.Top = paddle1.Top + PaddleMoveSpeed
            End If
            KeyCode = 0  ' Prevent further processing of the key

        Case KEY_P
            ' Move paddle2 up
            If paddle2.Top > Box7.Top Then
                paddle2.Top = paddle2.Top - PaddleMoveSpeed2
            End If
            KeyCode = 0  ' Prevent further processing of the key

        Case KEY_L
            ' Move paddle2 down
            If paddle2.Top + paddle2.Height < Box7.Top + Box7.Height Then
                paddle2.Top = paddle2.Top + PaddleMoveSpeed2
            End If
            KeyCode = 0  ' Prevent further processing of the key
    End Select
End Sub

Pasted: Dec 19, 2023, 1:02:22 am
Views: 178