def jump(self): if self.isOnTheGround and not self.isInCutScene: self.addToVec(0, -350 * self.upgrades.jumpingHeight * self.gravity) self.changeAnimationTemp( self.flipList(aggregateAnim('sprites/character/', 'jumping'), self.facingLeft, self.gravity), 10) stopHitting(self)
def lighHit(self): if self.timeSinceLastSwing >= 0.5: self.timeSinceLastSwing = 0 self.isSwingingSword = True self.changeAnimationTemp( self.flipList( aggregateAnim('sprites/character/', 'light_attack'), self.facingLeft, self.gravity), 10, stopHitting)
def __init__(self, gridPosition): GridAlignedObject.__init__(self, gridPosition, aggregateAnim('sprites/npc', 'boss_idle_f'), 4) self.currentLine = 0 self.dialogues = [ 'Hehehe!', 'Bien joue d\'etre arrive jusqu\'ici.', 'Hihihi! ', 'Mais c\'etait en vain.', 'Tu ne peux pas sauver le monde.', ' Hohoho!', 'Tu es destine a rester dans cette salle jusqu\'a la fin de tes jours...', 'Soit dans pas longtemps', 'Huhuhu!', '' ]
def firstMenu(self): self.addbackground() self.gameObjects.append( DisplayableElement(aggregateAnim('sprites/menu/', 'you died'), 0.001)) self.gameObjects[-1].moveto((530, 140)) self.gameObjects.append( Button((300, 440), 'sprites/menu/', 'retry', self.retryMenu)) self.gameObjects.append( Button((700, 440), 'sprites/menu/', 'submit', self.submitMenu)) self.gameObjects.append( Button((512, 300), 'sprites/menu/', 'credits', self.credits))
def startRunning(self, left): if not self.isInCutScene: if left: self.addToVec(64 * self.upgrades.walkingSpeed, 0) else: self.addToVec(-64 * self.upgrades.walkingSpeed, 0) if left != self.facingLeft or self.walking: self.walking = False self.facingLeft = left self.changeAnimation( self.flipList( aggregateAnim('sprites/character/', 'running'), left, self.gravity), 5) stopHitting(self)
def addToVec(self, x, y): GravityObject.addToVec(self, x, y) self.animationFrames = self.flipList(aggregateAnim('sprites/mobs/', 'slime color swap purple'), (self.facingLeft))
def __init__(self, startingGridPos): GridAlignedObject.__init__(self, startingGridPos, aggregateAnim('sprites/mobs/', 'slime color swap purple'), 3) self.move((0,50))
def changeVec(self, newVec): GravityObject.changeVec(self, newVec) self.animationFrames = self.flipList(aggregateAnim('sprites/mobs/', 'slime color swap purple'), (self.facingLeft))
def use(self): self.changeAnimationTemp(aggregateAnim('sprites/environment/', 'spring'), 3)
def __init__(self, pos, animpath, animfile, callback): DisplayableElement.__init__(self, aggregateAnim(animpath, animfile), 0.001) self.moveto(pos) self.__callback = callback
def addToVec(self, x, y): MovingObject.addToVec(self, x, y) self.animationFrames = self.flipList( aggregateAnim('sprites/mobs/', 'bat color-swap-purple'), (self.movementVector[0] > 0))
def use(self): self.changeAnimationTemp( aggregateAnim('sprites/environment', 'button_Animation 1_1'), 0.25)
def __init__(self, gridPosition, facing = 0):#0=up, 1=left, 2=down, 3= right GridAlignedObject.__init__(self, gridPosition, self.__spinList(aggregateAnim('sprites/environment/', 'spike_f0'), facing), 0.001) self.facing = facing
def stopMoving(self): self.walking = False self.changeAnimation( self.flipList(aggregateAnim('sprites/character/', 'idle'), self.facingLeft, self.gravity), 5) stopHitting(self)
def __init__(self, gridPos): GridAlignedObject.__init__(self, gridPos, aggregateAnim('sprites/items/', 'coin'), 5)
def __init__(self, gridPosition): rand = random.random() if rand <= 1 / 12.0: GridAlignedObject.__init__(self, gridPosition, aggregateAnim('sprites/npc', 'npc1_f'), 4) elif 1 / 12.0 < rand <= 2 / 12.0: GridAlignedObject.__init__(self, gridPosition, aggregateAnim('sprites/npc', 'npc2'), 4) elif 2 / 12.0 < rand <= 3 / 12.0: GridAlignedObject.__init__(self, gridPosition, aggregateAnim('sprites/npc', 'npc3'), 4) elif 3 / 12.0 < rand <= 4 / 12.0: GridAlignedObject.__init__(self, gridPosition, aggregateAnim('sprites/npc', 'npc4'), 4) elif 4 / 12.0 < rand <= 5 / 12.0: GridAlignedObject.__init__(self, gridPosition, aggregateAnim('sprites/npc', 'npc5'), 4) elif 5 / 12.0 < rand <= 6 / 12.0: GridAlignedObject.__init__(self, gridPosition, aggregateAnim('sprites/npc', 'npc6'), 4) elif 6 / 12.0 < rand <= 7 / 12.0: GridAlignedObject.__init__(self, gridPosition, aggregateAnim('sprites/npc', 'npc7'), 4) elif 7 / 12.0 < rand <= 8 / 12.0: GridAlignedObject.__init__(self, gridPosition, aggregateAnim('sprites/npc', 'npc8'), 4) elif 8 / 12.0 < rand <= 9 / 12.0: GridAlignedObject.__init__(self, gridPosition, aggregateAnim('sprites/npc', 'npc9'), 4) elif 9 / 12.0 < rand <= 10 / 12.0: GridAlignedObject.__init__(self, gridPosition, aggregateAnim('sprites/npc', 'npc10'), 4) elif 10 / 12.0 < rand <= 11 / 12.0: GridAlignedObject.__init__(self, gridPosition, aggregateAnim('sprites/npc', 'npc11'), 4) elif 11 / 12.0 < rand: GridAlignedObject.__init__(self, gridPosition, aggregateAnim('sprites/npc', 'npc12'), 4)
def __init__(self, gridPosition): GridAlignedObject.__init__( self, gridPosition, aggregateAnim('sprites/environment/', 'spawnpoint'), 0.001)
floorNumber = 1 #roomNumber = 0 #floorNumber = 1 pygame.key.set_repeat(1, 200) # Music pygame.mixer.music.load("music.wav") pygame.mixer.music.set_volume(0.1) gameObjects = [] for x in range(16): for y in range(9): gameObjects.append(BackWall((x, y))) gameObjects.append(Room(roomNumber, floorNumber)) gameObjects.append( DisplayableElement(aggregateAnim('sprites/environment', 'tutorial'))) gameObjects.append(Player()) diedmenu = DiedMenu(SM, gameObjects[-1]) gameObjects.append( DisplayableElement(aggregateAnim('sprites/environment', 'rectangle'))) gameObjects.append( DisplayableElement(aggregateAnim('sprites/environment', 'rectangle'))) gameObjects.append(TextElement('texte', 'Calibri', 35, (189, 18, 18))) gameObjects.append(TextElement('texte', 'Calibri', 35, (189, 18, 18))) # THE ORDER OF GAMEOBJECTS IN THE LIST IS REALLY IMPORTANT: IT DICTATES DRAWING ORDER. DO NOT MESS WITH IT for obj in gameObjects: obj.display = True gameObjects[-7].show(True) pygame.mixer.music.play(-1)
def __init__(self, gridPos): GridAlignedObject.__init__( self, gridPos, aggregateAnim('sprites/environment', 'button_Animation 1_0'), 0.001)
def __init__(self, startingGridPos): GridAlignedObject.__init__( self, startingGridPos, aggregateAnim('sprites/mobs/', 'bat color-swap-purple'), 20) self.move((0, 60))
def __init__(self): GravityObject.__init__(self, (512, 128), aggregateAnim('sprites/character/', 'idle'), 5) self.upgrades = Upgrades()
def changeVec(self, newVec): MovingObject.changeVec(self, newVec) self.animationFrames = self.flipList( aggregateAnim('sprites/mobs/', 'bat color-swap-purple'), (self.movementVector[0] > 0))
def __init__(self, gridPos): GridAlignedObject.__init__(self, gridPos, aggregateAnim('sprites/environment/', 'spring_f0'), 0.001)
def animate(self, clocktick): if (not self.isInTempAnim) and random.random() > 0.999: self.changeAnimationTemp(self.__spinList(aggregateAnim('sprites/environment/', 'spike'), self.facing), 10) GridAlignedObject.animate(self, clocktick)
def __init__(self, gridPosition): GridAlignedObject.__init__( self, gridPosition, aggregateAnim('sprites/environment/', 'table'), 3)