Beispiel #1
0
def spreader_cannon(entity_id, state):
    offset = state.offset
    player_only = state.player_only
    pos_x, pos_y, angle = spatial.get_position_and_angle(entity_id)
    bullet.create((pos_x, pos_y), angle, BULLET_SPEED, BULLET_IMAGE, entity_id, player_only=player_only)
    bullet.create((pos_x, pos_y), angle - offset, BULLET_SPEED, BULLET_IMAGE, entity_id, player_only=player_only)
    bullet.create((pos_x, pos_y), angle + offset, BULLET_SPEED, BULLET_IMAGE, entity_id, player_only=player_only)
Beispiel #2
0
def update(dt):
    # Swap finished queue buffer
    global _finished_image_queue, finished
    _finished_image_queue, finished = set(), _finished_image_queue

    for entity_id, state in renderables.iteritems():
        x, y, angle = spatial.get_position_and_angle(entity_id)
        offset = state.offset.rotated(-angle)
        x -= offset.x
        y -= offset.y
        sprite = state.sprite
        sprite.x = x
        sprite.y = y
        sprite.rotation = angle
Beispiel #3
0
def update(dt):
    for entity_id, state in launchers.iteritems():
        hot = state.hot
        if hot:
            hot -= min(hot, dt)
        elif trigger.is_down(entity_id):
            hot = state.cooldown
            offset = state.offset
            player_only = state.player_only
            pos_x, pos_y, angle = spatial.get_position_and_angle(entity_id)
            bullet.create_missile((pos_x + offset, pos_y), angle, SPEED, IMAGE,
                                  entity_id, player_only=player_only)
            state.offset = -offset
        state.hot = hot
        state.trigger = False