मेरे पास यह "ब्रेकआउट स्टाइल" गेम है।
मेरे पास केंद्र में एक तोप है, तोप के चारों ओर ब्लॉक और ब्लॉकों के आसपास पैड हैं। इस तरह से खेल दिखता है:
मैं प्रति पिक्सेल टकराव प्राप्त करने में कामयाब रहा हूं और मेरी गेंद निम्नलिखित गणित के साथ ब्लॉक के संपर्क पर " प्रतिबिंबित " करती है :
Ball.Direction = 2 * (Block.Direction - Ball.Direction) + 180;
जहाँ नीली रेखा गेंद की दिशा है, और काली रेखा (बेस लाइन) ब्लॉक सतह है।
दिशा रेडियन में व्यक्त कोण है (जो डिग्री में परिवर्तित किया जा सकता है, निश्चित रूप से)।
गेंद द्वारा ले जाया जाता है:
// Event.ENTER_FRAME
x += Math.sin(Direction) * Velocity;
y -= Math.cos(Direction) * Velocity;
अब तक सब ठीक है।
मेरी समस्या अब आती है, पैड के साथ (छोटे रंग के ब्लॉक के चारों ओर 3 गहरे और बड़े ब्लॉक)।
जैसा कि वे चारों ओर मुड़ते हैं, सतह कोण बदल जाता है।
इससे अधिक, गेंद को पक्षों पर भी मारना चाहिए, इसलिए, मैं गेंद की गति और गेंद की गति की नई दिशा को कैसे माप सकता हूं?
ps : यदि आवश्यक हो, तो मैं कोड और एक बजाने वाला swf की आपूर्ति कर सकता हूं।
संपादित करें
ठीक है, कोणों के साथ समस्या वैक्टर के साथ हल हो गई थी , लेकिन मुझे अभी भी पक्षों और पीठ की टक्कर के साथ समस्या है।
मैं उसके लिए एक और प्रश्न खोलूंगा और इसे यहां लिंक करूंगा।