Aide projet ISN
EleanorJuri
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
EleanorJuri Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
EleanorJuri Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour à vous,
Alors je suis en Terminale S et avec des amis on aurait besoin d'aide pour notre projet d'ISN. Nous utilisons Pygame. Alors notre projet est un jeu qui consiste à faire rattraper un personnage (qui ressemble actuellement à un carré avec une certaine dimension) un objet qu'on a appelé "banane". Ayant eu du mal à faire le programme de ce projet (nous ne somme pas très douées en ISN !), nous avions demandé à quelqu'un pour nous aider à faire le programme. Il nous a donc fait une partie du programme (la partie où les objets rentrent en collision) que nous ne comprenions pas vraiment (même s'il y a des commentaires), la voici :
Malheureusement la personne qui nous a aidé ne nous réponds plus, donc c'est pour cela que nous avions vraiment besoin d'une aide pour nous faire comprendre chaque ligne de ce programme..
Nous vous remercions d'avance !
Alors je suis en Terminale S et avec des amis on aurait besoin d'aide pour notre projet d'ISN. Nous utilisons Pygame. Alors notre projet est un jeu qui consiste à faire rattraper un personnage (qui ressemble actuellement à un carré avec une certaine dimension) un objet qu'on a appelé "banane". Ayant eu du mal à faire le programme de ce projet (nous ne somme pas très douées en ISN !), nous avions demandé à quelqu'un pour nous aider à faire le programme. Il nous a donc fait une partie du programme (la partie où les objets rentrent en collision) que nous ne comprenions pas vraiment (même s'il y a des commentaires), la voici :
# Fonction vide, modifiable lors d'un heritage pour gerer les collisions avec les autres entites def _collideEntity (self, oEntity): pass # Fonction pour gerer la collision d'une entite lors d'un deplacement avec la carte def _colisionMap(self, aMap): # Deplacement vertical iPositionMapX = int(self.fPositionX) // CELL_WIDTH iPositionMapY = int(self.fPositionY + self.fVelocityY) // CELL_HEIGHT # Si l'entite tombe if self.fVelocityY >= 0: iPositionMapY = iPositionMapY + 1 # Si la map contient un mur, la vitesse sur l'axe vertical est mis a 0 if aMap[iPositionMapY][iPositionMapX] == 1: self.fVelocityY = 0 # Verification de collision sur le bloc a cote lorsque l'entite est sur deux blocs de la map elif (iPositionMapX + 1) < len(aMap[iPositionMapY]) and self.fPositionX % CELL_WIDTH > 0 and aMap[iPositionMapY][iPositionMapX + 1] == 1: self.fVelocityY = 0 # Deplacement horizontal if self.fVelocityX != 0: iPositionMapY = int(self.fPositionY) // CELL_HEIGHT iPositionMapX = int(self.fPositionX + self.fVelocityX) // CELL_WIDTH # Si l'entite va vers la droite if self.fVelocityX > 0 : iPositionMapX = iPositionMapX + 1 # Si la map contient un mur, la vitesse sur l'axe horizontal est mis a 0 if aMap[iPositionMapY][iPositionMapX] == 1: self.fVelocityX = 0 # Verification de collision sur le bloc a cote lorsque l'entite touche deux blocs de la map elif iPositionMapY + 1 < len(aMap) and self.fPositionY % CELL_HEIGHT > 0 and aMap[iPositionMapY + 1][iPositionMapX] == 1 : self.fVelocityX = 0 # Fonction pour verfier et declencher la gestion de collision entre l'entite et les autres entite de la map def _collideEntities(self): aEntitiesRect = list() aOtherEntities = list() # On parcoure toutes les entites sur la map for oEntity in aEntities: # On ne recupere que les entites qui ne correspondent pas a l'instance if self is not oEntity: # On stock un rectangle a la position de chaque entites. # Afin de conserver un ensemble d'index similaire, on stock les entites dans le meme ordre # dans une seconde liste oRect = pygame.Rect(oEntity.fPositionX, oEntity.fPositionY, oEntity.fWidth, oEntity.fHeight) aEntitiesRect.append(oRect) aOtherEntities.append(oEntity) # On regarder avec quels indexs notre instance rentre en collision oRect = pygame.Rect(self.fPositionX, self.fPositionY, self.fWidth, self.fHeight) aIndexCollide = oRect.collidelistall(aEntitiesRect) # Si il y a au moins une collision, on declenche un event de collision avec l'entite if len(aIndexCollide) > 0: for iIndex in aIndexCollide: self._collideEntity(aOtherEntities[iIndex])
Malheureusement la personne qui nous a aidé ne nous réponds plus, donc c'est pour cela que nous avions vraiment besoin d'une aide pour nous faire comprendre chaque ligne de ce programme..
Nous vous remercions d'avance !
A voir également:
- Aide projet ISN
- Filigrane projet - Guide
- Gant projet - Télécharger - Gestion de projets
- Musique projet x - Forum Musique / Radio / Clip
- Différence entre pmo et chef de projet ✓ - Forum Programmation
- Wbs projet - Télécharger - Gestion de projets
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, merci d'utiliser la coloration syntaxique pour poster du code, surtout du code python.
EleanorJuri
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
ça marche !