1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
| #Jeu_Car06
# coding: utf-8
from kivy.app import App
from kivy.core.window import Window
from kivy.core.window import WindowBase
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.image import Image
from kivy.graphics import Rectangle
from kivy.uix.widget import Widget
class Voiture(Widget):
def __init__(self,canvas):
self.canvas=canvas
#Taille et position:
self.size=(Window.size[0]*0.4,Window.size[1]*0.4)
self.pos=(0,Window.size[1]*0.02)
#Ajout de l'image
CheminImageVoiture = "Z:\\Projet Jeu\\Images\\Voiture01.png"
with self.canvas:
self.dessin = Rectangle(source=CheminImageVoiture,size=self.size, pos=self.pos)
class FormTriangle(Widget):
def __init__(self,canvas):
self.canvas=canvas
#Taille et position:
self.size=(Window.size[0]*0.08,Window.size[1]*0.08) #Taille du triangle proportionnelement à la taille de fenetre
self.pos=(500,Window.size[1]*0.01)
#Ajout de l'image (add_wiget fonctionne aussi):
CheminImageTriangle = "Z:\\Projet Jeu\\Images\\Triangle3.png"
with self.canvas:
self.dessin = Rectangle(source=CheminImageTriangle,size=self.size, pos=self.pos)
#On associe le mouvement du panier et son image:
self.bind(pos=self.update_canvas)
def update_canvas(self, *args):#Mise a jour des positions de l'image:
self.dessin.pos = self.pos
class FormDemi(Widget):
def __init__(self,canvas):
self.canvas=canvas
#Taille et position:
self.size=(Window.size[0]*0.08,Window.size[1]*0.08) #Taille du demi proportionnelement à la taille de fenetre
self.pos=(600,Window.size[1]*0.01)
#Ajout de l'image (add_wiget fonctionne aussi):
CheminImageDemi = "Z:\\Projet Jeu\\Images\\Demi_02.png"
with self.canvas:
self.dessin = Rectangle(source=CheminImageDemi,size=self.size, pos=self.pos)
#On associe le mouvement du panier et son image:
self.bind(pos=self.update_canvas)
def update_canvas(self, *args):#Mise a jour des positions de l'image:
self.dessin.pos = self.pos
class FormHexa(Widget):
def __init__(self,canvas):
self.canvas=canvas
#Taille et position:
self.size=(Window.size[0]*0.08,Window.size[1]*0.08) #Taille du demi proportionnelement à la taille de fenetre
self.pos=(700,Window.size[1]*0.01)
#Ajout de l'image (add_wiget fonctionne aussi):
CheminImageHexa = "Z:\\Projet Jeu\\Images\\Hexag_02.png"
with self.canvas:
self.dessin = Rectangle(source=CheminImageHexa,size=self.size, pos=self.pos)
#On associe le mouvement du panier et son image:
self.bind(pos=self.update_canvas)
def update_canvas(self, *args):#Mise a jour des positions de l'image:
self.dessin.pos = self.pos
class Jeu(FloatLayout):
def debut(self):
self.size=Window.size # recuperation de la taille de l'ecran:
#print(self.size)
CheminImageDeFond = "Z:\\Projet Jeu\\Images\\Sky_Grasslands_Hill_1327x1024.jpg" # création de l'image de fond:
self.add_widget(Image(source=CheminImageDeFond,allow_stretch=True,keep_ratio=False))
self.voiture=Voiture(self.canvas) #Creation de la voiture:
# ---------------------- Creation des formes ----------------------------------
self.formTriangle=FormTriangle(self.canvas)
self.formDemi=FormDemi(self.canvas)
self.formHexa=FormHexa(self.canvas)
def on_touch_move(self,touch):
if self.formTriangle.collide_point(touch.x,touch.y):
print('YES')
self.formTriangle.center_x=touch.x
self.formTriangle.center_y=touch.y
elif self.formDemi.collide_point(touch.x,touch.y):
print('YES')
print(touch.x , touch.y)
self.formDemi.center_x=touch.x
self.formDemi.center_y=touch.y
elif self.formHexa.collide_point(touch.x,touch.y):
print('YES')
print(touch.x , touch.y)
self.formHexa.center_x=touch.x
self.formHexa.center_y=touch.y
def update(self,ev):
if ev.type == MOUSEBUTTONDOWN and ev.button == 1 and self.collidepoint(ev.pos):
self.selected = True
class CarApp(App):
def build(self):
New_game=Jeu()#Creation du jeu
New_game.debut()#Initialisation du jeu
return New_game#Envoie de l'affichage
if __name__ == '__main__':
CarApp().run() |
Partager