Exemplo n.º 1
0
def handle_event():
    global cx, cy
    global mx, my
    global idx
    global targetX, targetY
    global moveFlag
    global direct, state
    event = p.get_events()
    for e in event:
        if e.type == p.SDL_MOUSEBUTTONDOWN:
            currentX = cx
            currentY = cy
            targetX = e.x
            targetY = MONITORY - 1 - e.y
            movelist.clear()
            idx = 0
            if targetX >= cx:
                direct = Direct.e_right
            else:
                direct = Direct.e_left
            state = State.e_running
            for i in range(0, 100 + 1, 2):
                t = i / 100
                movelist.append(((1 - t) * currentX + t * targetX,
                                 (1 - t) * currentY + t * targetY))
            moveFlag = True
        if e.type == p.SDL_MOUSEMOTION:
            mx = e.x
            my = MONITORY - 1 - e.y
Exemplo n.º 2
0
def input_handling():
    global running
    events = pico2d.get_events()
    for event in events:
        if event.type == pico2d.SDL_KEYDOWN and event.key == pico2d.SDLK_ESCAPE:
            running = False
    pass
Exemplo n.º 3
0
def input_handling():
    global running
    global player_source_x
    global player_source_y
    global player_pos_x
    global player_pos_y
    global player_dest_x
    global player_dest_y
    global player_is_running
    global player_running_i
    global heigth
    global mouse_position_x
    global mouse_position_y
    global player_is_view_left

    events = pico2d.get_events()
    for event in events:
        if event.type == pico2d.SDL_MOUSEBUTTONDOWN and event.button == pico2d.SDL_BUTTON_LEFT:
            x, y = event.x, heigth - 1 - event.y
            player_source_x = player_pos_x
            player_source_y = player_pos_y
            player_dest_x = x - 20
            player_dest_y = y + 21
            player_is_running = 0
            player_running_i = 0
            player_is_running = True
            if player_source_x > player_dest_x:
                player_is_view_left = True
            else:
                player_is_view_left = False
        elif event.type == pico2d.SDL_KEYDOWN and event.key == pico2d.SDLK_ESCAPE:
            running = False
        elif event.type == pico2d.SDL_MOUSEMOTION:
            mouse_position_x, mouse_position_y = event.x, heigth - 1 - event.y
    pass
Exemplo n.º 4
0
def handle_events():
    global road, player
    events = pico2d.get_events()
    for e in events:
        if e.type == pico2d.SDL_QUIT:
            game_framework.quit()
        elif e.type == pico2d.SDL_KEYDOWN:
            if e.key == pico2d.SDLK_ESCAPE:
                game_framework.pop_state()
            elif e.key == pico2d.SDLK_LEFT:
                player.car.dir -= 1
            elif e.key == pico2d.SDLK_RIGHT:
                player.car.dir += 1
            elif e.key == pico2d.SDLK_DOWN:
                player.car.accel -= DELAY*10*math.log2(player.car.level + 1)
            elif e.key == pico2d.SDLK_UP:
                player.car.accel += DELAY*10*math.log2(player.car.level + 1)
        elif e.type == pico2d.SDL_KEYUP:
            if e.key == pico2d.SDLK_LEFT:
                player.car.dir += 1
            elif e.key == pico2d.SDLK_RIGHT:
                player.car.dir -= 1
            elif e.key == pico2d.SDLK_UP:
                player.car.accel -= DELAY*10*math.log2(player.car.level + 1)
            elif e.key == pico2d.SDLK_DOWN:
                player.car.accel += DELAY*10*math.log2(player.car.level + 1)
 def handle_event(self):
     events = pico2d.get_events()
     for event in events:
         if event.type in self.call_chain_dict:
             if event.y is not None:
                 event.y = self.framework.h - event.y + 1
             self.call_chain_dict[event.type].execute(event)
         self.default_event_handle(event)
def handle_events():
    events_list = pico2d.get_events()
    for curr_event in events_list:

        if curr_event.type == pico2d.SDL_QUIT:
            GameFrameWork.quit_state()
        elif curr_event.type == pico2d.SDL_KEYDOWN and curr_event.key == pico2d.SDLK_ESCAPE:
            GameFrameWork.quit_state()
    pass
Exemplo n.º 7
0
def handle_events():
    global running, x, y, speed, mouse_x, mouse_y
    events = pico2d.get_events()
    for event in events:
        if event.type == pico2d.SDL_QUIT:
            running = False
        elif event.type == pico2d.SDL_KEYDOWN:
            if event.key == pico2d.SDLK_ESCAPE:
                running = False
        elif event.type == pico2d.SDL_MOUSEMOTION:
            mouse_x, mouse_y = event.x, event.y
Exemplo n.º 8
0
def handle_events():
    global title
    events = pico2d.get_events()
    for e in events:
        if e.type == pico2d.SDL_QUIT:
            game_framework.quit()
        elif e.type == pico2d.SDL_KEYDOWN:
            if e.key == pico2d.SDLK_ESCAPE:
                game_framework.quit()
            if e.key == pico2d.SDLK_SPACE:
                game_framework.push_state(garage_state)
        ui.handle_event(e)
Exemplo n.º 9
0
def handle_events():
    global fade_timer

    events_list = pico2d.get_events()
    for curr_event in events_list:

        if curr_event.type == pico2d.SDL_QUIT:
            GameFrameWork.quit_state()
        elif curr_event.type == pico2d.SDL_KEYDOWN and curr_event.key == pico2d.SDLK_ESCAPE:
            GameFrameWork.quit_state()
        elif curr_event.type == pico2d.SDL_KEYDOWN and curr_event.key == pico2d.SDLK_RETURN:
            if fade_timer == 1.0:
                fade_timer -= GameFrameWork.frame_time
    pass
Exemplo n.º 10
0
def handle_events():
    global running, x, y, speed, mouse_x, mouse_y, waypoints
    events = pico2d.get_events()
    for event in events:
        if event.type == pico2d.SDL_QUIT:
            running = False
        elif event.type == pico2d.SDL_KEYDOWN:
            if event.key == pico2d.SDLK_ESCAPE:
                running = False
        elif event.type == pico2d.SDL_MOUSEMOTION:
            mouse_x, mouse_y = event.x, event.y
        elif event.type == pico2d.SDL_MOUSEBUTTONDOWN:
            if event.button == pico2d.SDL_BUTTON_LEFT:
                waypoints.append(Pointer(mouse_x, mouse_y))
            else:
                waypoints.clear()
Exemplo n.º 11
0
def handle_events():
    global road, player, mx, my
    events = pico2d.get_events()
    for e in events:
        if e.type == pico2d.SDL_QUIT:
            garage_state.save_data()
            game_framework.quit()
        elif e.type == pico2d.SDL_KEYDOWN and not player.gameover:
            if e.key == pico2d.SDLK_ESCAPE:
                garage_state.save_data()
                game_framework.change_state(garage_state)
            if e.key == pico2d.SDLK_a:
                player.car.dir -= 1
            elif e.key == pico2d.SDLK_d:
                player.car.dir += 1
            elif e.key == pico2d.SDLK_s:
                player.car.accel -= DELAY * 10 * math.log2(player.car.level +
                                                           2)
#                player.car.y_speed = -player.car.max_speed
            elif e.key == pico2d.SDLK_w:
                player.car.accel += DELAY * 10 * math.log2(player.car.level +
                                                           2)
#                player.car.y_speed = player.car.max_speed
        elif e.type == pico2d.SDL_KEYUP and not player.gameover:
            if e.key == pico2d.SDLK_a:
                player.car.dir += 1
            elif e.key == pico2d.SDLK_d:
                player.car.dir -= 1
            elif e.key == pico2d.SDLK_w:
                player.car.accel -= DELAY * 10 * math.log2(player.car.level +
                                                           2)
#                player.car.y_speed = 0
            elif e.key == pico2d.SDLK_s:
                player.car.accel += DELAY * 10 * math.log2(player.car.level +
                                                           2)


#                player.car.y_speed = 0
        elif e.type == pico2d.SDL_MOUSEMOTION:
            mx, my = e.x, ch - e.y
        elif e.type == pico2d.SDL_MOUSEBUTTONDOWN:
            if e.button == pico2d.SDL_BUTTON_LEFT and not player.gameover:
                player.shoot = True
        elif e.type == pico2d.SDL_MOUSEBUTTONUP:
            if e.button == pico2d.SDL_BUTTON_LEFT and not player.gameover:
                player.shoot = False
Exemplo n.º 12
0
def handle_events():
    global scene
    events = p2.get_events()
    for event in events:
        if event.type == p2.SDL_KEYDOWN:
            if event.key == p2.SDLK_ESCAPE:
                scene = -1
            if event.key == p2.SDLK_LEFT:
                if scene > 0:
                    scene -= 1
            if event.key == p2.SDLK_RIGHT:
                if scene < 2:
                    scene += 1
            if event.key == p2.SDLK_SPACE:
                if scene == 0:
                    game_framework.change_state(EasyGame)
                if scene == 1:
                    game_framework.change_state(MidGame)
                if scene == 2:
                    game_framework.change_state(HardGame)
Exemplo n.º 13
0
def handle_events():
    global direct
    global state
    events = p.get_events()
    for event in events:
        if event.key == p.SDLK_RIGHT:
            myInput[0] ^= True
            direct = Direct.e_right
        if event.key == p.SDLK_LEFT:
            myInput[1] ^= True
            direct = Direct.e_left
        if event.key == p.SDLK_DOWN:
            myInput[2] ^= True
        if event.key == p.SDLK_UP:
            myInput[3] ^= True

        if event.key == p.SDLK_LEFT or event.key == p.SDLK_RIGHT or event.key == p.SDLK_UP or event.key == p.SDLK_DOWN:
            if event.type == p.SDL_KEYDOWN:
                state = State.e_running
            else:
                state = State.e_idle
Exemplo n.º 14
0
def handle_events():
    global running, boy
    events = pico2d.get_events()
    for event in events:
        if event.type == pico2d.SDL_QUIT:
            running = False
        elif event.type == pico2d.SDL_KEYDOWN:
            if event.key == pico2d.SDLK_ESCAPE:
                running = False
            elif event.key == pico2d.SDLK_RIGHT:
                boy.velocity += 1
                boy.change_state(RUN)
            elif event.key == pico2d.SDLK_LEFT:
                boy.velocity -= 1
                boy.change_state(RUN)
        elif event.type == pico2d.SDL_KEYUP:
            if event.key == pico2d.SDLK_RIGHT:
                boy.velocity -= 1
                boy.change_state(IDLE)
            elif event.key == pico2d.SDLK_LEFT:
                boy.velocity += 1
                boy.change_state(IDLE)
Exemplo n.º 15
0
def handle_events():
    global running
    global canvas_camera
    global block_list
    global wall_list
    global check_simultaneous_key_buffer_dic
    global select_block_value
    global select_wall_value
    global curr_selected_object
    events = pico2d.get_events()

    # simultaneous = 동시에 일어나는

    for event in events:
        if event.type == pico2d.SDL_QUIT:
            running = False
        elif event.type == pico2d.SDL_KEYDOWN:
            if event.key == pico2d.SDLK_ESCAPE:
                running = False
                # 카메라 움직임
            elif event.key == pico2d.SDLK_w:
                canvas_camera.move('w')

            elif event.key == pico2d.SDLK_a:
                canvas_camera.move('a')

            elif event.key == pico2d.SDLK_s:
                canvas_camera.move('s')
                check_simultaneous_key_buffer_dic['key_s'] = True

            elif event.key == pico2d.SDLK_d:
                canvas_camera.move('d')

            elif event.key == pico2d.SDLK_LCTRL:
                check_simultaneous_key_buffer_dic['ctrl'] = True
                continue

            # 블럭 선택
            elif event.key == pico2d.SDLK_1:
                select_block_value = Block_Type.BLOCK_BASIC_STRONG_COLOR_1
                curr_selected_object = 'Block'
            elif event.key == pico2d.SDLK_2:
                select_block_value = Block_Type.BLOCK_BASIC_WEAK_COLOR_1
                curr_selected_object = 'Block'
            elif event.key == pico2d.SDLK_3:
                select_wall_value = Wall_Type.WALL_BASIC_1
                curr_selected_object = 'Wall'
            elif event.key == pico2d.SDLK_4:
                select_wall_value = Wall_Type.WALL_BASIC_2
                curr_selected_object = 'Wall'
            elif event.key == pico2d.SDLK_5:
                select_wall_value = Wall_Type.WALL_VINE
                curr_selected_object = 'Wall'
            elif event.key == pico2d.SDLK_6:
                select_wall_value = Wall_Type.WALL_STONE
                curr_selected_object = 'Wall'
            elif event.key == pico2d.SDLK_7:
                select_wall_value = Wall_Type.WALL_STONE_DAMAGED
                curr_selected_object = 'Wall'
            elif event.key == pico2d.SDLK_8:
                select_wall_value = Wall_Type.WALL_SKULL_1
                curr_selected_object = 'Wall'
            elif event.key == pico2d.SDLK_9:
                select_wall_value = Wall_Type.WALL_SKULL_2
                curr_selected_object = 'Wall'
            elif event.key == pico2d.SDLK_0:
                select_wall_value = Wall_Type.WALL_SKULL_3
                curr_selected_object = 'Wall'

            # 몬스터 선택
            elif event.key == pico2d.SDLK_y:
                select_wall_value = Monster_Type.MONSTER_SLIME_GREEN
                curr_selected_object = 'Monster'
            elif event.key == pico2d.SDLK_u:
                select_wall_value = Monster_Type.MONSTER_SLIME_BLUE
                curr_selected_object = 'Monster'
            elif event.key == pico2d.SDLK_i:
                select_wall_value = Monster_Type.MONSTER_SKULL_WHITE
                curr_selected_object = 'Monster'
            elif event.key == pico2d.SDLK_o:
                select_wall_value = Monster_Type.MONSTER_BAT_BASIC
                curr_selected_object = 'Monster'
            elif event.key == pico2d.SDLK_p:
                select_wall_value = Monster_Type.MONSTER_BANSHEE
                curr_selected_object = 'Monster'

            elif event.key == pico2d.SDLK_DELETE:
                curr_selected_object = 'Delete_Object'
            elif event.key == pico2d.SDLK_r:
                block_list.clear()
                wall_list.clear()
                map_data_load_file = open("map_data_load.txt", 'r')
                read_database = map_data_load_file.read()
                split_data = read_database.split()
                for curr_reading_data_idx, curr_reading_data_val in enumerate(
                        split_data):
                    if split_data[curr_reading_data_idx] == 'Block':
                        str_to_enum_val = str(
                            split_data[curr_reading_data_idx + 1])
                        str_to_enum_val = str_to_enum_val.replace(
                            'Block_Type.', "")
                        block_list.append(
                            Block(Block_Type[str_to_enum_val],
                                  int(split_data[curr_reading_data_idx + 2]),
                                  int(split_data[curr_reading_data_idx + 3])))
                        pass
                    elif split_data[curr_reading_data_idx] == 'Wall':

                        str_to_enum_val = str(
                            split_data[curr_reading_data_idx + 1])
                        str_to_enum_val = str_to_enum_val.replace(
                            'Wall_Type.', "")
                        wall_list.append(
                            Wall(Wall_Type[str_to_enum_val],
                                 int(split_data[curr_reading_data_idx + 2]),
                                 int(split_data[curr_reading_data_idx + 3])))
                        pass
                    curr_reading_data_idx += 3
                map_data_load_file.close()
                pass

        elif event.type == pico2d.SDL_KEYUP:
            if event.key == pico2d.SDLK_s:
                check_simultaneous_key_buffer_dic['key_s'] = False
                continue
            elif event.key == pico2d.SDLK_LCTRL:
                check_simultaneous_key_buffer_dic['ctrl'] = False
                continue

        # 마우스로 블럭 생성하기 위한 마우스 위치 조정
        elif event.type == pico2d.SDL_MOUSEBUTTONDOWN:
            mouse_x, mouse_y = event.x, CANVAS_HEIGHT - 1 - event.y

            click_area = Rectangle(mouse_x - mouse_x % 50,
                                   mouse_y - mouse_y % 50,
                                   mouse_x - mouse_x % 50 + 50,
                                   mouse_y - mouse_y % 50 + 50)

            if abs(mouse_x - click_area.left) <= abs(mouse_x -
                                                     click_area.right):
                mouse_x = click_area.left
            else:
                mouse_x = click_area.right

            if abs(mouse_y - click_area.bottom) <= abs(mouse_y -
                                                       click_area.top):
                mouse_y = click_area.bottom
            else:
                mouse_y = click_area.top

            mouse_point = Point(mouse_x + canvas_camera.camera_rect.left,
                                mouse_y + canvas_camera.camera_rect.bottom)
            # duplication = 중복 / 중복 체크
            check_duplication = False
            for duplication in block_list:
                if duplication.pivot.x == mouse_point.x and duplication.pivot.y == mouse_point.y:
                    check_duplication = True
                    if curr_selected_object == 'Delete_Object':
                        del block_list[block_list.index(duplication)]
                    break
            for duplication in wall_list:
                if duplication.pivot.x == mouse_point.x and duplication.pivot.y == mouse_point.y:
                    check_duplication = True
                    if curr_selected_object == 'Delete_Object':
                        del wall_list[wall_list.index(duplication)]
                    break
            # 중복되지 않았다면 블럭 생성
            if check_duplication is False:
                if curr_selected_object == 'Block':
                    block_list.append(
                        Block(select_block_value, mouse_point.x,
                              mouse_point.y))
                elif curr_selected_object == 'Wall':
                    wall_list.append(
                        Wall(select_wall_value, mouse_point.x, mouse_point.y))
            pass
    pass
Exemplo n.º 16
0
def handle_events(frame_time):
    events = pico2d.get_events()
Exemplo n.º 17
0
def handle_events():
    events = pico2d.get_events()
    for e in events:
        if e.type == pico2d.SDL_QUIT:
            game_framework.quit()
        ui.handle_event(e)
Exemplo n.º 18
0
import pico2d as Pico

Pico.open_canvas()

Grass = Pico.load_image('../res/grass.png')
Character = Pico.load_image('../res/run_animation.png')

x = 0
FrameIndex = 0

while x < 800 :
    Pico.clear_canvas()
    Grass.draw(400,30)
    Character.clip_draw(100 * FrameIndex, 0, 100, 100, x, 85)
    Pico.update_canvas()

    Pico.get_events()

    x += 4

    #FrameIndex += 1
    #if FrameIndex >= 8 :
    #    FrameIndex = 0

    FrameIndex = (FrameIndex + 1) % 8

    Pico.delay(0.05)


Pico.close_canvas()