그래서이 매우 의사 코드입니다, 그러나 이것은
먼저 우리는 선수에 대한 모든 정보를 포함 클래스를 만드는 것이 수행하는 방법 기본적인 접근 방법이다. 건강, 점수 등을 추가 할 수 있습니다. 여기에 중요
class Player
{
Texture2D Sprite;
Vector2 Position;
Vector2 Velocity;
static const float PlayerSpeed = 5;
}
는 (위 스프라이트의 왼쪽)이 위치는 속도 우리가 사용하고자하는 우리의 질감과 스프라이트 (변경 매초마다의 양)입니다. 물론 하나의 플레이어 텍스처 만 사용하고 그에 따라 소스 rect를 수정하는 것이 좋습니다.
입력 처리가 완료되었습니다.
void OnKeyboard(GameTime aGameTime, KeyArg aKey)
{
if(aKey == Keys.Left)
{
mPlayer.Velocity = new Vector2(-Player.PlayerSpeed, 0);
mPlayer.Sprite = TextureManager.GetTexture("left_player");
}
else if(aKey == Keys.Right)
{
mPlayer.Velocity = new Vector2(Player.PlayerSpeed, 0);
mPlayer.Sprite = TextureManager.GetTexture("right_player");
}
mPlayer.Position += aGameTime.EllapsedMiliseconds * mPlayer.Velocity;
}
여기서는 어떤 키를 눌렀는지 확인하고 속도를 수정하고 플레이어의 현재 스프라이트를 변경합니다. 최종 라인이 가장 중요한 라인이며, 이는 프레임의 경과 시간으로 수정 된 속도를 사용하여 플레이어 위치를 수정합니다. 그렇게하면 프레임 속도의 불일치에도 불구하고 안정된 움직임을 유지할 수 있습니다.
void Render()
{
Sprite.Draw(mPlayer.Sprite, mPlayer.Position);
}
마지막으로 렌더링, 스프라이트를 렌더링하는 방법은 명확해야합니다. 여기서는 스프라이트와 위치를 사용합니다. 텍스처 스위치를 최소화하고, 알파를 사용하여 스프라이트를 처리하며, 키보드의 가장 중요한 핸들링과 같이 개선 할 여지가 많이 있습니다. 꾸준히 위치를 조정해야하지만 구현 방법에 따라 움직임이 원하는 반복 속도에 달려있을 수 있습니다.