Advertisement
Guest User

Untitled

a guest
Feb 13th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.60 KB | None | 0 0
  1. from kivy.app import App
  2. from kivy.uix.widget import Widget
  3. from kivy.properties import NumericProperty, ReferenceListProperty,\
  4.     ObjectProperty, ListProperty
  5. from kivy.vector import Vector
  6. from kivy.clock import Clock
  7. from random import randint
  8. from kivy.factory import Factory
  9.  
  10.  
  11. class PongGame(Widget):
  12.  
  13.     def PongBall(Widget):
  14.         velocity_x = NumericProperty(0)
  15.         velocity_y = NumericProperty(0)
  16.         velocity = ReferenceListProperty(velocity_x, velocity_y)
  17.         with self.canvas:
  18.             Color(0,1,1,1)
  19.             self.size=(50, 5)
  20.             self.elip = Ellipse(pos=self.pos, size=self.size)
  21.  
  22.     balls = ListProperty()
  23.    
  24.     def move(self):
  25.         self.pos = Vector(*self.velocity) + self.pos
  26.  
  27.     def add_new_ball(self):
  28.         ball = Factory.PongBall()
  29.         ball.center = self.center
  30.         ball.velocity = Vector(2, 0).rotate(randint(-45, 45))
  31.         self.add_widget(ball)
  32.         self.balls.append(ball)
  33.  
  34.     def update(self, dt):
  35.    
  36.         for ball in self.balls:
  37.    
  38.             self.ball.move()
  39.  
  40.             #bounce off top and bottom
  41.             if (self.ball.y < 0) or (self.ball.top > self.height):
  42.                 self.ball.velocity_y *= -1.00
  43.  
  44.             #bounce off left and right
  45.             if (self.ball.x < 0) or (self.ball.right > self.width):
  46.                 self.ball.velocity_x *= -1.00
  47.  
  48. class PongApp(App):
  49.     def build(self):
  50.         game = PongGame()
  51.         game.add_new_ball()
  52.         Clock.schedule_interval(game.update, 1.0 / 60.0)
  53.         return game
  54.  
  55.  
  56. if __name__ == '__main__':
  57.     PongApp().run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement