मैं एक टीबीएस गेम पर काम कर रहा हूं जो हेक्सागोनल ग्रिड का उपयोग करता है। एक आइसोमेट्रिक षट्भुज टाइलिंग इंजन में स्क्रीन-टू-मैप निर्देशांक को बदलना?
हालांकि, इस लक्ष्य को हासिल करने के लिए मैं मूल्यों के साथ बेला के लिए किया था (टाइल का आकार: हालांकि, मैं यह सममितीय होने के लिए (अच्छा लग रहा है और पिक्सेल आर्टि) चाहते थे, और खपरैल इंजन में अच्छी तरह से काम करता है, यह परिणाम है , टाइलिंग एल्गोरिदम) टाइल्स को सही ढंग से फिट करने के लिए। यहां एक उदाहरण टाइल है:
टाइल का आकार 62x32 है, और जब टाइल किया जाता है, तो प्रत्येक टाइल को एक्स पर 47 (सीडब्ल्यू) और 16 (सी) सही ढंग से फिट करने के लिए स्थानांतरित किया जाता है।
यह कैसे मैं स्क्रीन cordinates नक्शे से (टाइल ड्राइंग के लिए) की गणना निर्देशांक है:
function toScreen(x, y, z, offset)
{
offset = ifndef(offset, {x: 0, y: 0});
var ret = new Vector2D(y*Tile.cw + x*Tile.cw -offset.x, -x*Tile.ch + y*Tile.ch -offset.y -z*16);
ret.y += (Tile.height*this.h)/2; //center the map on screen
return ret;
}
अब, मैं टाइल का चयन करें, और नक्शा स्क्रीन से निर्देशांक प्राप्त करने में सक्षम होने की जरूरत है (चूहा) समन्वय करता है। मैं समझ नहीं पा रहा हूं कि किसी भी तरह से निर्देशांक को बदलने के लिए भी संभव है (मेरे सभी प्रयास विफल हुए)।
टाइल्स के चयन, होगा निश्चित रूप से, पिक्सेल सही होना जरूरी है, लेकिन सिर्फ फ्लैट टाइल के लिए (की जरूरत नहीं है:
यह वही नक्शा समन्वय प्रणाली की तरह लग रहा है और कैसे टाइल तैयार कर रहे हैं है उपरोक्त टाइल पर जाने वाले पेड़ों का चयन करने के लिए), इसलिए एल्गोरिदम यह मान सकता है कि सभी टाइल्स फ्लैट हैं (जैसा कि मैंने एक उदाहरण के रूप में दिया है)। क्या किसी को यह कैसे करना है इस पर कोई विचार है? मैं टाइल को [0,0] पर स्क्रीन स्पेस में बदलकर, "पॉइंट-बल" कर सकता था, और देख रहा था कि पॉइंटर इसमें है या कितना दूर है, फिर धीरे-धीरे टाइल-बाय-टाइल चल रहा है जब तक मुझे कोई नहीं मिल जाए टाइल जिसमें माउस निर्देशांक (या कोई टाइल नहीं है) शामिल है, लेकिन यदि कोई मौजूद है, तो मैं एक और अधिक सुरुचिपूर्ण समाधान की तलाश में हूं।
क्या किसी के पास कोई विचार है?
धन्यवाद।
+1। – Goles