示例#1
0
    def Rally(self):
        if self.Premier : 
            #initialisation des differentes images de l'application
            bmp1 = wx.Image(image_voiture, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
            bmp2 = wx.Image(image_obstacle, wx.BITMAP_TYPE_ANY).ConvertToBitmap()
            self.bmp3 = wx.Image(image_explosion, wx.BITMAP_TYPE_ANY).ConvertToBitmap()

            #creation des objets voitures, manager direction et manager obstacles
            self.voiture1 = voiture(bmp1)
            self.voiture1.afficher(self.BoxRally)
            self.manager = Mgr_direction()
            self.manager_obs = Mgr_Obstacle(bmp2, self.BoxRally, 35*self.Grid, 38*self.Grid)
            self.manager_obs.new_obstacle()
            self.compteur = 0
            self.decompte = 10 



        if self._Rally and self.status:
            self.Premier = False 


            #gestion de la generation des obstacles au bout d'un certains temps
            self.compteur += 1
            if self.compteur ==  self.decompte : 
                self.decompte = random.randint(20,90)
                self.compteur = 0
                self.manager_obs.new_obstacle() 

            #detecteur de collision entre la voiture et un mur
            if self.manager_obs.collision(self.voiture1) :
                #self.voiture1.image = self.bmp3
                self.text = wx.StaticText(self.BoxRally,-1,"Vous avez Perdu",pos=(60,150))
                font = wx.Font(23, wx.DECORATIVE, wx.NORMAL, wx.BOLD)
                self.status = False
                self.text.SetFont(font)


            # Gestion des differents affichages    
            self.manager_obs.afficher()
            self.manager_obs.destroy_obs()
            self.manager_obs.descendre()
            self.manager_obs.collision(self.voiture1)
            self.voiture1.afficher(self.BoxRally)

            if self.wuw.m.CurrData.Present and self.wuw.n.CurrData.Present:
                #mise a jour des coordonées 
                self.manager.recup_dG(self.wuw.m.CurrData.Y)
                self.manager.recup_dD(self.wuw.n.CurrData.Y)

            self.manager.delta()
            if self.manager.gauche:
                self.voiture1.gauche(3)
            elif self.manager.droite:
                self.voiture1.droite(3)

            #rappel de la fonction elle meme
            wx.CallLater(10,self.Rally)