나는 현재 C # 언어로 XNA 게임 개발을 찾고 있습니다.
메인 게임 핸들러와 "스프라이트"클래스라는 두 가지 클래스가 있습니다. 다음은 문제를 적절하게 설명하기위한 기본적인 의사 코드입니다.
Game.cs
class game {
sprite the_sprite;
void update(time) {
var mouse = mouse.state
if(mouse.clicked) { this.the_sprite.moveTo(mouse.x, mouse.y) }
this.the_sprite.update(time)
base.update(time)
}
}
Sprite.cs
class sprite {
vector2 location;
vector2 move_to;
void moveTo(x, y) { this.move_to = new vector2(x, y) }
void update(time) {
if(this.location.x > this.move_to.x /* (or less than) */) {
// adjust location.x
}
if(this.location.y > this.move_to.y /* (or greater than) */) {
// adjust location.y
}
}
}
기본적으로 : 사용자가 게임 창의 어딘가를 클릭하면 마우스의 x 및 y 좌표가 사용되며 게임 개체는 일정 기간 동안 해당 위치를 향해 이동합니다.
글쎄 ... 코드는 작동하지만 추악하고 객체는 객체를 향해 직접 움직이지 않습니다 (대각선 움직임, 단일 축 움직임). 사용할 수있는 몇 가지 수학적 함수가 있다고 생각하지만 솔직히 어디에서 시작할 지에 대한 실마리는 없습니다. 어떤 제안?