2009-03-05 9 views
5

आईफोन गेम विकास के लिए cocos2d का उपयोग करके, मैं परत और दृश्य के बीच उलझन में हूं। उदाहरण के लिए, मेरे सरल गेम में मुख्य मेनू, हाईस्कॉर्स, गेम बोर्ड इत्यादि जैसे कई "UI पेज" हैं।आईफोन गेम विकास के लिए कोकोस 2 डी में लेयर बनाम दृश्य

तो क्या मुझे प्रत्येक "यूआई पेज" के लिए लेयर या सीन का उपयोग करना चाहिए, और क्यों?

उत्तर

4

की समीक्षा SpritesDemo.m/ज, यह जाहिर होता है कि वे लेयर का उपयोग कर रहे हैं, और फिर नए दृश्यों बनाने, परत संलग्न और फिर निर्देशक

@interface SpriteDemo : Layer 
@interface SpriteManual : SpriteDemo 

कोड तो करता है पर दृश्य की जगह निम्नलिखित:

-(void)nextCallback:(id)sender { 
    Scene *s = [Scene node]; 
    [s add: [nextAction() node]]; 
    [[Director sharedDirector] replaceScene s]; 
} 

तो, संक्षेप में, अपने प्रश्न का उत्तर होगा "दोनों", आप परत का उपयोग अपने वास्तविक "यूआई पृष्ठ" का प्रतिनिधित्व करने के लिए, लेकिन आप एक नया दृश्य करने के लिए लेयर देते हैं और वर्तमान की जगह निर्देशक में दृश्य।

+0

आपको लगभग सीसीएससीन की बजाय सीसीएलयर फ़ंक्शन को ओवरराइड करने की आवश्यकता है। इस तरह आपको सीसीएससीन समारोह को ओवरराइड करने की आवश्यकता नहीं है। – Emadpres

0

आपको वास्तव में एक परत का उपयोग करने की आवश्यकता नहीं है जब तक कि आपको किसी प्रकार का स्पर्श इनपुट न हो (क्योंकि यह कोकोस 2 डी में एकमात्र वर्ग है जो TouchEventsDelegate लागू करता है)। यदि आप लेयर के बिना सीधे अपना कोड डालते हैं तो डेमो ठीक काम करते हैं, इसलिए जहां तक ​​मैं कह सकता हूं कि उन्होंने केवल अन्य कोकोस 2 डी कार्यक्षमता (बच्चों को जोड़ने, सेटिंग की स्थिति इत्यादि) प्रदर्शित करने के लिए ऐसा किया है।

2

यह आसान है:

वे उन उदाहरणों में एक CCLayer और एक + दृश्य विधि है कि एक नया दृश्य बनाता है और उस पर परत देता है। चूंकि एक परत "UI पृष्ठ" नहीं है जैसा आपने नाम दिया है। एक दृश्य एक "यूआई पेज" है।

दोनों (दृश्य और परत) पर आप बच्चों के रूप में और परत जोड़ सकते हैं। तो आप जितनी चाहें उतनी परतों को ढेर कर सकते हैं। यह वास्तव में मल्टीटाउच को सक्षम करने का एक अच्छा तरीका है - अपनी प्रत्येक ऑब्जेक्ट के लिए एक परत बनाकर और उन परतों पर स्पर्श सक्षम करना। नीचे की रेखा, जिस तरह से उन्होंने किया वह सही है, इसलिए आपको परतों के साथ भी काम करना चाहिए और उस दृश्य को मुख्य परत को दृश्य में संलग्न करने के लिए उपयोग करना चाहिए।

उम्मीद है कि इससे मदद मिलती है। मेरी अंग्रेजी के लिए खेद है। मूल नहीं

संबंधित मुद्दे