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()
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')
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()
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()
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()
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)
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")
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')
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()
# 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")
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()
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,
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":
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)
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)
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()
+ "-----------------------------------------------------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)
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()
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')
import Fonctions if __name__ == '__main__': Fonctions.main()
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)
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)