سؤال

لذلك أنا أعمل على لعبة في Java 3D وأنا أقوم بتنفيذ أشرطة صحية تحوم فوق الوحدات.

لقد بدأت برسم رباعي في نقطة ثلاثية الأبعاد فوق موقع الوحدة وتطبيق سلوك لوحة إعلانات لجعلها دائمًا مواجهة الكاميرا.

لكن المشكلة التي تمسك بها هي أن الحانات الصحية تحجبها في بعض الأحيان مناظر طبيعية أخرى.

لذلك أنا أفكر في الخيارات التالية:

  1. تجاوز قيمة Z / Depth Buffer Pixels Health Bar لجعل العارض يعتقدون أنها أقرب إلى الكاميرا من أي شيء يقدمه بعد ذلك.

    حاولت renderingAttributes.setDepthTestFunction(RenderingAttributes.ALWAYS). على الرغم من أنه يجعل العارض يرسم الشريط الصحي فوق أي شيء رسمه في نفس المنطقة في وقت سابق ، إلا أنه لا يساعد عندما يتم رسم المشهد الآخر فوق شريط الصحة في وقت لاحق.

    هل هناك طريقة أفضل للقيام بذلك في Java 3D؟

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

  3. التحول من Java 3D إلى شيء مثل LWJGL أو JMonKeyEngine (ليس فقط لهذه القضية ، ولكن الشكاوى العامة حول موت Java 3D ، إلخ). على الرغم من أنني لست متأكدًا مما إذا كانت أكثر مرونة لهذه المشكلة بالذات. ومن ما قرأته ، فإن أحد أسوأ الأخطاء في لعبة Dev هو تبديل المحرك في منتصف التطوير.

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

المحلول

استخدم ال خوارزمية الرسام: ارسم الحانات الصحية بعد، بعدما لقد رسمت بقية المشهد (ومع إيقاف اختبار Z ، بالطبع).

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