Computer Science Canada

Paddle And Ball Collision Help

Author:  gergysun [ Fri Nov 30, 2007 6:36 pm ]
Post subject:  Paddle And Ball Collision Help

PLEASE can someone HELP ME....This is my THIRD topic about this subject and no one has answered my question.

question : " How can i get my pong ball to bounce off the paddle????"
i already have it set up to if it misses the paddle, (ie, hits bottom edge) the program finishes, and i have it that that ball bounces off of my borders but i cannot figure out how to make the ball bounce off the paddle. Someone said that it is the same code that i used to the borders, but ive tried different combinations like about 100 times... plz someone answer my question

here is my code

drawfill (1, 399, 150, 150)
% Ball is slding across title
var font1 : int %defiing font as an integer
font1 := Font.New ("Stencil:30") % defining font size
assert font1 > 0
Font.Draw ("Greg's Ping Pong Game", 160, 325, font1, red) % Main Title
Font.Free (font1)
colorback (6) % the background color
locate (7, 30)
var title1 : int %defines title1 as an integer
title1 := 10

loop %begins title loop
%Title wiper
drawfilloval (title1, 335, 20, 20, 12)
exit when title1 = 600
delay (50)%delay's playback 50 milliseconds
drawfilloval (title1, 335, 20, 20, 158) % draws circle and fills it
title1 := title1 + 10
end loop %ends title loop

cls % clears the screen
colorback (12)% defining background color
put " ---The intructions are ---- " % outputs "Intructions"
put " "% skips a line
put " Move the Paddle with mouse " % outputs actual instructions
put " Each time you keep the ball up in the air you reieve a point"% outputs actual instructions
put " If you miss the ball, you lose "% outputs actual instructions
put " "% skips a line
put " "% skips a line
put " "% skips a line
put " "% skips a line
put " "% skips a line

% press any key to continue
font1 := Font.New ("Stencil:20")%defines font1 as font.new and font size
Font.Draw ("~~Press any Key to Begin~~", 90, 125, font1, red)

Input.Pause % won't continue until user presses a key

colourback (blue)% defining bacground color
cls % Clears the screen
setscreen ("offscreenonly")

var rise, run, rad, u, yy, xx : int%defiing rise,run,rad,yy,xx as integers
var bally, ballx : int := 200% defining bally,ballx as integers
rad := 10 %defines Radius of ball
rise := 2% defines where the ball starts
run := 2 % defines where the ball starts

loop%begins main loop


var x, y, button : int %defines x,y,button as integers
Mouse.Where (x, y, button)%indicates where the mouse is
Draw.FillOval (ballx, bally, rad, rad, yellow)% draws pong ball
ballx := ballx + run
bally := bally + rise


if ballx + 50 >= maxx then
run := -1
elsif ballx - 50 <= 0 then
run := +1
elsif bally + 50 >= maxy then
rise := -1

elsif bally - 50 <= 0 then
exit
end if




View.Update
delay (10) % delay's playback 10 milliseconds
cls %Clears the screen
% Paddle
Draw.Box (50, 50, maxx - 50, maxy - 50, white)%draws main border
drawfill (50, 40, white, white)% draws inside-outise white box
drawfillbox (x - 80, 66, x + 80, 75, brightcyan) % Draws paddle
% outside rectangle + fill
drawline (40, 30, 40, 370, black)% draws line
drawline (40, 30, 600, 30, black)% draws line
drawline (600, 30, 600, 370, black)% draws line
drawline (600, 370, 40, 370, black)% draws line
drawfill (0, 10, brightred, black)%fills outside border brightred
end loop % ends the main loop



Author:  StealthArcher [ Fri Nov 30, 2007 6:50 pm ]
Post subject:  Re: Paddle And Ball Collision Help

gergysun @ Fri Nov 30, 2007 5:36 pm wrote:
PLEASE can someone HELP ME....This is my THIRD topic about this subject and no one has answered my question.

