diff --git a/Player.py b/Player.py index add853f..b096305 100644 --- a/Player.py +++ b/Player.py @@ -9,45 +9,46 @@ import os class Player(pygame.sprite.Sprite): + imgDir = os.path.join(os.path.dirname(__file__), 'data') + playerImage = pygame.image.load(os.path.join(imgDir, 'player.png'))#.convert() + walkImages = ( + pygame.transform.scale(playerImage.subsurface((0, 0, 16, 24)), (64, 98)), + pygame.transform.scale(playerImage.subsurface((16, 0, 16, 24)), (64, 98)), + pygame.transform.scale(playerImage.subsurface((32, 0, 16, 24)), (64, 98)), + pygame.transform.scale(playerImage.subsurface((16, 0, 16, 24)), (64, 98)), + ) + + upImages = ( + pygame.transform.scale(playerImage.subsurface((0, 24, 16, 24)), (64, 98)), + pygame.transform.scale(playerImage.subsurface((16, 24, 16, 24)), (64, 98)), + pygame.transform.scale(playerImage.subsurface((32, 24, 16, 24)), (64, 98)), + ) + + downImages = ( + pygame.transform.scale(playerImage.subsurface((0, 48, 16, 24)), (64, 98)), + pygame.transform.scale(playerImage.subsurface((16, 48, 16, 24)), (64, 98)), + pygame.transform.scale(playerImage.subsurface((32, 48, 16, 24)), (64, 98)), + ) + + crouchImages = ( + pygame.transform.scale(playerImage.subsurface((0, 72, 16, 16)), (64, 64)), + pygame.transform.scale(playerImage.subsurface((16, 72, 16, 16)), (64, 64)), + ) + + + for array in (walkImages, upImages, downImages, crouchImages): + for image in array: + image.set_colorkey((255,0,255)) + def __init__(self): - self.imgDir = os.path.join(os.path.dirname(__file__), 'data') + pygame.sprite.Sprite.__init__(self) - playerImage = pygame.image.load(os.path.join(self.imgDir, 'player.png')).convert() - - self.walkImages = ( - pygame.transform.scale(playerImage.subsurface((0, 0, 16, 24)), (64, 98)), - pygame.transform.scale(playerImage.subsurface((16, 0, 16, 24)), (64, 98)), - pygame.transform.scale(playerImage.subsurface((32, 0, 16, 24)), (64, 98)), - pygame.transform.scale(playerImage.subsurface((16, 0, 16, 24)), (64, 98)), - ) self.currentWalkImage = 0 - - self.upImages = ( - pygame.transform.scale(playerImage.subsurface((0, 24, 16, 24)), (64, 98)), - pygame.transform.scale(playerImage.subsurface((16, 24, 16, 24)), (64, 98)), - pygame.transform.scale(playerImage.subsurface((32, 24, 16, 24)), (64, 98)), - ) self.currentUpImage = 0 - - self.downImages = ( - pygame.transform.scale(playerImage.subsurface((0, 48, 16, 24)), (64, 98)), - pygame.transform.scale(playerImage.subsurface((16, 48, 16, 24)), (64, 98)), - pygame.transform.scale(playerImage.subsurface((32, 48, 16, 24)), (64, 98)), - ) self.currentDownImage = 0 - - self.crouchImages = ( - pygame.transform.scale(playerImage.subsurface((0, 72, 16, 16)), (64, 64)), - pygame.transform.scale(playerImage.subsurface((16, 72, 16, 16)), (64, 64)), - ) self.currentCrouchImage = 0 - for array in (self.walkImages, self.upImages, self.downImages, self.crouchImages): - for image in array: - image.set_colorkey((255,0,255)) - - pygame.sprite.Sprite.__init__(self) - self.image = self.walkImages[self.currentWalkImage] + self.image = Player.downImages[self.currentDownImage] self.rect = self.image.get_rect() self.rect.center = (100, 400) @@ -138,22 +139,22 @@ class Player(pygame.sprite.Sprite): if self.isOnFloor: if self.isCrouching: self.currentCrouchImage += 1 - if self.currentCrouchImage >= len(self.crouchImages): + if self.currentCrouchImage >= len(Player.crouchImages): self.currentCrouchImage = 0 - self.image = self.crouchImages[self.currentCrouchImage] + self.image = Player.crouchImages[self.currentCrouchImage] else: self.currentWalkImage += 1 - if self.currentWalkImage >= len(self.walkImages): + if self.currentWalkImage >= len(Player.walkImages): self.currentWalkImage = 0 - self.image = self.walkImages[self.currentWalkImage] + self.image = Player.walkImages[self.currentWalkImage] elif self.isJumping: self.currentUpImage += 1 - if self.currentUpImage >= len(self.upImages): + if self.currentUpImage >= len(Player.upImages): self.currentUpImage = 0 - self.image = self.upImages[self.currentUpImage] + self.image = Player.upImages[self.currentUpImage] else: self.currentDownImage += 1 - if self.currentDownImage >= len(self.downImages): + if self.currentDownImage >= len(Player.downImages): self.currentDownImage = 0 - self.image = self.downImages[self.currentDownImage] + self.image = Player.downImages[self.currentDownImage] self.updateCount = 0 diff --git a/StandingEnemy.py b/StandingEnemy.py index adda10f..66fc0e9 100644 --- a/StandingEnemy.py +++ b/StandingEnemy.py @@ -5,23 +5,85 @@ Standing enemy entity class import pygame import random +import os + from Enemy import Enemy class StandingEnemy(Enemy): + imgDir = os.path.join(os.path.dirname(__file__), 'data') + senemyImage = pygame.image.load(os.path.join(imgDir, 'senemy.png'))#.convert() + images = ( + ( + pygame.transform.scale(senemyImage.subsurface((0, 0, 8, 24)), (32, 98)), + pygame.transform.scale(senemyImage.subsurface((8, 0, 8, 24)), (32, 98)), + pygame.transform.scale(senemyImage.subsurface((16, 0, 8, 24)), (32, 98)), + pygame.transform.scale(senemyImage.subsurface((24, 0, 8, 24)), (32, 98)), + pygame.transform.scale(senemyImage.subsurface((32, 0, 8, 24)), (32, 98)), + pygame.transform.scale(senemyImage.subsurface((40, 0, 8, 24)), (32, 98)), + ), + ( + pygame.transform.scale(senemyImage.subsurface((0, 24, 8, 16)), (32, 64)), + pygame.transform.scale(senemyImage.subsurface((8, 24, 8, 16)), (32, 64)), + pygame.transform.scale(senemyImage.subsurface((16, 24, 8, 16)), (32, 64)), + pygame.transform.scale(senemyImage.subsurface((24, 24, 8, 16)), (32, 64)), + pygame.transform.scale(senemyImage.subsurface((32, 24, 8, 16)), (32, 64)), + pygame.transform.scale(senemyImage.subsurface((40, 24, 8, 16)), (32, 64)), + ), + ( + pygame.transform.scale(senemyImage.subsurface((0, 40, 16, 16)), (64, 64)), + pygame.transform.scale(senemyImage.subsurface((16, 40, 16, 16)), (64, 64)), + pygame.transform.scale(senemyImage.subsurface((32, 40, 16, 16)), (64, 64)), + pygame.transform.scale(senemyImage.subsurface((0, 56, 16, 16)), (64, 64)), + pygame.transform.scale(senemyImage.subsurface((16, 56, 16, 16)), (64, 64)), + pygame.transform.scale(senemyImage.subsurface((32, 56, 16, 16)), (64, 64)), + ), + ( + pygame.transform.scale(senemyImage.subsurface((0, 72, 8, 8)), (32, 32)), + pygame.transform.scale(senemyImage.subsurface((8, 72, 8, 8)), (32, 32)), + pygame.transform.scale(senemyImage.subsurface((16, 72, 8, 8)), (32, 32)), + pygame.transform.scale(senemyImage.subsurface((24, 72, 8, 8)), (32, 32)), + pygame.transform.scale(senemyImage.subsurface((32, 72, 8, 8)), (32, 32)), + pygame.transform.scale(senemyImage.subsurface((40, 72, 8, 8)), (32, 32)), + ), + ( + pygame.transform.scale(senemyImage.subsurface((0, 80, 16, 8)), (64, 32)), + pygame.transform.scale(senemyImage.subsurface((16, 80, 16, 8)), (64, 32)), + pygame.transform.scale(senemyImage.subsurface((32, 80, 16, 8)), (64, 32)), + pygame.transform.scale(senemyImage.subsurface((0, 88, 16, 8)), (64, 32)), + pygame.transform.scale(senemyImage.subsurface((16, 88, 16, 8)), (64, 32)), + pygame.transform.scale(senemyImage.subsurface((32, 88, 16, 8)), (64, 32)), + ), + ( + pygame.transform.scale(senemyImage.subsurface((0, 96, 24, 8)), (98, 32)), + pygame.transform.scale(senemyImage.subsurface((24, 96, 24, 8)), (98, 32)), + pygame.transform.scale(senemyImage.subsurface((0, 104, 24, 8)), (98, 32)), + pygame.transform.scale(senemyImage.subsurface((24, 104, 24, 8)), (98, 32)), + pygame.transform.scale(senemyImage.subsurface((0, 112, 24, 8)), (98, 32)), + pygame.transform.scale(senemyImage.subsurface((24, 112, 24, 8)), (98, 32)), + ), + ) + def __init__(self, mainGameClass): Enemy.__init__(self, mainGameClass) - self.subtype = random.randint(1, 5) + for array in self.images: + for image in array: + image.set_colorkey((255,0,255)) - if self.subtype == 1: self.image = pygame.Surface((25, 75)) - elif self.subtype == 2: self.image = pygame.Surface((25, 25)) - elif self.subtype == 3: self.image = pygame.Surface((75, 25)) - elif self.subtype == 4: self.image = pygame.Surface((50, 25)) - elif self.subtype == 5: self.image = pygame.Surface((50, 50)) - else: self.image = pygame.Surface((25, 50)) - self.image.fill((0, 153, 0)) + self.subtype = random.randint(1, len(StandingEnemy.images)) + + self.image = random.choice(StandingEnemy.images[self.subtype-1]) + + # if self.subtype == 1: self.image = pygame.Surface((32, 96)) + # elif self.subtype == 2: self.image = pygame.Surface((32, 64)) + # elif self.subtype == 3: self.image = pygame.Surface((64, 64)) + # elif self.subtype == 4: self.image = pygame.Surface((32, 32)) + # elif self.subtype == 5: self.image = pygame.Surface((64, 32)) + # else: self.image = pygame.Surface((96, 32)) + + # self.image.fill((0, 153, 0)) self.rect = self.image.get_rect() self.height -= self.rect.height/2 diff --git a/data/senemy.png b/data/senemy.png new file mode 100644 index 0000000..dfdc17f Binary files /dev/null and b/data/senemy.png differ diff --git a/data/senemy.xcf b/data/senemy.xcf new file mode 100644 index 0000000..3766c54 Binary files /dev/null and b/data/senemy.xcf differ