示例#1
0
    def __init__(self, game):
        super().__init__(game)
        self.sprite = Sprite(3, colorkey=c.BLACK)
        self.halberd = Sprite(3, colorkey=c.BLACK)
        idle = SpriteSheet(c.image_path("warden.png"), (1, 1), 1)
        self.sprite.add_animation({"Idle": idle})
        self.sprite.start_animation("Idle")

        idle = SpriteSheet(c.image_path("halberd.png"), (1, 1), 1)
        self.halberd.add_animation({"Idle": idle})
        self.halberd.start_animation("Idle")

        self.x = c.WINDOW_WIDTH // 2
        self.y = 125
        self.age = 0
        self.alpha = -200
        self.target_alpha = 255
        self.name = "Warden"
        self.slashing = False
        self.slash_timer = 0

        self.left = pygame.image.load(c.image_path("warden_left.png")).convert()
        self.left.set_colorkey(c.BLACK)
        self.left.set_alpha(255)
        self.right = pygame.image.load(c.image_path("warden_right.png")).convert()
        self.right.set_colorkey(c.BLACK)
        self.right.set_alpha(255)
示例#2
0
 def main(self):
     inst = SpriteSheet("images/controls.png", (2, 1), 2)
     sprite = Sprite(4)
     sprite.add_animation({"Idle": inst})
     sprite.start_animation("Idle")
     clock = pygame.time.Clock()
     age = 0
     shade = pygame.Surface(c.WINDOW_SIZE)
     shade.fill(c.BLACK)
     shade.set_alpha(255)
     while True:
         end = 4
         if age < 0.25:
             shade.set_alpha((0.25 - age) * 255 / 0.25)
         elif age > end - 0.25:
             shade.set_alpha((age - end + 0.25) * 255 / 0.25)
         else:
             shade.set_alpha(0)
         sprite.set_position((c.WINDOW_WIDTH // 2, c.WINDOW_HEIGHT // 2))
         dt = clock.tick(60) / 1000
         age += dt
         events = self.game.update_globals()
         sprite.update(dt)
         sprite.draw(self.game.screen)
         self.game.screen.blit(shade, (0, 0))
         pygame.display.flip()
         if age >= end:
             self.game.bus_ride.fadeout(500)
             break
示例#3
0
 def get_sprite_from_plant(self):
     plant = self.plant
     sprite = Sprite(4)
     if plant.name == "Empty":
         key = plant.name
     elif plant.state == c.SEED:
         key = "Seed"
     else:
         key = plant.name + str(plant.state)
     sheet = SpriteSheet(self.scene.load_image(key), (1, 1), 1)
     sprite.add_animation({"idle": sheet})
     sprite.start_animation("idle")
     return sprite
示例#4
0
    def __init__(self, game):
        super().__init__(game)
        self.sprite = Sprite(3, colorkey=c.BLACK)
        idle = SpriteSheet(c.image_path("evil_guy_placeholder.png"), (1, 1), 1)
        self.sprite.add_animation({"Idle": idle})
        self.sprite.start_animation("Idle")
        self.name = "Parity"

        self.x = c.WINDOW_WIDTH//2
        self.y = 125
        self.yoff = 0
        self.age = 0
        self.alpha = 0
        self.target_alpha = 255
示例#5
0
    def __init__(self, game, position=(0, 0)):
        super().__init__(game, None, position=position)
        self.sprite = Sprite(16)
        anim = SpriteSheet(c.image_path("bullet_hit.png"), (8, 1), 8)
        self.sprite.add_animation({"Default": anim})
        self.sprite.start_animation("Default")
        self.game.top_particles.add(self)

        surface = pygame.Surface((100, 100))
        surface.fill((0, 0, 0))
        pygame.draw.circle(surface, (255, 255, 255), (50, 50), 50)
        self.boom = surface
        self.boom.set_colorkey((0, 0, 0))
        self.boom_alpha = 200
        self.boom_size = 40
示例#6
0
    def __init__(self, scene, pos=(3, 3)):
        super().__init__(scene)
        self.priority = 3
        self.blocking = True
        self.interactive = True
        self.dialogue = None

        tag_dict = {"Player": "player", "Emilia": "captain", None: "player"}
        tag = tag_dict[self.name]

        down = SpriteSheet(scene.load_image(f"{tag}_walk_down"), (6, 1), 6)
        up = SpriteSheet(scene.load_image(f"{tag}_walk_up"), (6, 1), 6)
        down_idle = SpriteSheet(scene.load_image(f"{tag}_idle_down"), (4, 1),
                                4)
        up_idle = SpriteSheet(scene.load_image(f"{tag}_idle_up"), (4, 1), 4)
        right = SpriteSheet(scene.load_image(f"{tag}_walk_right"), (6, 1), 6)
        left = SpriteSheet(scene.load_image(f"{tag}_walk_right"), (6, 1), 6)
        left.reverse(1, 0)
        right_idle = SpriteSheet(scene.load_image(f"{tag}_idle_right"), (4, 1),
                                 4)
        left_idle = SpriteSheet(scene.load_image(f"{tag}_idle_right"), (4, 1),
                                4)
        left_idle.reverse(1, 0)
        self.sprite = Sprite(8)
        self.sprite.add_animation({
            "down": down,
            "up": up,
            "down_idle": down_idle,
            "up_idle": up_idle,
            "right": right,
            "left": left,
            "right_idle": right_idle,
            "left_idle": left_idle
        })
        self.sprite.start_animation("down_idle")
        self.idles = {
            c.DOWN: "down_idle",
            c.UP: "up_idle",
            c.RIGHT: "right_idle",
            c.LEFT: "left_idle"
        }
        self.idle_playing = True

        self.x = pos[0]
        self.y = pos[1]
        self.scene.map.add_to_cell(self, self.x, self.y)
        self.draw_x = self.x
        self.draw_y = self.y
        self.prev_x = self.x
        self.prev_y = self.y
        self.shadow = CharacterShadow(scene, self)
        self.scene.map.add_to_cell(self.shadow, self.x, self.y)

        self.since_move = 0
        self.move_speed = 3

        self.in_motion = False
        self.next_direction = c.NO_DIRECTION
        self.face_direction = c.DOWN
        self.last_face_direction = c.DOWN
        self.since_arrive = 999

        self.shadow_surf = pygame.Surface(c.TILE_SIZE)
        self.shadow_surf.fill(c.WHITE)
        width = int(c.TILE_WIDTH * 0.7)
        height = int(c.TILE_HEIGHT * 0.5)
        pygame.draw.ellipse(
            self.shadow_surf, c.BLACK,
            (c.TILE_WIDTH // 2 - width // 2,
             3.2 * c.TILE_HEIGHT // 5 - height // 2, width, height))
        self.shadow_surf.set_alpha(30)
        self.shadow_surf.set_colorkey(c.WHITE)
示例#7
0
import pygame
import constants as c
from bullet import Bullet
from sprite_tools import SpriteSheet, Sprite
import math
from particle import Shell

player_running = SpriteSheet("images/player.png", (1, 1), 1, scale=2)
player_dead = SpriteSheet("images/player_dead.png", (1, 1), 1, scale=2)
player_hit = SpriteSheet("images/player_hit.png", (1, 1), 1, scale=2)


class Player:
    def __init__(self, game):
        self.game = game

        self.width = 64
        self.height = 64

        self.x = c.WINDOW_WIDTH / 3
        self.y = c.WINDOW_HEIGHT // 2 + self.game.corridor.width // 2 - self.height // 2

        self.y_velocity = 0
        self.x_velocity = 0

        self.extra_jumps = 1

        self.bullets = set()
        self.bullet_cooldown = 0
        self.bullet_period = 0.10
示例#8
0
import pygame
import constants as c
import random
import math
from sprite_tools import SpriteSheet, Sprite
from pickup import Cash
from particle import DasherSmoke, DasherSmokeRed


crawler_running = SpriteSheet("images/crawler.png", (4, 1), 4, scale=2)
crawler_running_ceiling = SpriteSheet("images/crawler.png", (4, 1), 4, scale=2)
crawler_running_ceiling.reverse(0, 1)
crawler_jump = SpriteSheet("images/crawler_jump.png", (1, 1), 1, scale=2)
crawler_hurt = SpriteSheet("images/crawler_hurt.png", (1, 1), 1, scale=2)
crawler_hurt_ceiling = SpriteSheet("images/crawler_hurt.png", (1, 1), 1, scale=2)
crawler_hurt_ceiling.reverse(0, 1)
crawler_dead = SpriteSheet("images/crawler_dead.png", (1, 1), 1, scale=2)

dasher_hovering = SpriteSheet("images/dasher.png", (1, 1), 1, scale=2)
dasher_dashing = SpriteSheet("images/dasher_dashing.png", (1, 1), 1, scale=2)
dasher_damage = SpriteSheet("images/dasher_damage.png", (1, 1), 1, scale=2)
dasher_dashing_damage = SpriteSheet("images/dasher_dashing_damage.png", (1, 1), 1, scale=2)

blocker = SpriteSheet("images/blocker.png", (4, 1), 4, scale=2)
blocker_hurt = SpriteSheet("images/blocker_hurt.png", (1, 1), 1, scale=2)
blocker_dead = SpriteSheet("images/blocker_dead.png", (1, 1), 1, scale=2)


class Enemy:
    def __init__(self, game, x, y, radius=60):
        self.game = game