का आकार बदलने के बिना केंद्र के चारों ओर बिटमैप घुमाएं। मैं अपने केंद्र के चारों ओर एक घूर्णन बिटमैप खींचने के लिए संघर्ष कर रहा हूं और बिटमैप का आकार बदलने के बिना घूर्णन कर रहा हूं। मैं अपने सभी sprites को एक गेम थ्रेड के माध्यम से स्क्रीन पर खींच रहा हूं, इसलिए मैं ऐसे समाधान की तलाश में हूं जो मूल बिटमैप को शामिल करता है न कि कैनवास।एंड्रॉइड
अग्रिम धन्यवाद।
यह मेरा कोड है अब तक, यह अपने केंद्र के चारों ओर एक बिटमैप बदलता है, फिर भी इसका आकार बदलता है।
i = i + 2;
transform.postRotate(i, Assets.scoresScreen_LevelStar.getWidth()/2, Assets.scoresScreen_LevelStar.getHeight()/2);
Bitmap resizedBitmap = Bitmap.createBitmap(Assets.scoresScreen_LevelStar, 0, 0, Assets.scoresScreen_LevelStar.getWidth(), Assets.scoresScreen_LevelStar.getHeight(), transform, true);
game.getGraphics().getCanvasGameScreen().drawBitmap(resizedBitmap, null, this.levelStar.getHolderPolygons().get(0), null);
अद्यतन:
मैंने देखा है यह जितना आसान यह लग रहा है नहीं है। मेरा घूर्णन कोड समस्या नहीं है। बिटमैप घुमाता है, फिर भी डीएसटी रेक्ट को रोटेशन के कोण के आधार पर बढ़ाना/घटाना होगा, या फिर बिमाप छोटे दिखाई देगा, क्योंकि यह एक निश्चित डीएसटी रेक्ट में खींचा जाता है। तो मुझे अनुमान है कि मुझे कुछ विधि विकसित करना होगा जो एक डीएसटी रेक्ट वापस कर देगा। तो तरीकों के बिना एक बिटमैप बारी बारी से करने के लिए आवश्यक आकार बदलने दिखाई दिया:
public static Bitmap rotateBitmap(Bitmap bitmap, int rotation) // I've got this method working
और
public static Rect rotateRect(Rect currentDst, int rotation) // Don't got this
मैं चुनौती के लिए ऊपर समझते हैं कि यह कुछ गणित (trig) की आवश्यकता होगी, किसी को? : पी
आपने अभी तक क्या प्रयास किया है? क्या आप कुछ उदाहरण पोस्ट कर सकते हैं जो आपके लिए काम नहीं कर चुके हैं? –
सीधे एंड्रॉइड या कोकोस 2 डी-एक्स? – Fallenreaper
कोड के साथ अद्यतन प्रश्न, @Fallenreaper, मैं अपने स्वयं के जीई का उपयोग कर रहा हूं, तो सीधे एंड्रॉइड। –