मैं वर्तमान में 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 निर्देशांक लिया जाता है, और गेम ऑब्जेक्ट समय के साथ उस स्थान की ओर बढ़ जाएगा।
ठीक है ... कोड काम करता है, लेकिन यह बदसूरत है, और ऑब्जेक्ट सीधे ऑब्जेक्ट की ओर नहीं जाते हैं (इसके बजाय, यह विकर्ण आंदोलन है, इसके बाद एकल-अक्ष आंदोलन होता है)। मैं अनुमान लगा रहा हूं कि कुछ गणितीय कार्य हैं जिनका मैं उपयोग कर सकता हूं, लेकिन मैं ईमानदारी से कोई सुराग नहीं लगाता हूं कि कहां से शुरू किया जाए। कोई सुझाव?