Saat ini saya sedang mencari pengembangan game XNA dengan bahasa C #.
Saya memiliki dua kelas: pengendali permainan utama dan kelas "sprite". Berikut ini adalah beberapa pseudo-code dasar yang saya harap cukup menjelaskan masalah ini.
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
}
}
}
Pada dasarnya: ketika pengguna mengklik suatu tempat di jendela game, koordinat x dan y mouse diambil, dan objek game akan bergerak menuju lokasi itu selama periode waktu tertentu.
Yah ... kodenya berfungsi, tapi jelek, dan objek tidak bergerak langsung ke arah objek (sebaliknya, itu gerakan diagonal, diikuti oleh gerakan sumbu tunggal). Saya menduga ada beberapa fungsi matematika yang bisa saya gunakan, tapi jujur saya tidak tahu harus mulai dari mana. Ada saran?