سؤال

أعتقد أن العنوان توضيحي في حد ما ولكن فقط لتوضيح أنني أحاول معرفة كيفية معرفة أي جانب حدث الاصطدام.

للحصول على تفاصيل أكثر قليلا، أحاول أن أجعل لعبة تشبه المتاهة حتى لا أستطيع إيقاف جميع الحركة عند الاصطدام. بدلا من ذلك، أحتاج إلى أن أكون قادرا على معرفة الجانب الذي حدث فيه التصادم حتى أتمكن من حظر هذا الاتجاه.

أي مساعدة موضع تقدير وإذا كان هناك نهج أفضل لهذه المسألة، فأنا جميعا لمحاولته.

آمل أن تكون هذه تفاصيل كافية ولكن إذا كنت بحاجة بعد الآن، اسأل وسأقوم بتحريرها. شكرا لك مقدما.

تحرير] Jiggity - لا، أنا لا أستخدم أي محرك لعبة محددة وأود نشر رمز "الكشف" الحالي ولكنه قوي، سخيف، قوي.

@ Stretklin - أنا أستخدم هذا الحدث .Paint للرسم على شكل نفسه كما أوصي ببدء من خلال القيام بذلك للحصول على أفضل في الرسم في الوقت الفعلي. أنا أيضا استخدام موقع تم تحديثه في كل مرة يقوم بها القراد المؤقت بناء على ما أضغط عليه (يسار، يمين، لأعلى). نعم المتاهة في البلاط. حاليا يتكون فقط من 3 ألوان حتى. أنا لست مبرمج متقدم للغاية.

الواقع - بالتأكيد لعبة واحدة د. مرة أخرى، لدي فقط 3 ألوان، والخطوط سوداء، والخلفية بيضاء والمربع (المستخدم) أخضر. أنا أستخدم DrawImage () مع الصور النقطية للرسم على الشاشة.

تحرير ملخص رمز PSuDo

foreach (الجدار _wall في الجدران) إذا كان (player.intersectswith (_wall)) توقف الحركة؛

@ Jeffh - أنا لست متأكدا حقا ما تطلبه الأمر كله إلى حد كبير، بالإضافة إلى ذلك، بالإضافة إلى اختبار رمز الاختبار الذي كنت أستخدمه لمحاولة الحصول عليه. الشيء الوحيد الذي تركته هو عبارة إذا كان ذلك للتحقق مما إذا كان المحور العاشر أم لا يمكن أن تتحرك x و y بشكل مستيقظ من بعضها البعض. لذلك بدلا من الحصول على "عالق" لأنك لمست الحائط، يمكنك الانزلاق ضدها. لم أر النقطة بما في ذلك ذلك على الرغم من أن المشكلة تحدث قبل ذلك.

هل كانت مفيدة؟

المحلول

على افتراض أنك تتحدث عن لعبة ثلاثية الأبعاد هنا.

طبيعي الوجه الذي يمكنك رؤيته نقاط نحوك، لذلك سيكون المنتج نقطة من متجه اتجاهك مع الوجه الطبيعي سلبيا. إذا كانت إيجابية، فأنت تأتي في الوجه من الظهر.

إذا كان الصفر، فأنت تسافر في الزوايا اليمنى إلى الوجه.

|              <---------- your direction of travel
|
|----------> <- face normal
|
| <- face

إذا لم تكن في 3D، فيمكنك تخزين الاتجاه الذي يواجه الجدار (كمسافة ناقلات ثنائية الأبعاد) وقم بهذا المنتج النقاط نفسه مع اتجاهك ثنائي الأبعاد للحركة.

نصائح أخرى

بناء على تعديل الخاص بك، يمكنك فقط الذهاب إلى اتجاه واحد في وقت واحد؟ أو يمكنك الذهاب في الاتجاهات القطرية؟ إذا كان ذلك في وقت لاحق، قدم لك Chrisf الإجابة في ثلاثي الأبعاد والمعلومات المقابلة ل 2D. إذا لم يكن الأمر كذلك، يجب عليك فقط التوقف عن السفر في اتجاه السفر - نظرا لوجود أربع إمكانيات فقط، فيجب أن تكون سهلة بدرجة كافية للتحقق منها جميعا للحصول على لعبة Starter البسيطة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top