Phaser 2.6 - QuadTree

कक्षा: Phaser.QuadTree




phaser

निर्माता

नया क्वाड्री (एक्स, वाई, चौड़ाई, ऊंचाई, maxObjects , maxLevels , स्तर )

एक QuadTree कार्यान्वयन। मूल कोड गेमडेवट्स पर पोस्ट किए गए जावा कोड का रूपांतरण था।
हालांकि मैंने इसे नोड इंडेक्सिंग जोड़ने के लिए बड़े पैमाने पर tweaked किया है, बहुत सारे temp हटा दिया। परिणामस्वरूप विभिन्न निर्माण और उल्लेखनीय रूप से प्रदर्शन में वृद्धि हुई।
Https://github.com/timohausmann/quadtree-js/ पर मूल संस्करण

पैरामीटर
नाम प्रकार तर्क चूक विवरण
x संख्या

क्वाड्री के शीर्ष बाएं समन्वय।

y संख्या

क्वाड्री के शीर्ष बाएं समन्वय।

width संख्या

पिक्सेल में क्वाड्री की चौड़ाई।

height संख्या

पिक्सेल में क्वाड्री की ऊंचाई।

maxObjects संख्या <वैकल्पिक>
10

प्रति नोड वस्तुओं की अधिकतम संख्या।

maxLevels संख्या <वैकल्पिक>
4

पुनरावृत्त करने के लिए स्तर की अधिकतम संख्या।

level संख्या <वैकल्पिक>
0

यह किस स्तर पर है?

स्रोत कोड: math/QuadTree.js ( रेखा 23 )

सार्वजनिक गुण

सीमाएं : वस्तु

ऑब्जेक्ट जिसमें क्वाड्री सीमाएं होती हैं।

स्रोत कोड: math/QuadTree.js ( रेखा 45 )

स्तर : संख्या

वर्तमान स्तर

स्रोत कोड: math/QuadTree.js ( रेखा 40 )

maxLevels : संख्या

नीचे तोड़ने के लिए स्तर की अधिकतम संख्या।

डिफ़ॉल्ट मान
  • 4
स्रोत कोड: math/QuadTree.js ( रेखा 35 )

maxObjects : संख्या

प्रति नोड वस्तुओं की अधिकतम संख्या।

डिफ़ॉल्ट मान
  • 10
स्रोत कोड: math/QuadTree.js ( रेखा 2 9 )

नोड्स : सरणी

संबंधित बाल नोड्स का ऐरे।

स्रोत कोड: math/QuadTree.js ( रेखा 55 )

वस्तुओं : सरणी

Quadtree बच्चों के ऐरे।

स्रोत कोड: math/QuadTree.js ( रेखा 50 )

सार्वजनिक तरीके

स्पष्ट ()

क्वाड्री साफ़ करें।

स्रोत कोड: math/QuadTree.js ( रेखा 2 9 5 )

getIndex (rect) → {number}

यह निर्धारित करें कि ऑब्जेक्ट किस नोड से संबंधित है।

पैरामीटर
नाम प्रकार विवरण
rect Phaser.Rectangle | वस्तु

जांच करने के लिए सीमाएं।

रिटर्न
संख्या -

इंडेक्स - सबनोड (0-3), या -1 का सूचकांक यदि रीक्ट पूरी तरह से उपनोड में फिट नहीं हो सकता है और पैरेंट नोड का हिस्सा है।

स्रोत कोड: math/QuadTree.js ( रेखा 203 )

सम्मिलित करें (शरीर)

ऑब्जेक्ट को नोड में डालें। यदि नोड क्षमता से अधिक है, तो यह विभाजित होगा और सभी ऑब्जेक्ट्स को उनके संबंधित उपनोड में जोड़ देगा।

पैरामीटर
नाम प्रकार विवरण
body Phaser.Physics.Arcade.Body | वस्तु

क्वाड्री में डालने के लिए बॉडी ऑब्जेक्ट। जब तक यह x, y, दाएं और नीचे गुणों का खुलासा करता है तब तक कोई ऑब्जेक्ट हो सकता है।

स्रोत कोड: math/QuadTree.js ( रेखा 151 )

जनसंख्या (समूह)

दिए गए समूह के बच्चों के साथ इस क्वाड्री को पॉप्युलेट करता है। जोड़े जाने के लिए बच्चे को अस्तित्व में होना चाहिए और शरीर की संपत्ति होनी चाहिए।

पैरामीटर
नाम प्रकार विवरण
group Phaser.Group

क्वाड्री में जोड़ने के लिए समूह।

स्रोत कोड: math/QuadTree.js ( रेखा 103 )

populateHandler (sprite)

जनसंख्या विधि के लिए हैंडलर।

पैरामीटर
नाम प्रकार विवरण
sprite Phaser.Sprite | वस्तु

जांच करने के लिए स्प्राइट।

स्रोत कोड: math/QuadTree.js ( रेखा 115 )

रीसेट (एक्स, वाई, चौड़ाई, ऊंचाई, maxObjects , maxLevels , स्तर )

QuadTree रीसेट करता है।

पैरामीटर
नाम प्रकार तर्क चूक विवरण
x संख्या

क्वाड्री के शीर्ष बाएं समन्वय।

y संख्या

क्वाड्री के शीर्ष बाएं समन्वय।

width संख्या

पिक्सेल में क्वाड्री की चौड़ाई।

height संख्या

पिक्सेल में क्वाड्री की ऊंचाई।

maxObjects संख्या <वैकल्पिक>
10

प्रति नोड वस्तुओं की अधिकतम संख्या।

maxLevels संख्या <वैकल्पिक>
4

पुनरावृत्त करने के लिए स्तर की अधिकतम संख्या।

level संख्या <वैकल्पिक>
0

यह किस स्तर पर है?

स्रोत कोड: math/QuadTree.js ( रेखा 69 )

पुनर्प्राप्त करें (स्रोत) → {सरणी}

दिए गए स्प्राइट या आयत के साथ टकराने वाली सभी वस्तुओं को वापस कर दें।

पैरामीटर
नाम प्रकार विवरण
source Phaser.Sprite | Phaser.Rectangle

QuadTree के खिलाफ जांच करने के लिए स्रोत ऑब्जेक्ट। या तो एक स्प्राइट या आयताकार।

रिटर्न
सरणी -
  • सभी ज्ञात वस्तुओं के साथ ऐरे।
स्रोत कोड: math/QuadTree.js ( रेखा 247 )

विभाजित ()

नोड को 4 उपनोड में विभाजित करें

स्रोत कोड: math/QuadTree.js ( रेखा 130 )