示例#1
0
def collision_handler(state, collisions_list):
        for entity_name_1, entity_name_2 in collisions_list:
                if entity_name_1 == ENT_MAN:
                        if entity_name_2 == ENT_SHOT:
                                pass
                        elif entity_name_2 == ENT_GHOST:
                                entities.undo_last_move(state, ENT_MAN)
                                if not movers.get_active(state, ENT_GHOST)[0] == "wait":
                                        wait_mover.add(state, ENT_GHOST, 1.0, prepend=True)
                                        incr_health(state, -80)
                                        if get_health(state) <= 0:
                                                do_game_over(state)
                                else:
                                        entities.undo_last_move(state, ENT_GHOST)
                        elif entity_name_2[0:len(ENT_PREFIX_COINS)] == ENT_PREFIX_COINS:
                                incr_score(state, 10)
                                destroy_mover.add(state, entity_name_2, do_replace=True)
                        else:
                                entities.undo_last_move(state, entity_name_1)
                elif entity_name_1 == ENT_SHOT:
                        if entity_name_2[0:len(ENT_PREFIX_COINS)] == ENT_PREFIX_COINS:
                                pass
                        elif entity_name_2 == ENT_GHOST:
                                do_ghost_boom(state, entities.get_pos(state, ENT_GHOST))
                                destroy_mover.add(state, ENT_GHOST, do_replace=True)
                                do_shot_boom(state, entities.get_pos(state, ENT_SHOT))
                                destroy_mover.add(state, ENT_SHOT, do_replace=True)
                        else:
                                do_shot_boom(state, entities.get_pos(state, ENT_SHOT))
                                destroy_mover.add(state, ENT_SHOT, do_replace=True)
示例#2
0
def start_stars_movement(state, mover_name):
    int_screen_width = int(screen.get_width(state))
    int_screen_height = int(screen.get_height(state))
    for x in xrange((int_screen_width / 256) + 1):
        for y in xrange((int_screen_height / 256) + 2):
            entity_name = star_name(x, y)
            jump_mover.add(state, entity_name, ((x * 2), (y * 2), 0))
            linear_mover.add(state, entity_name, (0, -2), 0.25)
    wait_mover.add(state, entity_name, 0, start_stars_movement)
示例#3
0
文件: demo_tiles.py 项目: hanez/yapyg
def start_movement(state, mover_name):
    path = ((5.0, 0), (0, 5.0), (-5.0, 0), (0, -5.0))
    for index in xrange(len(path)):
        set_property_mover.add(state, "man", "set_active_sprite", "idle")
        wait_mover.add(state, "man", 2.0)
        set_property_mover.add(state, "man", "set_active_sprite", "walk")
        rel_vector = ((path[index][0]), (path[index][1]))
        linear_mover.add(state, "man", rel_vector, 1.0, ("auto", 0),
                         None if index != len(path) - 1 else start_movement)