Exemplo n.º 1
0
 def __init__(self, charger):
     self.root = Tk()
     Fonctions.centrer(self.root, 80, 72)
     self.charger = charger  #Boolean qui indique si la fenètres est en mode charger ou non
     self.box = Listbox(self.root, height=3)
     self.button = Button(self.root,
                          text='Sélectionner',
                          command=self.selectionner)
     for i in range(3):
         self.box.insert(END, 'Sauvegarde ' + str(i + 1))
     self.box.pack()
     self.button.pack()
     self.root.mainloop()
Exemplo n.º 2
0
 def attaquer(self):
     """Attaque le joueur a distance"""
     coord = Fonctions.autour(self.dir, self.pos[0], self.pos[1], 12, 6)
     if coord[2]:
         MoteurGraphique.lancerProjectile(self.typeProj,
                                          [coord[0], coord[1]], self.dir,
                                          self.dmg, False, 'Arrow')
Exemplo n.º 3
0
 def bouger(self):
     coord = Fonctions.autour(self.dir, self.pos[0], self.pos[1],  12, 6)
     if coord[2]:
         obstacle = collision(self.salle, coord[0], coord[1])
         if not obstacle[0] and not obstacle[1] : self.pos = [coord[0], coord[1]]  #Avancer
         elif obstacle[1] : self.attaquer()
         else : self.changerDir()
     else : self.changerDir()
Exemplo n.º 4
0
 def bouger(self):
     coord = Fonctions.autour(self.dir, self.pos[0], self.pos[1], 12, 6)
     if coord[2]:
         obstacle = collision(self.salle, coord[0], coord[1])
         if not obstacle[0] and not obstacle[1]:
             self.pos = [coord[0], coord[1]]  #Avancer
         elif obstacle[1]:
             self.attaquer()
         else:
             self.changerDir()
     else:
         self.changerDir()
Exemplo n.º 5
0
 def selectionner(self):
     global savePath, root
     if True:
         savePath = 'Saves/Player' + str(
             int(self.box.curselection()[0]) + 1) + '.txt'
         self.root.destroy()
         if self.charger: Sauvegarde.charger(savePath)
         else:
             self.warner = Tk()
             Label(self.warner,
                   text='Êtes vous sûr ? La sauvegarde sera ecrasée !',
                   bg='Red').pack()
             Button(self.warner,
                    text='Ecraser la sauvegarde',
                    command=self.warner.quit).pack(fill=X)
             Button(self.warner, text='Annuler',
                    command=self.annuler).pack(fill=X)
             Fonctions.centrer(self.warner, 73, 222)
             self.warner.mainloop()
             self.warner.destroy()
         root.destroy()
         debug("Step1")
         Menu.openMenu()
Exemplo n.º 6
0
import tkinter as tk
import Fonctions
import os


