Time for action — letting the enemy paddles fight back

It isn't fair that only the player can push the ball back. The enemy needs this ability too. For sure, you can imagine it already; we will build a method first that will check and report back a collision of the ball with the enemy paddles:

  1. Create a new method with the name CheckPaddleCollE, but this time with the return type of an integer.
    Method CheckPaddleCollE:Int()
    
  2. Again, we first want to check if the ball is close to the paddles. As there are two of them, we will do this inside a FOR loop and set the index for the paddle arrays.
    For Local ep:Int = 0 To 1
    If (bX > (eX[ep]-5)) And (bX < (eX[ep]+5)) Then
    
  3. Next, we check again if the ball's Y position is within +25/-25 pixels of the paddle's Y position. If it is, then return the index of the paddle.
    If ((bY >= eY[ep]-25.0) And (bY <= eY[ep]+25.0)) Then
    Return ep
    Endif
    
  4. Now, close off the first If check and the FOR loop. Then, return -1, so we can see that no paddle was hit if the check was negative. Then close the method.
    Endif
    Next
    Return -1
    End
    
  5. Again, we will modify the UpdateGame method to check and react to the enemy paddles and a possible collision with the ball.
    If ((bY -pY) <= 7) And ((bY -pY) >= -7 Then bdY = 0
    Endif
    'Next assign the possible index
    Local ep:Int = CheckPaddleCollE()
    
  6. If there was a collision, ep contains the enemy paddle index now. So we check if ep is greater than -1 and also if the ball moves from right to left.
    If ep >=0 And bdX < 0 Then
    
  7. We know now that a collision happened. We will determine where the ball hit the enemy paddle and change its Y speed accordingly. Of course, we will inverse its X speed first.
    If ((bY - eY[ep]) > 7) Then bdY = 1.5
    If ((bY - eY[ep]) < -7) Then bdY = -1.5
    If ((bY - eY[ep]) <= 7) And ((bY - eY[ep])>= -7 Then bdY= 0
    
  8. All we need to do now is close off the IF check.
    Endif
    

Cool, we now have enemy paddles that play the ball back. If they hit the ball.

Save again, under a name that you choose, and test your code. For the next step, you might load up Pongo_09.Monkey, which reflects all the coding we have done so far.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.16.70.101