मैं वर्तमान में बेहद परिष्कार और चालाक का एक गेम लिख रहा हूं, जो आपको भय से भर देगा और जीत जाएगा - ओह, ठीक है, यह 15 पहेली है, और मैं बस एसडीएल के साथ खुद को परिचित कर रहा हूं।खिड़की वाले एसडीएल अनुप्रयोग में लंबवत रिट्रेस के साथ पेज-फ्लिप को सिंक कैसे करें?
मैं विंडो मोड में चल रहा हूं, और सामान्य-केस पेज अपडेट के रूप में SDL_Flip का उपयोग कर रहा हूं, क्योंकि यह विंडो मोड में पूर्ण विंडो के स्वचालित रूप से एक SDL_UpdateRect पर मानचित्र करता है। इष्टतम दृष्टिकोण नहीं, लेकिन यह देखते हुए कि यह केवल 15 पहेली है ...
वैसे भी, टाइल चाल लुभावनी गति से हो रही है। IOW, विंडो मोड में SDL_Flip वर्टिकल रीट्रेसेस के साथ कोई सिंक्रनाइज़ेशन शामिल नहीं है। मैं विंडोज एक्सपी एटीएम में काम कर रहा हूं, लेकिन मुझे लगता है कि यह एसडीएल के लिए सही व्यवहार है और अन्य प्लेटफार्मों पर भी होगा।
SDL_UpdateRect का उपयोग करने के लिए स्विचिंग स्पष्ट रूप से कुछ भी नहीं बदलेगी। संभवतः, मुझे अपने कोड में देरी तर्क लागू करने की आवश्यकता है। लेकिन एक साधारण घड़ी-आधारित टाइमर के परिणामस्वरूप अपडेट हो सकता है जब खिड़की आधा खींची जाती है, जिससे दृश्य विकृतियां होती हैं (मैं तकनीकी नाम भूल जाता हूं)।
EDIT इस समस्या को "फाड़ने" के रूप में जाना जाता है।
तो - एसडीएल में खिड़की वाले मोड गेम में, मैं वर्टिकल रिट्रेस के साथ अपने पेज-फ्लिप को सिंक्रनाइज़ कैसे करूं?
EDIT मैंने समाधान के दौरान खोज करते समय कई दावों को देखा है, कि खिड़की वाले अनुप्रयोग में लंबवत रिट्रेस में पेज-फ्लिप को सिंक्रनाइज़ करना असंभव है। विंडोज़ पर, कम से कम, यह केवल झूठा है - मैंने गेम लिखे हैं (जिसके द्वारा मेरा मतलब 15-पहेली के समान स्तर पर चीजें हैं) जो ऐसा करते हैं। मैंने एक बार डार्क बेसिक और डार्क जीडीके के साथ कुछ समय बर्बाद कर दिया - दोनों डायरेक्टएक्स-आधारित और दोनों सिंक्रनाइज़िंग पेज-फ्लिप विंडो विंडो में लंबवत रिट्रेस पर।
इस पुराने प्रश्न को बंद करने के लिए स्वीकृत, लेकिन यदि कोई निश्चित उत्तर दिखाई देता है तो मैं स्विच करने के लिए अभी भी खुला हूं। – Steve314