Exemplo n.º 1
0
from pygame import Rect

from core            import color
from core            import config
from core            import settings
from game.gameobject import GameObject

### Constants ##################################################################
BALL_STATES  = ('IDLE', 'APPEARING', 'MOVING', 'DYING', 'RESET')
FRAMES       = tuple(Rect(32 * i, 96, 32, 32) for i in range(5))
TIME_TO_MOVE = 30  #In frames; remember, our target is 60FPS
################################################################################

### Globals ####################################################################
_ball_frames             = color.get_colored_objects(FRAMES)
_ball_frames_color_blind = color.get_colored_objects(FRAMES, True, True, True)
_balls                   = set()
################################################################################

### Functions ##################################################################
def clean_up():
    '''
    Removes all BallOfLights from memory.
    '''
    _balls.clear()

def get_ball(startpos, target, newcolor):
    '''
    Returns a spare BallOfLight, or creates one if there are none.
Exemplo n.º 2
0
from pygame import Rect

from core            import color
from core            import config
from core            import settings
from core.particles  import ParticleEmitter
from game            import balloflight
from game.gameobject import GameObject

### Constants ##################################################################
ENEMY_STATES    = ('IDLE', 'APPEARING', 'LOWERING', 'ACTIVE', 'DYING', 'CHEERING')
FRAMES          = tuple(Rect(32 * i, 32, 32, 32) for i in range(4))
LOWER_INCREMENT = 16
START_POS       = (32.0, 32.0)

ENEMY_FRAMES             = color.get_colored_objects(FRAMES, True, False, True)
ENEMY_FRAMES_COLOR_BLIND = color.get_colored_objects(FRAMES, True, True , True)
del FRAMES
################################################################################

### Globals ####################################################################
_hurt = config.load_sound('enemyhit.wav')
################################################################################

class Enemy(GameObject):
    STATES       = config.Enum(*ENEMY_STATES)
    anim         = 0.0
    base_speed   = 0.5
    GROUP        = None
    shoot_odds   = 0.002
    should_flip  = False
Exemplo n.º 3
0
from pygame import Rect

from core import color
from core import config
from core import settings
from core.particles import ParticleEmitter
from game import balloflight
from game.gameobject import GameObject

### Constants ##################################################################
ENEMY_STATES = ('IDLE', 'APPEARING', 'LOWERING', 'ACTIVE', 'DYING', 'CHEERING')
FRAMES = tuple(Rect(32 * i, 32, 32, 32) for i in range(4))
LOWER_INCREMENT = 16
START_POS = (32.0, 32.0)

ENEMY_FRAMES = color.get_colored_objects(FRAMES, True, False, True)
ENEMY_FRAMES_COLOR_BLIND = color.get_colored_objects(FRAMES, True, True, True)
del FRAMES
################################################################################

### Globals ####################################################################
_hurt = config.load_sound('enemyhit.wav')
################################################################################


class Enemy(GameObject):
    STATES = config.Enum(*ENEMY_STATES)
    anim = 0.0
    base_speed = 0.5
    GROUP = None
    shoot_odds = 0.002
Exemplo n.º 4
0
from core import color
from core import config
from core.particles import ParticleEmitter
from game.block import get_block
from game.gameobject import GameObject
from game import gamedata

### Constants ##################################################################
AVG_WAIT = 9000  #Expected time in frames between UFO appearance
DEATH = config.load_sound('ufo_explosion.wav')
FRAMES = tuple(
    Rect(64 * (i % 4), 192 + 32 * (i // 4), 64, 32) for i in range(10, -1, -1))
INVADE = config.load_sound('ufo.wav')
START_POS = (640, 16)
UFO_FRAMES = color.get_colored_objects(FRAMES)
UFO_STATES = ('IDLE', 'APPEARING', 'ACTIVE', 'DYING', 'LEAVING', 'LOWERING',
              'GAMEOVER')
################################################################################


class UFO(GameObject):
    STATES = config.Enum(*UFO_STATES)
    GROUP = None
    BLOCK_GROUP = None

    def __init__(self):
        super().__init__()
        self._anim = 0.0
        self.column = None
        self.current_frame_list = UFO_FRAMES
Exemplo n.º 5
0
from pygame import Rect

from core import color
from core import config
from core import settings
from game.gameobject import GameObject

### Constants ##################################################################
BALL_STATES = ('IDLE', 'APPEARING', 'MOVING', 'DYING', 'RESET')
FRAMES = tuple(Rect(32 * i, 96, 32, 32) for i in range(5))
TIME_TO_MOVE = 30  #In frames; remember, our target is 60FPS
################################################################################

### Globals ####################################################################
_ball_frames = color.get_colored_objects(FRAMES)
_ball_frames_color_blind = color.get_colored_objects(FRAMES, True, True, True)
_balls = set()

################################################################################


### Functions ##################################################################
def clean_up():
    '''
    Removes all BallOfLights from memory.
    '''
    _balls.clear()


def get_ball(startpos, target, newcolor):
Exemplo n.º 6
0
from game            import blockgrid
from game import gamedata

### Constants ##################################################################
BLOCK_STATES = ('IDLE', 'APPEARING', 'ACTIVE', 'START_FALLING', 'FALLING', 'IMPACT', 'DYING')
FRAMES       = tuple(pygame.Rect(32 * i, 160, 32, 32) for i in range(8))
GRAVITY      =  0.5
MAX_SPEED    = 12.0
UFO_BLOCK    = config.load_sound('ufo_block.wav')

################################################################################

### Globals ####################################################################
_blocks_set = set()
_bump       = config.load_sound('bump.wav')
_block_frames             = color.get_colored_objects(FRAMES, True, False, True)
_block_frames_color_blind = color.get_colored_objects(FRAMES, True, True , True)
################################################################################

### Functions ##################################################################
def clean_up():
    '''
    Removes every Block from memory.
    
    @postcondition: No more Blocks exist, on-screen and off.
    '''
    _blocks_set.clear()
    Block.block_full = False

def get_block(position, newcolor=choice(color.LIST), special=False):
    '''