question : " How can i get my pong ball to bounce off the paddle????"
I probably could start by being patient and not making new topics everytime i feel ignored....
i already have it set up to if it misses the paddle, (ie, hits bottom edge) the program finishes, and i have it that that ball bounces off of my borders but i cannot figure out how to make the ball bounce off the paddle. Someone said that it is the same code that i used to the borders, but ive tried different combinations like about 100 times... plz someone answer my question

here is my code

Turing:
drawfill (1, 399, 150, 150)
% Ball is slding across title
var font1 : int %defiing font as an integer
font1 := Font.New ("Stencil:30") % defining font size
assert font1 > 0
Font.Draw ("Greg's Ping Pong Game", 160, 325, font1, red) % Main Title
Font.Free (font1)
colorback (6) % the background color
locate (7, 30)
var title1 : int %defines title1 as an integer
title1 := 10

loop %begins title loop
    %Title wiper
    drawfilloval (title1, 335, 20, 20, 12)
    exit when title1 = 600
    delay (50)%delay's playback 50 milliseconds
    drawfilloval (title1, 335, 20, 20, 158) % draws circle and fills it
    title1 := title1 + 10
end loop %ends title loop

cls % clears the screen
colorback (12)% defining background color
put " ---The intructions are ---- " % outputs "Intructions"
put " "% skips a line
put " Move the Paddle with mouse " % outputs actual instructions
put " Each time you keep the ball up in the air you reieve a point"% outputs actual instructions
put " If you miss the ball, you lose "% outputs actual instructions
put " "% skips a line
put " "% skips a line
put " "% skips a line
put " "% skips a line
put " "% skips a line

% press any key to continue
font1 := Font.New ("Stencil:20")%defines font1 as font.new and font size
Font.Draw ("~~Press any Key to Begin~~", 90, 125, font1, red)

Input.Pause % won't continue until user presses a key

colourback (blue)% defining bacground color
cls % Clears the screen
setscreen ("offscreenonly")

var rise, run, rad, u, yy, xx : int%defiing rise,run,rad,yy,xx as integers
var bally, ballx : int := 200% defining bally,ballx as integers
rad := 10 %defines Radius of ball
rise := 2% defines where the ball starts
run := 2 % defines where the ball starts

loop%begins main loop


    var x, y, button : int %defines x,y,button as integers
    Mouse.Where (x, y, button)%indicates where the mouse is
    Draw.FillOval (ballx, bally, rad, rad, yellow)% draws pong ball
    ballx := ballx + run
    bally := bally + rise


    if ballx + 50 >= maxx then
        run := -1
    elsif ballx - 50 <= 0 then
        run := +1
    elsif bally + 50 >= maxy then
        rise := -1

    elsif bally - 50 <= 0 then
        exit
    end if




    View.Update
    delay (10) % delay's playback 10 milliseconds
    cls %Clears the screen
    % Paddle
    Draw.Box (50, 50, maxx - 50, maxy - 50, white)%draws main border
    drawfill (50, 40, white, white)% draws inside-outise white box
    drawfillbox (x - 80, 66, x + 80, 75, brightcyan) % Draws paddle
    % outside rectangle + fill
    drawline (40, 30, 40, 370, black)% draws line
    drawline (40, 30, 600, 30, black)% draws line
    drawline (600, 30, 600, 370, black)% draws line
    drawline (600, 370, 40, 370, black)% draws line
    drawfill (0, 10, brightred, black)%fills outside border brightred
end loop % ends the main loop




Author:  Clayton [ Fri Nov 30, 2007 6:53 pm ]
Post subject:  RE:Paddle And Ball Collision Help

gergysun wrote:
This is my THIRD topic about this subject ...


Exactly. For this reason this topic will be locked. You're not just going to get the answer on a silver platter here. Tony has already given you more than enough information to do this in your other thread.

This thread is locked


: