2012-04-27 7 views
1

내 게임은 플랫폼 게임입니다. 왼쪽에서 오른쪽으로 움직여서 X 픽셀 떨어져있을 때 플레이어가 움직이기를 원합니다.어떻게 파이 게임에서 움직임과 같은 카메라를 만들까요?

저는 파이 게임에 카메라가 움직일만한 물건이 없다고 생각합니다.

플레이어가 중심에서 X 픽셀 떨어져있는 지점에 도달했을 때 나는 추측합니다. 플레이어의 움직임을 멈추고 지형을 반대 방향으로 움직이면 움직이는 지형의 환상을 표시 할 수 있으며 카메라 동작처럼 작동합니다.

아직 코드가 없지만이 문제에 대한 접근 방법을 잘 모르겠습니다. 이 방법을 시작하는 방법에 대한 몇 가지 아이디어 만 있으면 감사하겠습니다.

+1

카메라가 플레이어 중앙에 오도록하거나, 플레이어가 가장자리에 올랐을 때 플레이어가 누르는 플레이어 주위의 상자를 가운데에 배치하고 싶습니까? – Darthfett

답변

0

카메라를 카메라 중앙에 배치하는 가장 기본적인 방법은 플레이어를 항상 카메라 중앙에 배치하기 위해 그리는 모든 것을 오프셋하는 것입니다. 내 자신의 게임에서, 내가 좌표를 변환하는 기능을 사용

def to_pygame_coords(coords): 
    # move the coordinates so that 0, 0 is the player's position 
    # then move the origin to the center of the window 
    return coords - player.position.center + window.position.center 

이에 확장하려면이 절대적으로 플레이어에 위치 아니에요 그래서 대신 상자에 창을 중심으로 할 수 있습니다. 그런 다음 플레이어가 상자를 떠날 경우 상자가 그와 함께 움직일 수 있도록 (따라서 카메라를 움직이는) 상자 중심을 업데이트합니다. (안 부정적인 좌표 테스트)

의사 코드 :

BOX_WIDTH = 320 
BOX_HEIGHT = 240 
box_origin = player.position.center 
def update_box(player_coords): 
    if player_coords.x - box_origin.x > BOX_WIDTH: 
     box_origin.x = player_coords.x - BOX_WIDTH 
    elif box_origin.x - player_coords.x > BOX_WIDTH: 
     box_origin.x = player_coords.x + BOX_WIDTH 
    if player_coords.y - box_origin.y > BOX_HEIGHT: 
     box_origin.y = player_coords.y - BOX_HEIGHT 
    elif box_origin.y - player_coords.y > BOX_HEIGHT: 
     box_origin.y = player_coords.y + BOX_HEIGHT 

def to_pygame_coords(coords): 
    # move the coordinates so that 0, 0 is the box's position 
    # then move the origin to the center of the window 
    return coords - box_origin + window.position.center 
0

당신은 그냥 xscroll이라는 것을 만들 수는 화면을 가로 질러 이동하도록되어 모든 추가됩니다. 그런 다음, 센터에서 특정 거리에 도달하면 플레이어가 자신의 위치로 이동 속도를 추가하는 대신 xscroll에서 이동 속도를 더하거나 뺍니다. 이것은 캐릭터가 움직이는 것과 동일한 속도로 모든 것을 매우 부드럽게 되돌려줍니다. 나는이 모든 것을 내 게임에서 사용하는데 나는 그것에 문제가 없었습니다.

관련 문제