2009-07-26 7 views
12

मैं एक खेल बना रहा हूं और मुख्य चरित्र की भुजा माउस कर्सर का पालन करेगी, इसलिए यह अक्सर घूर्णन करेगा। इसे घुमाने का सबसे अच्छा तरीका क्या होगा?एसडीएल का उपयोग कर छवि को घुमाने के लिए सबसे अच्छा तरीका?

उत्तर

19
एसडीएल के साथ

की तरह एक पुस्तकालय का उपयोग कर सकते तो आपको कुछ विकल्प हैं। पहले से

  1. घुमाएँ सभी अपने स्प्राइट (सभी संभव रोटेशन पूर्व प्रस्तुत करना) और उन्हें आप की तरह प्रस्तुत करना किसी भी अन्य स्प्राइट। यह दृष्टिकोण तेज़ है, लेकिन अधिक स्मृति और अधिक sprites का उपयोग करता है। @Nick Wiggle ने बताया, RotSprite स्प्राइट ट्रांसफॉर्मेशन उत्पन्न करने के लिए एक शानदार टूल है।

  2. रीयल-टाइम रोटेशन/ज़ूमिंग करने के लिए SDL_gfx जैसे कुछ का उपयोग करें। (अनुशंसित नहीं, बहुत धीमी)

  3. ओपनजीएल मोड में एसडीएल का उपयोग करें और प्राइमेटिव्स को रोटेशन लगाने, प्राइमेटिव्स को अपने स्प्राइट्स को प्रस्तुत करें।

विकल्प 3 शायद आपकी सबसे अच्छी शर्त है क्योंकि आप OpenGL का उपयोग करने के सभी फायदे प्राप्त करते हैं। यह वास्तव में आप पर निर्भर करना है कि यह कैसे करना है। यह भी एक संभावना है कि आप अपने sprites लोड कर सकते हैं, एसडीएल_जीएफएक्स के साथ सभी रोटेशन गणना प्रदर्शन और फिर घुमावदार संस्करणों को स्मृति में एक एसडीएल_Surface में सहेजें।

संपादित करें: आपकी टिप्पणी के जवाब में मैं Lazyfoo के एसडीएल ट्यूटोरियल की जांच करने की सिफारिश करता हूं। Specifically, this one about rotationOpenGl function, glRotatef भी है, जो आपके मामले में उपयोगी हो सकता है। एक त्वरित खोज this little tidbit वापस लाया जो सहायक भी हो सकता है।

+0

मुझे लगता है कि मैं ओपनजीएल मार्ग का पता लगाना चाहता हूं, हालांकि, मैंने कभी इसके साथ काम नहीं किया है। क्या आपके पास रोटेशन के लिए ट्यूटोरियल शुरू करने के लिए वेबसाइट पर कोई अनुशंसाएं हैं? – Justen

+0

मैंने नेहे से कुछ कोड देखा है, और यह छवि पर घूर्णन स्थापित करने के लिए अविश्वसनीय रूप से कठिन लगता है ... मैं इस विषय पर कोई मदद नहीं कर सकता हूं? – Justen

+0

मैंने ओपनजीएल के साथ लंबे समय तक काम नहीं किया है/नहीं किया है। आपका ओपनजीएल-विशिष्ट रोटेशन प्रश्न एक नए प्रश्न के लिए एक अच्छा विषय हो सकता है। आप मुझे देने से बेहतर जवाब पाने के लिए बाध्य हैं। –

0
SDL_RenderCopyEx() 

में घूर्णन, फ़्लिपिंग और रोटेशन सेंटर के लिए अतिरिक्त तर्क हैं।

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