def __init__(self, x, y, theMap, iterStart=0): super().__init__(x, y, os.path.join('img', 'EnemyPhone.png')) self.name = "EnemyPhone" self.collisionMask = CollisionMask(self.rect.x, self.rect.y, self.rect.width, self.rect.height) self.speedx = 0 self.speedy = 0 self.theMap = theMap self.isGravityApplied = False self.isCollisionApplied = False self.imageIterShoot = 40 self.imageWaitNextShoot = 80 self.imagePhoneNumber = -1 self.isInvincible = True self.isShooter = 0 self.fallSpd = 5 self.life = 1 image1 = self.image image2 = pygame.image.load(os.path.join('img', 'enemyPhoneAnim.png')) self.animation.setAnimation([image1, image2], 30)
def __init__(self, x, y, theMap, direction="Left"): super().__init__(x, y, os.path.join('img', 'enemyRadio.png')) self.name = "enemyRadio" self.collisionMask = CollisionMask(self.rect.x, self.rect.y, self.rect.width, self.rect.height) self.imageEnemyLeft = self.image self.imageEnemyRight = pygame.transform.flip(self.imageEnemyLeft, True, False) self.speedx = 0 self.speedy = 0 self.theMap = theMap self.setDirection(direction) self.isGravityApplied = True self.isCollisionApplied = True self.imageIterShoot = 40 self.imageWaitNextShoot = 80 self.life = 1 # For animation purpose, sete multiple image image1 = self.image image2 = pygame.image.load(os.path.join('img', 'enemyRadioAnim.png')) self.animation.setAnimation([image1, image2, image1], 27)
def __init__(self, x, y, theMap, direction="Left"): super().__init__(x, y, os.path.join('img', 'enemyMp3.png')) self.name = "enemyMp3" self.collisionMask = CollisionMask(self.rect.x, self.rect.y, self.rect.width, self.rect.height) self.speedx = 0 self.speedy = 0 self.jumpSpeed = -60 self.theMap = theMap self.direction = direction self.isGravityApplied = True self.isCollisionApplied = True self.imageIterShoot = 40 self.imageWaitNextShoot = 80 self.life = 2 # For animation purpose, sete multiple image image1 = self.image image2 = pygame.image.load(os.path.join('img', 'enemyMp3Anim.png')) image3 = pygame.image.load(os.path.join('img', 'enemyMp3Anim2.png')) image4 = pygame.image.load(os.path.join('img', 'enemyMp3Anim3.png')) self.animation.setAnimation([image1, image2, image3, image4], 30)
def __init__(self, x, y, direction="Right"): super().__init__(x, y, os.path.join('img', 'enemyTypewriter.png')) self.name = "enemyTypewriter" self.collisionMask = CollisionMask(self.rect.x, self.rect.y, self.rect.width, self.rect.height) self.imageEnemyLeft = self.image self.imageEnemyRight = pygame.transform.flip(self.imageEnemyLeft, True, False) self.initx = self.rect.x self.inity = self.rect.y self.speedBase = 3 self.distanceMax = 200 self.speedx = self.speedBase self.speedy = 0 self.distance = 0 self.direction = direction if self.direction == "Left": self.speedx = -self.speedBase self.image = self.imageEnemyLeft if self.direction == "Right": self.speedx = self.speedBase self.image = self.imageEnemyRight self.isGravityApplied = True self.isCollisionApplied = True self.life = 2
def __init__(self, x, y, theMap, direction="Left"): super().__init__(x, y, os.path.join('img', 'enemyTelegraph.png')) self.name = "enemyTelegraph" self.collisionMask = CollisionMask(self.rect.x, self.rect.y, self.rect.width, self.rect.height) self.imageEnemyLeft = self.image self.imageEnemyLeftAnim = pygame.image.load( os.path.join('img', 'enemyTelegraphAnim.png')) self.imageEnemyRight = pygame.transform.flip(self.imageEnemyLeft, True, False) self.imageEnemyRightAnim = pygame.transform.flip( self.imageEnemyLeftAnim, True, False) self.speedx = 0 self.speedy = 0 self.theMap = theMap self.setDirection(direction) self.isGravityApplied = True self.isCollisionApplied = True self.imageIterShoot = 40 self.imageWaitNextShoot = 80 self.life = 1
def __init__(self, x, y, theMap): super().__init__(x, y, os.path.join('img', 'enemyCommBoss.png')) self.name = "enemyCommBoss" self.collisionMask = CollisionMask(self.rect.x, self.rect.y, self.rect.width, self.rect.height) self.initx = self.rect.x self.inity = self.rect.y self.theMap = theMap self.speedBase = 5 self.distanceMax = 450 self.speedx = 0 self.speedy = -self.speedBase self.distance = 0 self.direction = "Up" self.isGravityApplied = False self.isCollisionApplied = True self.soundVictory = pygame.mixer.Sound( os.path.join('music_pcm', 'levelWin.wav')) self.life = 10 # For animation purpose, sete multiple image image1 = self.image image2 = pygame.image.load( os.path.join('img', 'enemyCommBossShoot.png')) image3 = pygame.image.load(os.path.join('img', 'enemyCommBossAnim.png')) #It's hardcoded to fit with the shooting. self.animation.setAnimation([ image2, image1, image3, image1, image1, image3, image1, image3, image1, image3, image2, image1, image2, image1, image3, image2, image1, image2, image3, image1, image2, image1, image3, image1 ], 20) self.imageIterShoot = 0 self.imageWaitNextShoot = list() # Wait 5 sec (in 60 FPS) before first wave self.imageWaitNextShoot.append(200) self.imageWaitNextShoot.append(240) self.imageWaitNextShoot.append(300) self.imageWaitNextShoot.append(340) self.imageWaitNextShoot.append(360) self.imageWaitNextShoot.append(400) self.imageWaitNextShoot.append(480) self.imageIterWaitNextShoot = 0 self.imageIterWaitNextShootMax = len(self.imageWaitNextShoot)
def __init__(self, x, y, theMap, direction="Left"): super().__init__(x, y, os.path.join('img', 'enemyMusicBoss.png')) self.name = "enemyMusicBoss" self.collisionMask = CollisionMask(self.rect.x, self.rect.y, self.rect.width, self.rect.height) self.speedx = 0 self.speedy = 0 self.jumpSpeed = -60 self.theMap = theMap self.direction = direction self.isGravityApplied = True self.isCollisionApplied = True self.life = 8 image1 = self.image image2 = pygame.image.load(os.path.join('img', 'enemyMusicBossAnim.png')) image3 = pygame.image.load(os.path.join('img', 'enemyMusicBossAnim2.png')) image4 = pygame.image.load(os.path.join('img', 'enemyMusicBossAnim3.png')) self.animation.setAnimation([image1, image2, image3, image4], 30) #Kill boss fast if TAG_MARIE == 1: self.life = 1 self.soundVictory = pygame.mixer.Sound(os.path.join('music_pcm', 'levelWin.wav')) self.imageIterShoot = 280 self.imageWaitNextShoot = list() # Wait 5 sec (in 60 FPS) before first wave self.imageWaitNextShoot.append(300) self.imageWaitNextShoot.append(320) self.imageWaitNextShoot.append(340) self.imageWaitNextShoot.append(360) self.imageWaitNextShoot.append(660) self.imageWaitNextShoot.append(680) self.imageWaitNextShoot.append(700) self.imageWaitNextShoot.append(720) self.imageIterWaitNextShoot = 0 self.imageIterWaitNextShootMax = len(self.imageWaitNextShoot)
def __init__(self, x, y, friendly=True): super().__init__() self.name = "explosion" self.frames = [] for versionNum in range(1, 4): self.frames.append( pygame.image.load( os.path.join('img', 'explosion_v' + str(versionNum) + '.png'))) self.image = self.frames[0] self.rect = self.image.get_rect() self.rect.centerx = x self.rect.centery = y self.speedx = 0 self.speedy = 0 self.collisionMask = CollisionMask(self.rect.x, self.rect.y, self.rect.width, self.rect.height) self.animation = None self.friendly = friendly self.isPhysicsApplied = False self.isGravityApplied = False self.isFrictionApplied = False self.isCollisionApplied = False self.jumpState = JUMP self.facingSide = RIGHT self.counter = Counter() self.duration = 25 #In frames
def __init__(self, x, y, pathImage=os.path.join('img', 'Cochon.png')): super().__init__() self.name = "enemy" # self.image = pygame.transform.scale(pygame.image.load(image), (TILEDIMX, TILEDIMY)) self.imageEnemy = pygame.image.load(pathImage) self.image = self.imageEnemy self.frames = [self.image] self.animation = Animation(self,self.frames,-1) self.rect = self.image.get_rect() self.rect.x = x self.rect.y = y self.collisionMask = CollisionMask(0,0,0,0) self.collisionMask.rect = self.rect self.imageTransparent = pygame.Surface((1,1)) self.imageTransparent.set_colorkey(BLACK) self.jumpState = JUMP self.specialState = None self.specialWallSide = None self.shape = None self.isInvincible = False self.invincibleFrameCounter = 0 self.invincibleFrameDuration = 60 self.isPhysicsApplied = False self.isGravityApplied = False self.isFrictionApplied = False self.isCollisionApplied = False self.soundDead = pygame.mixer.Sound(os.path.join('music_pcm', 'Punch2.wav')) self.soundDead.set_volume(1)
def __init__(self, x, y, direction="Right"): super().__init__(x, y, os.path.join('img', 'enemyWalkman.png')) self.name = "enemyWalkman" self.collisionMask = CollisionMask(self.rect.x, self.rect.y, self.rect.width, self.rect.height) self.initx = self.rect.x self.inity = self.rect.y self.speedBase = 2 self.distanceMax = 200 self.speedx = self.speedBase self.speedy = 0 self.distance = 0 self.direction = direction if self.direction == "Left": self.speedx = -self.speedBase if self.direction == "Right": self.speedx = self.speedBase self.isGravityApplied = True self.isCollisionApplied = True self.life = 3 # For animation purpose, sete multiple image image1 = self.image image2 = pygame.image.load(os.path.join('img', 'enemyWalkmanAnim.png')) image3 = pygame.image.load(os.path.join('img', 'enemyWalkmanAnim2.png')) self.animation.setAnimation([image1, image1, image2, image1, image3], 30)
def __init__(self, x, y, speedX, speedY, mapData, friendly=True): super().__init__() self.name = "grenade" self.speedx = speedX self.speedy = speedY self.frames = list() self.frames.append(pygame.image.load(os.path.join('img', 'cursor_v3.png'))) for k in range(1, 36): self.frames.append(pygame.transform.rotate(self.frames[0], -k*10)) self.image = self.frames[0] self.soundExplosion = pygame.mixer.Sound(os.path.join('music_pcm', 'Explosion.wav')) self.soundExplosion.set_volume(1) self.rect = self.image.get_rect() self.rect.centerx = x self.rect.centery = y self.collisionMask = CollisionMask(self.rect.x, self.rect.y, self.rect.width, self.rect.height) self.animation = None self.friendly = friendly self.isPhysicsApplied = False self.isGravityApplied = True self.isFrictionApplied = False self.isCollisionApplied = True self.jumpState = JUMP self.facingSide = RIGHT self.mapData = mapData self.imageIter = 0
def __init__(self, x, y, mapData): super().__init__() self.name = "player" self.imageShapeStillRight = pygame.image.load( os.path.join('img', 'Player_v1.png')) self.imageShapeStillLeft = pygame.transform.flip( self.imageShapeStillRight, True, False) self.imageShapeWalkRight = list() self.imageShapeWalkRight.append( pygame.image.load(os.path.join('img', 'Player_v5.png'))) self.imageShapeWalkRight.append( pygame.image.load(os.path.join('img', 'Player_v3.png'))) self.imageShapeWalkRight.append(self.imageShapeWalkRight[0]) self.imageShapeWalkRight.append( pygame.image.load(os.path.join('img', 'Player_v4.png'))) self.imageShapeClimb = list() self.imageShapeClimb.append( pygame.image.load(os.path.join('img', 'PlayerClimb_v1.png'))) self.imageShapeClimb.append( pygame.image.load(os.path.join('img', 'PlayerClimb_v2.png'))) self.imageShapeJumpRight = list() self.imageShapeJumpRight.append( pygame.image.load(os.path.join('img', 'PlayerJump_v1.png'))) self.imageShapeJumpRight.append( pygame.image.load(os.path.join('img', 'PlayerJump_v2.png'))) self.imageTransparent = pygame.Surface((1, 1)) self.imageTransparent.set_colorkey(BLACK) self.imageShapeWalkLeft = list() for k in range(0, 4): self.imageShapeWalkLeft.append( pygame.transform.flip(self.imageShapeWalkRight[k], True, False)) self.imageShapeJumpLeft = list() for k in range(0, 2): self.imageShapeJumpLeft.append( pygame.transform.flip(self.imageShapeJumpRight[k], True, False)) self.image = self.imageShapeStillRight self.rect = self.image.get_rect() self.rect.x = x self.rect.y = y self.collisionMask = CollisionMask(self.rect.x + 3, self.rect.y, self.rect.width - 6, self.rect.height) #To dodge rounding problems with rect self.x = x self.y = y self.pastFrameX = x self.pastFrameY = y self.speedx = 0 self.speedy = 0 self.maxSpeedx = 6 self.maxSpeedyUp = 20 self.maxSpeedyDown = 16 self.maxSpeedyUpClimbing = 6 self.maxSpeedyDownClimbing = 6 self.accx = 2 self.accy = 2 self.jumpSpeed = -17 self.isPhysicsApplied = False self.isGravityApplied = True self.isFrictionApplied = True self.isCollisionApplied = True self.jumpState = JUMP self.facingSide = RIGHT self.lifeBar = PlayerLifeBar(8) self.powerBar = PowerBar(RATIO * POWER_CAP) self.isInvincible = False self.invincibleFrameCounter = 0 self.invincibleFrameDuration = 60 self.rightPressed = False self.leftPressed = False self.upPressed = False self.downPressed = False self.mapData = mapData self.target = Target(x, y) self.mapData.camera.add(self.target) self.mapData.allSprites.add(self.target) self.mapData.friendlyBullet.add(self.target) self.isAlive = True self.soundSpring = pygame.mixer.Sound( os.path.join('music_pcm', 'LvlUpFail2.wav')) self.soundBullet = pygame.mixer.Sound( os.path.join('music_pcm', 'Gun2.wav')) self.soundGetHit = pygame.mixer.Sound( os.path.join('music_pcm', 'brokenGlass2.wav')) self.soundSpring.set_volume(1) self.soundBullet.set_volume(.3) self.soundGetHit.set_volume(.3) self.imageIterStateRight = 0 self.imageIterStateLeft = 0 self.imageWaitNextImage = 4 self.imageIterWait = 0 self.imageIterStateClimb = 0 self.imageClimbWaitNextImage = 16 self.imageClimbIterWait = 0 self.imageIterStateJump = 0 self.imageJumpWaitNextImage = 4 self.imageJumpIterWait = 0