コード例 #1
0
ファイル: enemyPhone.py プロジェクト: Benoit-Pouliot/LD36
    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)
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
    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
コード例 #5
0
    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
コード例 #6
0
ファイル: enemyCommBoss.py プロジェクト: Benoit-Pouliot/LD36
    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)
コード例 #7
0
    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)
コード例 #8
0
ファイル: explosion.py プロジェクト: Benoit-Pouliot/LD36
    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
コード例 #9
0
ファイル: enemy.py プロジェクト: Benoit-Pouliot/LD36
    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)
コード例 #10
0
    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)
コード例 #11
0
ファイル: grenade.py プロジェクト: Benoit-Pouliot/LD36
    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
コード例 #12
0
ファイル: playerPlatform.py プロジェクト: Benoit-Pouliot/LD36
    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