app_main = tk.Tk()
app_main.title("PhotoTri")
app_main.geometry("1350x610+" + str((app_main.winfo_screenwidth() - 800)//2) + "+" + str((app_main.winfo_screenheight() - 600)//2))

supprimer = tk.PhotoImage(file="Images/supprimer.png")
vider = tk.PhotoImage(file="Images/vider.png")

current_directory = Fonctions.state_of_tk()
current_directory.str_txt1 = str_txt_renamed = tk.StringVar()

frame_main = tk.Frame(app_main, padx="10", pady="10")

btn_browse = tk.Button(frame_main, text="Ouvrir", command=lambda : current_directory.ouvrir(app_main, lst_present))
btn_select = tk.Button(frame_main, text="v", command=lambda : Fonctions.select(lst_present, lst_rename), width=4, height=2)
btn_selectall = tk.Button(frame_main, text="vv", command=lambda : Fonctions.selectall(lst_present, lst_rename), width=4, height=2)
btn_delete = tk.Button(frame_main, image=supprimer, command=lambda : Fonctions.delete_1(lst_rename), height=45, width=50)
btn_deleteall = tk.Button(frame_main, image=vider, command=lambda : lst_rename.delete(0, lst_rename.size()-1), height=45, width=50)
btn_rename = tk.Button(frame_main, text="OK", command=lambda : current_directory.rename(txt_rename.get(), lst_present, lst_rename, txt_rename), width=3, height=2)
lbl_rename = tk.Label(frame_main, text="vvvvvvvvv")
lbl_image = tk.Label(app_main)
lst_present = tk.Listbox(frame_main, width=25)
lst_rename = tk.Listbox(frame_main, width=25)
txt_renamed = tk.Entry(frame_main, state='readonly', textvariable=str_txt_renamed, width=25)
txt_rename = tk.Entry(frame_main, width=25)

current_directory.start_list_index_changed_listener(lst_rename, lbl_image)
Exemplo n.º 7
0
								else:	
									carteEnnemy = carteChoisi
									player.field[cartePlayer].fight(ennemy.field[carteEnnemy])
									historiques.append("Vous avez attaque " + cardField.name + ".")
									
								

								cartePlayer = -1
								carteEnnemy = -1
								souris_x = 0
								souris_y = 0
							
							PosFieldX -= 153	
							carteChoisi += 1

pioche = Fonctions.loadCardSet("Deck.txt")
player1 = Player(pioche)
player2 = Player(pioche)

tourDePlayer1 = True

pygame.init()
pygame.mixer.init(44100, -16, 2, 2048)

fenetre = pygame.display.set_mode((1280, 720))
sonFight = pygame.mixer.Sound("sound/fight.wav")
sonWin = pygame.mixer.Sound("sound/win.wav")
sonThemeCombat = pygame.mixer.Sound("sound/combat.wav")
sonDying = pygame.mixer.Sound("sound/dying.wav")
sonIntro = pygame.mixer.Sound("sound/intro.wav")
Exemplo n.º 8
0
 def special(self):
     if random.random() <= self.critChc/100 : degats = int(self.atk * self.critDmg/100)
     else : degats = self.atk
     coord = Fonctions.autour(self.dir, self.pos[0], self.pos[1], 12, 6)
     if coord[2] : lancerProjectile(1, [coord[0], coord[1]], self.dir, degats, False, 'Arrow')
Exemplo n.º 9
0
    def Update(self):

        flipped = False
        canFlip = True

        #En utilisant un peu de géométrie, on calcule l'angle formé par le curseur et le joueur
        try:
            distCursorPlayer = math.sqrt(
                (self.Rect.centerx -
                 pygame.mouse.get_pos()[0] // self.engine.rapport)**2 +
                (self.Rect.centery -
                 pygame.mouse.get_pos()[1] // self.engine.rapport)**2)

            distPlayerXCursor = self.Rect.centerx - pygame.mouse.get_pos(
            )[0] // self.engine.rapport

            distCursorPlayerY = pygame.mouse.get_pos(
            )[1] // self.engine.rapport - self.Rect.centery

            cos = distPlayerXCursor / distCursorPlayer
            self.angle = math.acos(cos) * 180 / math.pi

            if distCursorPlayerY > 0:
                self.angle = 360 - self.angle

        except ZeroDivisionError:
            self.angle = 0

        #Quelques corrections pour que le Sprite soit toujour orienté vers le haut
        if not self.user.canFlip:
            canFlip = False

        if (self.angle + 90) % 360 < 180 and canFlip:
            flipped = True
            self.Sprite = pygame.transform.flip(self.SpriteCopy, False, True)
            #self.virtPoint[1] =  - self.virtPoint[1]
            self.virtPoint = Matrix.rotMat(self.virtPointCopy, self.angle)
        else:
            self.Sprite = self.SpriteCopy
            self.virtPoint = Matrix.rotMat(self.virtPointCopy, self.angle - 20)

        self.Sprite = pygame.transform.rotate(self.Sprite, -self.angle + 180)

        #On replace le point virteul dans le repère du rendu
        self.virtPoint[0] = -self.virtPoint[0]
        self.virtPoint[0] += self.Rect.centerx
        self.virtPoint[1] += self.Rect.centery

        #Tirer
        if pygame.mouse.get_pressed(
                num_buttons=3)[0] and self.fireFrame < self.engine.frame:
            self.bullets.append(
                Bullet.Bullet("PlayerBullet", self.virtPoint, self.angle, self,
                              self.engine))

            self.fireFrame = self.engine.frame + self.fireRate

        if flipped:
            self.Rect = self.Sprite.get_rect(
                center=(self.user.Rect.bottomright[0] - 12 - 2,
                        self.user.Rect.bottomright[1] - 4))
        else:
            self.Rect = self.Sprite.get_rect(
                center=(self.user.Rect.bottomright[0] - 2,
                        self.user.Rect.bottomright[1] - 4))

        if self.user.colorShiftDuration > 0:
            self.Sprite = Fonctions.colorShift(self.Sprite, (133, 33, 18))

        if self.user.Power == "Invisible" and self.user.isPower == True:
            self.Sprite = Fonctions.colorShift(self.Sprite, (248, 248, 255))

        super().Update()
Exemplo n.º 10
0
# Liste des imports
import Fonctions
import os

# variable qui détermine quand la partie s' arrêtera
continuer_partie = True
# Détermination du solde de départ
solde = Fonctions.solde_depart()

while continuer_partie:
    # Saisies de l'utilisateur
    nb = Fonctions.entrer_numero()
    mise = Fonctions.entrer_mise(solde)

    # Tirage et gains
    solde = Fonctions.tirage(nb, solde, mise)

    # Condition pour continuer la partie
    continuer_partie = Fonctions.arret_partie(solde, continuer_partie)

os.system("pause")
Exemplo n.º 11
0
    def Update(self):
        self.Sprite = self.SpriteCopy.copy()
        #Angle
        try:
            distEnemyPlayer = math.sqrt(
                (self.Rect.centerx - self.cible.Rect.centerx)**2 +
                (self.Rect.centery - self.cible.Rect.centery)**2)

            distEnemyPlayerX = self.Rect.centerx - self.cible.Rect.centerx
            distEnemyPlayerY = self.cible.Rect.centery - self.Rect.centery

            cos = distEnemyPlayerX / distEnemyPlayer

            #Power Invisible
            if self.cible.Power == "Invisible" and self.cible.isPower == True:
                angle = (math.acos(cos) * 180 / math.pi) + random.randint(
                    -40, 40)
            else:
                angle = math.acos(cos) * 180 / math.pi

            if distEnemyPlayerY > 0:
                angle = 360 - angle

        except ZeroDivisionError:
            angle = 0

        #On attribue des balles
        if self.fireFrame < self.engine.frame:
            self.bullets.append(
                Bullet.Bullet(self.name + "Bullet",
                              [self.Rect.centerx, self.Rect.centery], angle,
                              self, self.engine))
            self.fireFrame = self.engine.frame + 30

        #Collisions
        for collision in self.engine.collisions:
            if self in collision:
                collider = collision[((collision.index(self) + 1) % 2)]
                if "Bullet" == collider.__class__.__name__:
                    if collider.source.__class__.__name__ == "Gun":
                        collider.Destroy()
                        self.colorShiftDuration = 10
                        self.hp -= 1

        if self.colorShiftDuration > 0:
            self.Sprite = Fonctions.colorShift(self.Sprite, (133, 33, 18))
            self.colorShiftDuration -= 1

        if self.hp <= 0:
            if self in self.engine.scene.contenu:
                self.engine.scene.contenu.remove(self)
                self.engine.manager.Ennemies.remove(self)

        #Mouvement de l'Enemy
        self.deltaPos = [0, 0]
        enemyDeplacement = 1  #vitesse

        #Paterne Suit le Joueur
        if self.Rect.centerx != self.cible.Rect.centerx:
            self.deltaPos[0] += math.copysign(
                enemyDeplacement,
                self.cible.Rect.centerx - self.Rect.centerx) / 5
        if self.Rect.centery != self.cible.Rect.centery:
            self.deltaPos[1] += math.copysign(
                enemyDeplacement,
                self.cible.Rect.centery - self.Rect.centery) / 5

        #Paterne Fuit le Joueur
        '''
    if self.Rect.centerx != self.cible.Rect.centerx :
      self.deltaPos[0] -= math.copysign(enemyDeplacement, self.cible.Rect.centerx - self.Rect.centerx)
    if self.Rect.centery != self.cible.Rect.centery :
      self.deltaPos[1] -= math.copysign(enemyDeplacement, self.cible.Rect.centery - self.Rect.centery)
    '''
        #Paterne Recopie Mouvement
        """
    if self.deltaPos[0] != self.cible.deltaPos[0] :
      self.deltaPos[0] -= math.copysign(enemyDeplacement, self.cible.deltaPos[0])
    if self.deltaPos[1] != self.cible.deltaPos[1] :
      self.deltaPos[1] -= math.copysign(enemyDeplacement, self.cible.deltaPos[1])
    """
        #Paterne Rotation
        '''
    joueur = [self.cible.Rect.centerx, self.cible.Rect.centery]
    ennemi = [self.Rect.centerx, self.Rect.centery]
    try : 
      R = math.sqrt((joueur[0] - ennemi[0])**2 + (joueur[1] - ennemi[1])**2)
      angle_rotation = 2*math.asin(enemyDeplacement/(2*R))
      angle_rotation = angle_rotation / math.pi * 180
    except ZeroDivisionError:
      angle_rotation = 0  
    ennemi[0] -= joueur[0]
    ennemi[1] -= joueur[1]
    nouvelEnnemi = Matrix.rotMat(ennemi, angle_rotation)
    self.deltaPos[0] = nouvelEnnemi[0] - ennemi[0]
    self.deltaPos[1] = nouvelEnnemi[1] - ennemi[1]
    '''
        #Application du mouvement
        self.pos[0] += self.deltaPos[0]
        self.pos[1] += self.deltaPos[1]

        #print(self.pos)

        self.Rect = self.Sprite.get_rect(center=(self.pos[0], self.pos[1]))
        #self.Rect = pygame.Rect.move(self.Rect, (self.deltaPos[0], self.deltaPos[1]))

        #Update
        super().Update()
Exemplo n.º 12
0
    except:
        fenOption = FenOptions()


#-----------Boucle principale----------#

# try:
chargerConfig()
# except Exception as e:
# debug('Config non trouvé')
# debug(str(type(e)) + ' ' + str(e))

Audio.playMusic('Rogue Legacy - Main Theme', -1)

root = Tk()
Fonctions.centrer(root, 400, 289)
imageFond = PhotoImage(file='Images/Logo.gif')
fond = Label(root, image=imageFond)
fond.pack(fill='both', expand='yes')
root.title('Donjon & Python')
Button(fond, text='Nouvelle Partie', command=newGame).place(relx=.5,
                                                            rely=.3,
                                                            anchor=CENTER)
Button(fond, text='Charger une partie', command=loadGame).place(relx=.5,
                                                                rely=.4,
                                                                anchor=CENTER)
Button(fond, text='Options', command=ouvrirOption).place(relx=.5,
                                                         rely=.5,
                                                         anchor=CENTER)
Button(fond, text='Crédits', command=Credit.Credits).place(relx=.5,
                                                           rely=.6,
Exemplo n.º 13
0
while stop:

    print("Que voulez vous faire ?")
    print("\t (0) - Ajouter un Utilisateur")
    print("\t (1) - Modifier un Utilisateur")
    print("\t (2) - Lister les Membres")
    print("\t (3) - Supprimer un Membre")
    print("\t (4) - Ajouter un Administrateur \n")
    print("\t (5) - Ajouter une recette \n")

    value = input('SELECTION: ')

    current_user = "******" # utilisé pour la fonction d'ajout de recette

    if value == "0":
        membre = fct.AjouterUtilisateur()
        liste_user.append(membre)
        input()

    if value == "1":
        fct.ModifMember(liste_user)
        input()

    if value == "2":
        print("Utilisateur :")
        fct.listMember(liste_user)
        print("\nAdministrateur :")
        fct.listMember(liste_admin)
        input()

    if value == "3":
Exemplo n.º 14
0
 def attaquer(self):
     cible = Fonctions.autour(self.dir, self.pos[0], self.pos[1], 12, 9)
     Audio.playSound('Sword')
     for i in __main__.motGraph.donjon[self.Etage].grille[self.Room[0]][self.Room[1]].entites:
         if i.pos == [cible[0], cible[1]] :
             i.perdrePv((random.random() <= self.critChc/100) * int(self.atk * (self.critDmg-100)/100) + self.atk)
Exemplo n.º 15
0
 def changerDir(self):
     devant = Fonctions.autour(self.dir, self.pos[0], self.pos[1], 12, 6)
     while collision(self.salle, devant[0], devant[1])[0] or not devant[2]:
         self.dir = (randint(1, 3) + self.dir) % 4
         devant = Fonctions.autour(self.dir, self.pos[0], self.pos[1], 12,
                                   6)
Exemplo n.º 16
0
    def Update(self):

        #On commence par tout recouvrir d'un écran de couleur unie
        self.rendu.fill((39, 39, 68))
        self.collisions = Fonctions.isColliding(self.scene.contenu)
        if not self.pause:
            self.scene.Update()

        self.scene.Draw(self.rendu)

        if not self.pause:
            self.rendu.blit(self.cursor,
                            (pygame.mouse.get_pos()[0] // self.rapport -
                             self.cursor.get_width() // 2,
                             pygame.mouse.get_pos()[1] // self.rapport -
                             self.cursor.get_height() // 2))

        barrePouvoir = pygame.Surface(self.BarreCadre.get_rect().size)
        barreVie = pygame.Surface(self.BarreVie.get_rect().size)

        #Vie
        if self.joueurTouche:
            self.player.playerHp -= 1
            barre.blit(self.BarrePouvoir, (1, self.nombre_hp + self.change_hp))
            self.nombre_hp += self.change_hp
            barre.blit(self.BarreCadre, (0, 0))
            self.joueurTouche = False

            if self.player.playerHp <= 0: Fonctions.blur(self.fenetre)

        else:
            barrePouvoir.blit(self.BarrePouvoir, (1, self.nombre_hp))
            barrePouvoir.blit(self.BarreCadre, (0, 0))
        self.rendu.blit(barrePouvoir, (self.Rlongueur - 15, 8))

        #Dash
        if self.player.ableToDash:
            icone = pygame.image.load("Assets/GUI/dash2.png")
            icone = pygame.transform.rotozoom(icone, 0, 2)
            self.rendu.blit(icone, (0, self.Rlargeur - 32))
        else:
            icone2 = pygame.image.load("Assets/GUI/dashéteint.png")
            self.rendu.blit(icone2, (0, self.Rlargeur - 32))
        if self.nombre_hp > 81:
            self.pause = True

        #Le passage du rendu intérmédiare à la fenêtre finale
        surface = pygame.transform.scale(self.rendu,
                                         (self.longueur, self.largeur))
        self.fenetre.blit(surface, (0, 0))

        #Dans le cas où le jeu est mis en pause, on applique un filtre de floutage, et on remplace le curseur
        if self.pause:
            Fonctions.blur(self.fenetre)

            self.fenetre.blit(
                self.menuCursor,
                (pygame.mouse.get_pos()[0] - self.menuCursor.get_width() // 2,
                 pygame.mouse.get_pos()[1] -
                 self.menuCursor.get_height() // 2))

        #Permet de débug l'angle entre le joueur et le viseur
        debugCurseur = False
        debugEnemy = False

        if debugCurseur:
            pygame.draw.line(
                self.fenetre, (255, 0, 0), pygame.mouse.get_pos(),
                (self.scene.contenu[1].Rect.centerx * self.rapport,
                 self.scene.contenu[1].Rect.centery * self.rapport))

            pygame.draw.line(
                self.fenetre, (0, 255, 0),
                (self.scene.contenu[1].Rect.centerx * self.rapport,
                 self.scene.contenu[1].Rect.centery * self.rapport),
                (pygame.mouse.get_pos()[0],
                 self.scene.contenu[1].Rect.centery * self.rapport))

            pygame.draw.line(
                self.fenetre, (0, 0, 255), pygame.mouse.get_pos(),
                (pygame.mouse.get_pos()[0],
                 self.scene.contenu[1].Rect.centery * self.rapport))

        if debugEnemy:
            pygame.draw.line(
                self.fenetre, (255, 0, 0), (192, 256),
                (self.scene.contenu[1].Rect.centerx * self.rapport,
                 self.scene.contenu[1].Rect.centery * self.rapport))

            pygame.draw.line(
                self.fenetre, (0, 255, 0),
                (self.scene.contenu[1].Rect.centerx * self.rapport,
                 self.scene.contenu[1].Rect.centery * self.rapport),
                (192, self.scene.contenu[1].Rect.centery * self.rapport))

            pygame.draw.line(
                self.fenetre, (0, 0, 255), (192, 256),
                ((256), self.scene.contenu[1].Rect.centery * self.rapport))

        self.frame += 1
        pygame.display.flip()
Exemplo n.º 17
0
    +
    "-----------------------------------------------------By Rida TALEB and Achraf JDAY-----------------------------------------------------\n"
)

fichier = input("Please enter the frame to analyze: ")
t = open(fichier)

liste = []

for ligne in t:
    f = ligne.split()
    liste.append(f)

liste = [x for x in liste if x != []]

liste = Fonctions.CleanVertical(liste)
liste = Fonctions.CleanHorizontal(liste)
try:
    liste = Fonctions.OffsetChecker(liste)
except:
    print(
        "\nWARNING: Le format de la trame n'a pas été respecté l'OffsetChecker a été désactivé"
    )

cpt = 1
for elem in liste:
    if (int(elem[0], 16) == 0):
        print("\n-------------------------Trame N°" + str(cpt) +
              "-------------------------\n")
        cpt = cpt + 1
    print(elem)
Exemplo n.º 18
0
    def Update(self):

        self.canFlip = True
        self.Sprite = self.SpriteCopy.copy()

        #Mouvements Joueur
        self.deltaPos = [0, 0]
        self.deplacement = 1

        #Mouvement de Dash (roulade)
        if not self.ableToDash:
            if perf_counter() - self.lastDashTime > self.dashRechargeTime:
                self.ableToDash = True

        if K_LSHIFT in self.engine.keystrokes and self.ableToDash == True:
            self.isDashing = True
            self.ableToDash = False

            self.lastDashTime = perf_counter()
            self.dashFrames = 3

        if self.dashFrames > 0:
            self.deplacement = 15
            self.dashFrames -= 1
        else:
            self.isDashing = False

        #Power Change
        if pygame.mouse.get_pressed(
                num_buttons=3)[1] and self.mouseDuration < self.engine.frame:
            self.Power = self.PowerList[int(self.PowerChoose) %
                                        len(self.PowerList)]
            self.PowerChoose += 1
            self.mouseDuration = self.engine.frame + 10
            print(self.Power)

        #Power Fire-Rate
        if self.Power == "Fire-Rate":
            if K_SPACE in self.engine.keystrokes:
                if self.powerFrames > 0:
                    self.powerFrames -= 1
                    self.Gun.fireRate = 5
                else:
                    self.Gun.fireRate = 10
            else:
                self.isPower = False
                self.Gun.fireRate = 10

        #Power Confusion
        if self.Power == "Confusion":
            if K_SPACE in self.engine.keystrokes:
                if self.powerFrames > 0:
                    self.powerFrames -= 1
                    self.isPower = True
                    self.Sprite = Fonctions.colorShift(self.Sprite,
                                                       (248, 248, 255))
                else:
                    self.isPower = False
            else:
                self.isPower = False

        #Power Invincible
        if self.Power == "Invincible":
            if K_SPACE in self.engine.keystrokes:
                if self.powerFrames > 0:
                    self.powerFrames -= 1
                    self.engine.change_hp = 0
                else:
                    self.engine.change_hp = 10
            else:
                self.isPower = False

        #Power Speed
        if self.Power == "Speed":
            if K_SPACE in self.engine.keystrokes:
                if self.powerFrames > 0:
                    self.powerFrames -= 1
                    self.deplacement = 4
                else:
                    self.deplacement = 2
            else:
                self.isPower = False

        #Power Bullet-Time
        if self.Power == "Bullet-Time":
            if K_SPACE in self.engine.keystrokes:
                if self.powerFrames > 0:
                    self.isPower = True
                    self.powerFrames -= 1
                    self.Gun.fireRate = 20
                else:
                    self.isPower = False
                    self.Gun.fireRate = 10
            else:
                self.isPower = False
                self.Gun.fireRate = 10

        #Mouvements Latéraux et horizontaux
        if K_q in self.engine.keystrokes:
            self.deltaPos[0] -= self.deplacement
        if K_d in self.engine.keystrokes:
            self.deltaPos[0] += self.deplacement
        if K_z in self.engine.keystrokes:
            self.deltaPos[1] -= self.deplacement
        if K_s in self.engine.keystrokes:
            self.deltaPos[1] += self.deplacement

        if self.Gun.angle < 180:
            self.Sprite = self.SpriteDos

        if self.Rect.topleft[0] + 2 <= pygame.mouse.get_pos(
        )[0] // self.engine.rapport <= self.Rect.topright[0] - 2:
            self.canFlip = False

        if (self.Gun.angle + 90) % 360 < 180 and self.canFlip:
            self.Sprite = pygame.transform.flip(self.Sprite, True, False)

        #Application du mouvement
        self.Rect = pygame.Rect.move(self.Rect,
                                     (self.deltaPos[0], self.deltaPos[1]))
        self.collideRect = pygame.Rect.move(
            self.collideRect, (self.deltaPos[0], self.deltaPos[1]))
        #print(self.collideRect.bottom)

        #Collisions
        for collision in self.engine.collisions:
            if self in collision and not self.Gun in collision:
                collider = collision[(collision.index(self) + 1) % 2]
                if "Bullet" == collider.__class__.__name__:
                    if "Enemy" == collider.source.__class__.__name__:
                        collider.Destroy()
                        self.colorShiftDuration = 10
                        self.engine.joueurTouche = True
                elif "Enemy" == collider.__class__.__name__:
                    self.colorShiftDuration = 10
                    self.engine.joueurTouche = True

        if self.colorShiftDuration > 0:
            self.Sprite = Fonctions.colorShift(self.Sprite, (133, 33, 18))
            self.colorShiftDuration -= 1

        #Update
        super().Update()
Exemplo n.º 19
0
 def attaquer(self):
     """Attaque le joueur a distance"""
     coord = Fonctions.autour(self.dir, self.pos[0], self.pos[1], 12, 6)
     if coord[2] : MoteurGraphique.lancerProjectile(self.typeProj, [coord[0], coord[1]], self.dir, self.dmg, False, 'Arrow')
Exemplo n.º 20
0
import Fonctions

if __name__ == '__main__':
    Fonctions.main()
Exemplo n.º 21
0
 def changerDir(self):
     devant = Fonctions.autour(self.dir, self.pos[0], self.pos[1], 12, 6)
     while collision(self.salle, devant[0], devant[1])[0] or not devant[2]:
         self.dir = (randint(1, 3)+self.dir)%4
         devant = Fonctions.autour(self.dir, self.pos[0], self.pos[1], 12, 6)
Exemplo n.º 22
0
 def special(self):
     if self.mana >= 8:
         if random.random() <= self.critChc/100 : degats = int(self.atk * self.critDmg/100)
         else : degats = self.atk
         coord = Fonctions.autour(self.dir, self.pos[0], self.pos[1], 12, 6)
         if lancerProjectile(0, [coord[0], coord[1]], self.dir, degats, True, 'FireBall') : self.perdreMana(8)