2010-02-15 13 views
6

में स्केलिंग sprites मैं एसडीएल में sprites कैसे स्केल कर सकते हैं?एसडीएल

उत्तर

8

एसडीएल सीधे स्केलिंग कार्यक्षमता प्रदान नहीं करता है, लेकिन an additional library called SDL_gfx है जो रोटेशन और ज़ूमिंग क्षमताओं प्रदान करता है। another library called Sprig भी है जो समान सुविधाएं प्रदान करता है।

-3

यदि आप इसके बजाय SFML का उपयोग करते हैं तो आपको क्रॉस-प्लेटफ़ॉर्म क्षमताओं का एक बहुत ही समान सेट मिलता है लेकिन ग्राफिक्स हार्डवेयर त्वरित होते हैं और स्केलिंग और रोटेशन जैसी सुविधाएं मुफ्त में आती हैं, दोनों अतिरिक्त निर्भरताओं की आवश्यकता होती है और इनके संदर्भ में संचालित करने के लिए कोई ध्यान देने योग्य CPU समय नहीं ले रहा है।

-1

आप किसी भी कोड प्रदान नहीं किया है, इसलिए मैं आपको बनावट और एक SDL_Renderer उपयोग कर रहे हैं ग्रहण करने के लिए जा रहा हूँ:

SDL_RenderCopy() का उपयोग करते समय बनावट अगर ऐसा है, गंतव्य SDL_Rect फिट करने के लिए बढ़ाया जाएगा, जो आपके गंतव्य SDL_Rect को बड़ा या छोटा बनाएं, आप बनावट का एक सरल स्केलिंग कर सकते हैं।

https://wiki.libsdl.org/SDL_RenderCopy

0

अगर आप SDL_RenderCopy के साथ एक बनावट से स्प्राइट हो रही है(), लेकिन मैं आप एंटीलायज़िंग़ गारंटी नहीं दे सकते आप स्केलिंग कर सकते हैं।

  • दाता (जहां renderize करने जा रहे हैं) के लिए सूचक:

    समारोह SDL_RenderCopy के साथ() आप 4 पैरामीटर गुजरती हैं।

  • एक बनावट के लिए एक सूचक (जहां आप स्प्राइट प्राप्त करने जा रहे हैं)।
  • स्रोत रेक्ट के लिए पॉइंटर (क्षेत्र और स्थिति जहां आपको बनावट पर स्प्राइट मिलता है)।
  • और नियत करने के लिए पॉइंटर (उस रेंडरर पर क्षेत्र और स्थिति जिसे आप आकर्षित करने जा रहे हैं)।

आपको केवल अपने dest rect को संशोधित करना चाहिए उदाहरण के लिए, यदि आप एक छवि 300 x 300 प्रस्तुत करने जा रहे हैं और आप इसे स्केल कराना चाहते हैं, तो आपका dest rect 150 x 150 या 72 x 72 या जो भी मूल्य हो आप स्केल करना चाहते थे।

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