Voici le début d'un jeu :
from kivy.app import App
from kivy.graphics import Line, Color, Rectangle, Ellipse
from kivy.uix.widget import Widget
from kivy.clock import Clock
class Raquette(Widget):
def __init__(self,canvas):
self.posX=50
self.posY=20
self.pos=(self.posX,self.posY)
self.canvas=canvas
self.size=(100,10)
with self.canvas:
Color(1,0,0,0.5)
Rectangle(pos=self.pos, size=self.size)
def move(self):
self.pos=(self.posX,self.posY)
with self.canvas:
Color(1,0,0,0.5)
Rectangle(pos=self.pos, size=self.size)
class Balle(Widget):
def __init__(self,canvas,pos_x,pos_y):
self.dx = 0
self.dy = -2
self.pos=(pos_x,pos_y)
self.canvas=canvas
self.size=(50,50)
def move(self):
if self.pos[1]<0:
self.dy=-1*self.dy
#On recalcule les positions:
self.pos = (self.dx + self.pos[0],self.dy +self.pos[1])
#On dessine la balle:
with self.canvas:
Color(0,1,0,0.5)
Ellipse(pos=self.pos, size=self.size)
class Jeu(Widget):
def debut(self):
#On cree les balles:
self.balle1=Balle(self.canvas,700,400)
self.balle2=Balle(self.canvas,100,100)
self.raquette=Raquette(self.canvas)
def update(self, dt):
#on efface le canvas:
self.canvas.clear()
#On deplace les balles:
self.balle1.move()
self.balle2.move()
self.raquette.move()
def on_touch_move(self, touch):
if touch.y < self.height / 3:
self.raquette.posX = touch.x
class MyApp(App):
def build(self):
Jeu1=Jeu()
Jeu1.debut()
#On appelle Jeu1.update() touts les centiemes de seconde
Clock.schedule_interval(Jeu1.update, 1.0/100.0)
return Jeu1
if __name__ == '__main__':
MyApp().run()
Faites rebondir les balles sur le haut de l'écran.
Faites rebondir les balles sur la raquette.
Essayez de proposer des trajectoires obliques pour les balles.