Example #1
0
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)
Example #2
0
File: Modele.py Project: Rosme/B51
 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)
Example #3
0
 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)
Example #4
0
 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)
Example #5
0
    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
Example #6
0
        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)
Example #7
0
    def init_dynamic_elements(self):

        self.personnage = Personnage(100, 100, 10)
        self.ennemi = Personnage(400, 400, 2)
Example #8
0
File: Modele.py Project: Rosme/B51
 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)
Example #10
0
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
Example #11
0
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