আমার এই "ব্রেক ব্রেক আউট স্টাইল" গেমটি আছে।
আমার কেন্দ্রে একটি কামান রয়েছে, কামানের চারপাশে ব্লক রয়েছে এবং ব্লকের চারপাশে প্যাড রয়েছে। খেলাটি এরকম দেখাচ্ছে:
আমি প্রতি পিক্সেল সংঘর্ষে পরিচালিত হয়েছি এবং আমার বলটি নিম্নলিখিত গণিতের সাথে ব্লকগুলির সাথে যোগাযোগের ক্ষেত্রে " প্রতিফলিত করে ":
Ball.Direction = 2 * (Block.Direction - Ball.Direction) + 180;
যেখানে নীল রেখাটি বলের দিক এবং কালো রেখা (বেস লাইন) হ'ল ব্লক পৃষ্ঠ surface
দিকটি হ'ল রেডিয়ানে প্রকাশিত একটি কোণ (এটি অবশ্যই ডিগ্রিতে রূপান্তরিত হতে পারে)।
বলটি সরানো হয়েছে:
// Event.ENTER_FRAME
x += Math.sin(Direction) * Velocity;
y -= Math.cos(Direction) * Velocity;
এ পর্যন্ত সব ঠিকই.
প্যাডগুলি (ছোট রঙিন ব্লকের চারপাশে 3 গা dark় এবং বড় ব্লক) দিয়ে আমার সমস্যাটি এখন চলে আসে।
এগুলি ঘুরে দেখার সাথে সাথে পৃষ্ঠের কোণ পরিবর্তন হয়।
তার চেয়েও বড়, বলটিও পাশের দিকে আঘাত করা উচিত, সুতরাং, আমি কীভাবে আঘাতের দিক এবং বলের চলাচলের নতুন দিকটি পরিমাপ করতে পারি?
PS : যদি প্রয়োজন হয়, আমি কোড এবং একটি প্লেযোগ্য swf সরবরাহ করতে পারি।
সম্পাদন করা
ঠিক আছে, কোণগুলির সাথে সমস্যাটি ভেক্টরগুলির সাথে সমাধান করা হয়েছিল , তবে আমার পাশ এবং পিছনের সংঘর্ষের সাথে এখনও সমস্যা রয়েছে।
আমি এটির জন্য আরও একটি প্রশ্ন খুলব এবং এটি এখানে লিঙ্ক করব।