I couldn't get the scoring working for 2players or change the balls direction in mid-game so the ball starts off at an angle.
Still took me about aday though.
EDIT:
Opps i forgot to say, W and S for player one, and Up and Down arrows for player two.
#Pong
#Ryan Luna 7/9/06
import random
from livewires import games, color
SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480
THE_SCREEN = games.Screen(SCREEN_WIDTH, SCREEN_HEIGHT)
class Player1(games.Sprite):
image = games.load_image("paddle.bmp")
sound = games.load_sound("paddle.wav")
def __init__ (self, screen, x, y):
self.init_sprite(screen = screen, x = x, y = y, image = Player1.image)
def moved(self):
#Moving the paddle for player1
x, y = self.get_pos()
if self.screen.is_pressed(games.K_w):
y -= 1
if self.screen.is_pressed(games.K_s):
y += 1
self.move_to(x, y)
self.check_for_collide()
def check_for_collide(self):
""" Check if pan catches a pizza. """
if self.overlapping_objects():
ball = self.overlapping_objects()[0]
ball.handle_collide()
Player1.sound.play()
class Player2(games.Sprite):
image = games.load_image("paddle.bmp")
def __init__ (self, screen, x, y):
self.init_sprite(screen = screen, x = x, y = y, image = Player2.image)
def moved(self):
#Moving the paddle for player2
x, y = self.get_pos()
if self.screen.is_pressed(games.K_UP):
y -= 1
if self.screen.is_pressed(games.K_DOWN):
y += 1
self.move_to(x, y)
self.check_for_collide()
def check_for_collide(self):
""" Check if pan catches a pizza. """
if self.overlapping_objects():
ball = self.overlapping_objects()[0]
ball.handle_collide()
Player1.sound.play()
class Ball(games.Sprite):
image = games.load_image("ball.bmp")
sound = games.load_sound("lose.wav")
def __init__ (self, screen, x, y, speedy, speedx = 2):
self.init_sprite(screen = screen, x = x, y = y, dx = speedx,
dy = speedy, image = Ball.image)
self.score_value = 0
self.score_text = games.Text(screen = self.screen, x = 250, y = 20,
text = " ", size = 25, color = color.white)
def moved(self):
if self.get_left() < 0:
self.ball_destroy()
self.create_ball()
Ball.sound.play()
if self.get_right() > SCREEN_WIDTH:
self.ball_destroy()
self.create_ball()
Ball.sound.play()
self.scoring()
if self.get_bottom() > SCREEN_HEIGHT:
self.bounce()
if self.get_top() < 0:
self.bounce()
def scoring(self):
self.score_value += 10
self.score_text.set_text("Score: " + str(self.score_value))
def handle_collide(self):
self.reverse()
def ball_destroy(self):
self.destroy()
def reverse(self):
""" Reverse direction. """
dx, dy = self.get_velocity()
self.set_velocity((-dx, dy))
def bounce(self):
""" Bounce off wall """
dx, dy = self.get_velocity()
self.set_velocity((dx, -dy))
def create_ball(self):
y_speed = random.randrange(2) + 1
Ball(screen = self.screen, x = SCREEN_HEIGHT/2, y = SCREEN_WIDTH/2, speedy = y_speed)
def main():
my_screen = THE_SCREEN
bg_image = games.load_image("blackscreen.jpg", transparent = False)
my_screen.set_background(bg_image)
y_speed = random.randrange(2) + 1
Player1(screen = my_screen, x = 10, y = SCREEN_HEIGHT/2)
Player2(screen = my_screen, x = 630, y = SCREEN_HEIGHT/2)
Ball(screen = my_screen, x = SCREEN_HEIGHT/2, y = SCREEN_WIDTH/2, speedy = y_speed)
my_screen.mouse_visible(False)
my_screen.mainloop()
main()I'd attach it but it wont upload .py
This post has been edited by Naming is hard: 21 July 2006 - 05:13 PM
Sign In »
Register Now!
Help



Back to top
MultiQuote
