Naming is hard Posted July 10, 2006 Report Share Posted July 10, 2006 (edited) Heh, Simplist pong game you could make.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/06import randomfrom livewires import games, colorSCREEN_WIDTH = 640SCREEN_HEIGHT = 480THE_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 Edited July 21, 2006 by Naming is hard Quote Link to post Share on other sites
naraku9333 Posted July 10, 2006 Report Share Posted July 10, 2006 Here is a link to the livewires module http://www.livewires.org.uk/python/files/LiveWires-2.0.tgz (direct link) which is needed to run. Also there are several references to images I dont have, maybe you can zip the package and attach. Quote Link to post Share on other sites
Naming is hard Posted July 11, 2006 Author Report Share Posted July 11, 2006 (edited) Wow, yeah how stupid am'i.Here they are.Sprites.zip Edited July 11, 2006 by Naming is hard Quote Link to post Share on other sites
Naming is hard Posted July 12, 2006 Author Report Share Posted July 12, 2006 I wanna try adding sound, anyone know where i can get some good sound effects? Quote Link to post Share on other sites
naraku9333 Posted July 21, 2006 Report Share Posted July 21, 2006 (edited) I get this error when running on linux with python-2.4.3, pygame-1.6.2, and livewires-2.0Traceback (most recent call last): File "pong.py", line 119, in ? main() File "pong.py", line 114, in main Ball(screen = my_screen, x = SCREEN_HEIGHT/2, y = SCREEN_WIDTH/2, speedy = y_speed) File "pong.py", line 72, in __init__ dy = speedy, image = Ball.image)TypeError: init_sprite() got an unexpected keyword argument 'dx'Exception exceptions.AttributeError: "Ball instance has no attribute '_gone'" in <bound method Ball.__del__ of <__main__.Ball instance at 0xb7cb59ec>> ignored Edited July 21, 2006 by naraku9333 Quote Link to post Share on other sites
Naming is hard Posted July 21, 2006 Author Report Share Posted July 21, 2006 (edited) Thats odd, ill have to compile it on Linux and see whats wrong. Edited July 21, 2006 by Naming is hard Quote Link to post Share on other sites
naraku9333 Posted July 23, 2006 Report Share Posted July 23, 2006 I get the same error in windows as well. Are we using different versoins of livewires? Quote Link to post Share on other sites
Naming is hard Posted July 24, 2006 Author Report Share Posted July 24, 2006 2.0 Livewire, pygame-1.7, Python 2.4 Quote Link to post Share on other sites
naraku9333 Posted July 24, 2006 Report Share Posted July 24, 2006 I still wonder about the livewires packages, I had to change all instances of color to colour with my version. Quote Link to post Share on other sites
Naming is hard Posted July 24, 2006 Author Report Share Posted July 24, 2006 I still wonder about the livewires packages, I had to change all instances of color to colour with my version.LOL, thats so weird. Quote Link to post Share on other sites
bobbycan Posted August 10, 2010 Report Share Posted August 10, 2010 I still wonder about the livewires packages, I had to change all instances of color to colour with my version.LOL, thats so weird.mine duznt work either Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.