Exemplo n.º 7
0
from core            import config
from core.particles  import ParticleEmitter
from game.block      import get_block
from game.gameobject import GameObject
from game import gamedata

### Constants ##################################################################
AVG_WAIT   = 9000 #Expected time in frames between UFO appearance
DEATH      = config.load_sound('ufo_explosion.wav')
FRAMES     = tuple(
              Rect(64 * (i % 4), 192 + 32 * (i // 4), 64, 32)
              for i in range(10, -1, -1)
             )
INVADE     = config.load_sound('ufo.wav')
START_POS  = (640, 16)
UFO_FRAMES = color.get_colored_objects(FRAMES)
UFO_STATES = ('IDLE', 'APPEARING', 'ACTIVE', 'DYING', 'LEAVING', 'LOWERING', 'GAMEOVER')
################################################################################

class UFO(GameObject):
    STATES      = config.Enum(*UFO_STATES)
    GROUP       = None
    BLOCK_GROUP = None

    def __init__(self):
        super().__init__()
        self._anim    = 0.0
        self.column   = None
        self.current_frame_list = UFO_FRAMES
        self.image    = config.get_sprite(FRAMES[0])
        self.odds     = expovariate(AVG_WAIT)
Exemplo n.º 8
0
from game import gamedata

### Constants ##################################################################
BLOCK_STATES = ('IDLE', 'APPEARING', 'ACTIVE', 'START_FALLING', 'FALLING',
                'IMPACT', 'DYING')
FRAMES = tuple(pygame.Rect(32 * i, 160, 32, 32) for i in range(8))
GRAVITY = 0.5
MAX_SPEED = 12.0
UFO_BLOCK = config.load_sound('ufo_block.wav')

################################################################################

### Globals ####################################################################
_blocks_set = set()
_bump = config.load_sound('bump.wav')
_block_frames = color.get_colored_objects(FRAMES, True, False, True)
_block_frames_color_blind = color.get_colored_objects(FRAMES, True, True, True)

################################################################################


### Functions ##################################################################
def clean_up():
    '''
    Removes every Block from memory.
    
    @postcondition: No more Blocks exist, on-screen and off.
    '''
    _blocks_set.clear()
    Block.block_full = False