मैं एक 2 डी शूटर गेम पर काम करता हूं जिसमें स्क्रीन पर कई चलती वस्तुओं (बुलेट इत्यादि) हैं।फ्लेक्स/फ्लैश/एएस 3 में वीएसआईएनसी?
मैं पूरी स्क्रीन को बफर में प्रस्तुत करने के लिए बिटमैपडेटा.copyPixels (...) का उपयोग करता हूं: बिटमैपडाटा। फिर मैं "बफर" से स्क्रीन पर "कॉपी पिक्सल": बिटमैपडाटा। स्प्राइट का कुछ हिस्सा क्षैतिज स्थानांतरित कर दिया गया: फ़्रेमरेट समस्या यह है कि स्प्राइट के अलावा फाड़ रहे हैं 60.
private var bitmap:Bitmap = new Bitmap();
private var buffer:Bitmap = new Bitmap();
private function start():void {
addChild(bitmap);
}
private function onEnterFrame():void {
// render into "buffer"
// copy "buffer" -> "bitmap"
}
है।
ऐसा लगता है कि VSYNC साथ एक पीसी खेल बंद कर दिया।
क्या कोई इस समस्या को हल करता है?
अद्यतन: सवाल प्रदर्शन के बारे में नहीं है, लेकिन के बारे में स्क्रीन फाड़ से छुटकारा पाने के। [!]
अद्यतन: मैं another question बना लिया है और यहां आप दोनों कार्यान्वयन कोशिश कर सकते हैं: फ़्लैश रास्ता या BitmapData + copyPixels() का उपयोग कर
स्क्रीन फायरिंग प्रदर्शन से संबंधित है। अपने फाड़ने को ठीक करने का यही एकमात्र तरीका है। – Kekoa
@ केकोआ मैं सहमत नहीं हो सकता। प्रदर्शन में स्क्रीन फाड़ने के साथ कुछ लेना देना नहीं है, क्योंकि मैं डबल-बफर का उपयोग करता हूं। खराब प्रदर्शन के मामले में मुझे कम एफपीएस मिलेगा लेकिन स्क्रीन फाड़ नहीं होगा। – oshyshko
अन्य सही हैं, यह दृष्टिकोण फ़्लैश प्लेयर के लिए बहुत उपयुक्त नहीं है ... फिर भी, मैं आश्चर्यचकित हूं, यह बिल्कुल काम नहीं करता है ... कुछ प्रश्न: - क्या आपने बिटमैपडेटा को लॉक करने का प्रयास किया है में ड्राइंग? (यदि नहीं, तो यह बहुत मदद कर सकता है!) - क्या आप पारदर्शी बिटमैप्स का उपयोग कर रहे हैं? (सामान्य प्रदर्शन हत्यारा) - क्या आप 'चरण :: अमान्य' का प्रयास करते हैं और प्रतिपादन के बजाय 'Event.RENDER' पर प्रतिपादन करते हैं? greetz back2dos – back2dos