from kivy.app import App
from kivy.graphics import Ellipse
from kivy.metrics import dp
from kivy.properties import Clock
from kivy.uix.widget import Widget
class Widget3(Widget):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.ball_size = dp(50)
self.vx = 3
self.vy = 3
with self.canvas:
self.ball = Ellipse(pos=self.center, size=(self.ball_size, self.ball_size))
Clock.schedule_interval(self.update, 0.01)
def on_size(self, *args):
self.ball.pos = (self.center_x-self.ball_size/2, self.center_y-self.ball_size/2)
def update(self, dt):
x, y = self.ball.pos
x += self.vx
y += self.vy
if y + self.ball_size > self.height:
y = self.height - self.ball_size
self.vy = -self.vy
if x + self.ball_size > self.width:
x = self.width - self.ball_size
self.vx = -self.vx
if y < 0:
y = 0
self.vy = -self.vy
if x < 0:
x = 0
self.vx = -self.vx
self.ball.pos = (x,y)
class Widget3App(App):
def build(self):
return Widget3()
Widget3App().run()
reference:
No comments:
Post a Comment