class Scene: def __init__(self): self.init_static_elements() self.init_dynamic_elements() self.init_timer() def init_timer(self): self.timer = QTimer() self.timer.setInterval(int(1000 / 60)) self.timer.timeout.connect(self.deplace_ennemi) self.timer.start() def init_static_elements(self): self.arene = Arene(500, 500) self.les_obstacles = [] self.les_obstacles.append(Obstacle(200, 40, 20, 100)) self.les_obstacles.append(Obstacle(200, 360, 20, 100)) self.les_obstacles.append(Obstacle(280, 40, 20, 100)) self.les_obstacles.append(Obstacle(280, 360, 20, 100)) self.les_obstacles.append(Obstacle(200, 200, 100, 100)) self.les_obstacles.append(Obstacle(0, 400, 100, 100)) self.les_obstacles.append(Obstacle(400, 0, 100, 100)) def init_dynamic_elements(self): self.personnage = Personnage(100, 100, 10) self.ennemi = Personnage(400, 400, 2) def deplace_perso(self, dx, dy): self.personnage.deplace(dx, dy, self.arene, self.les_obstacles) def deplace_ennemi(self): self.ennemi.deplace_aleatoirement(self.arene, self.les_obstacles)
def nouveauJoueur(self, id, race, nom): joueur = Personnage(self, id) if race == "Humain": joueur.nouveauPersonnage(nom, Race.Humain()) elif race == "Irki": joueur.nouveauPersonnage(nom, Race.Irki()) elif race == "Popamu": joueur.nouveauPersonnage(nom, Race.Popamu()) elif race == "Atarix": joueur.nouveauPersonnage(nom, Race.Atarix()) self.listePersonnage.append(joueur)
def reload_perso(self): self.personnages = [] path = "C:\Application\Elyneum\Elyneum\Systeme\\" + self.systeme + "\Collection\Personnage" for element in os.listdir(path): desc, cara, competances, sorts, equip, inv = self.transceiver.lire_personnage( path + "\\" + element) perso = Personnage.Personnage(*cara, *desc) for comp in competances: for com in self.competances: if com["nom"] == comp: perso.addComp(com) for sor in sorts: for s in self.sorts: if s["nom"] == sor: perso.addSpell(s) for equi in equip: for arme in self.armes: if arme["nom"] == equi: perso.addEquip(arme) for armure in self.armures: if armure["nom"] == equi: perso.addEquip(armure) for objet_n in inv: for obj in self.objets: if obj["nom"] == objet_n: perso.addInvent(obj) self.personnages.append(perso)
def __init__(self, *args, **kwargs): Channel.__init__(self, *args, **kwargs) self.identifiant = 0 self.pseudo = "" position = [ random.randint(self._server.carte.tile_width, (self._server.carte.largeur_map * self._server.carte.tile_width) - self._server.carte.tile_width), random.randint(self._server.carte.tile_height, (self._server.carte.hauteur_map * self._server.carte.tile_height) - self._server.carte.tile_height)] self.personnage = Personnage.Personnage(1,self.identifiant,position) self._server.joueurs.add(self.personnage)
def attaquer(self, cible: Personnage) -> int: """ Methode appelant la méthode prendrerDegat du Personnage ciblé Parameters ---------- cible: Personnage Personnage ciblé Retourne un int pour la construction de log au moment du combat """ degat = 0 if "Kv2v2v2" in cible.getNom(): if self._inventaire.getArme() is not None: if self._inventaire.getArme().getNom( ) == "Panzerschreck": #attention il y a arme_ ... degat = self._force + self._inventaire.getArme( ).getModDegat() else: degat = -1 else: degat = -1 else: if self._inventaire.getArme() is not None: if random.randint( 1, 10) > self._precision + self._inventaire.getArme( ).getModPrecision(): return 0 else: if random.randint(1, 10) > self._precision: return 0 if self._inventaire.getArme() is not None: degat = self._force + self._inventaire.getArme().getModDegat() else: degat = self._force cible.prendreDegat(degat) return degat
Retourne `False` sinon """ return self.coordInScreen[0] <= coord[0] <= ( self.coordInScreen[0] + (4 * 60)) and (self.coordInScreen[1] + 60) <= coord[1] <= (self.coordInScreen[1] + (3 * 60)) def getObjetByCoord(self, point: tuple) -> Objet: """Retourne l'objet sur lequel on a cliqué""" if self.isInInventory(point): coord = int((point[0] - self.coordInScreen[0]) / 60), int( (point[1] - (self.coordInScreen[1] + 60)) / 60) index = coord[0] + (coord[1] * 4) return self._inventaire[index].getObjet() return None def nbDePatate(self): patate = 0 for slot in self._inventaire.slotsOfThisObjet(Objet.objets["Patate"]): patate += self._inventaire[slot].getNbContenue() return patate if __name__ == "__main__": x = Personnage("bob", 18, 10, 10, 1, "bob") print(x) x.prendreDegat(10) print(x)
def init_dynamic_elements(self): self.personnage = Personnage(100, 100, 10) self.ennemi = Personnage(400, 400, 2)
def nouveauLogo(self, posMat,nomMap): pers = Personnage(self,0) pers.nouveauPersonnage("Logo", Race.Logomate()) pers.posMatX = int(posMat[0])*self.subDivision pers.posMatY = int(posMat[1])*self.subDivision self.listeLogomate.append(pers)
def Network_players(self, data): for i in data['ids'].keys(): if not self.existPlayer(i): personnage = Personnage.Personnage(1, i, [0, 0]) personnage.pseudo = data['ids'][i] self.add(personnage)
import pygame, sys from pygame import * import Personnage import Background import Menu pygame.init() h = 360 w = 640 screen = pygame.display.set_mode((w, h)) clock = pygame.time.Clock() menu = Menu.Menu(screen) background = Background.Background(screen) playerA = Personnage.Personnage(screen) playerA.x = 90 playerA.orientation = 1 playerB = Personnage.Personnage(screen) playerB.x = 495 playerB.orientation = -1 while 1: for event in pygame.event.get(): if pygame.mouse.get_pressed()[0] == True: clic = True elif pygame.mouse.get_pressed()[2] == True: clic2 = True
import pygame from Map import * from Personnage import * from pygame.locals import * pygame.init() fenetreSize = (1000, 700) fenetre = pygame.display.set_mode((fenetreSize[0], fenetreSize[1]), RESIZABLE) map = Map() hero = Personnage() pygame.display.flip() hero = pygame.image.load("Ressources/images/Bonhomme.png").convert_alpha() hero_rect = hero.get_rect() hero_rect.left = fenetreSize[0] - (fenetreSize[0] / 2) - (hero_rect.width / 2) #hero_rect.bottom = 600 hero_rect.top = fenetreSize[1] - (fenetreSize[1] / 2) - (hero_rect.height / 2) hauteur_bg = map.map_rect.height largeur_bg = map.map_rect.width sortie = 0 horloge = pygame.time.Clock() while sortie == 0: horloge.tick(50) for evenement in pygame.event.get(): if evenement.type == pygame.QUIT: sortie = 1