سؤال

كيف يمكنني دعم (جعل خوارزمية) ل ليبغد لدعم دقة الشاشة متعددة?أنا جعلت بلدي التطبيق العمل على هتس الوشم باستخدام إذا ستاتمينتس مع المعلمات مثل:

if (Gdx.input.getX()==40) {

ما هي خوارزمية جيدة لجعل هذا العمل على شاشات أكبر?حاولت هذا ولكن دون أي نتيجة:

publis static int translatex() {
     float p = (float)Gdx.graphics.getHeight()*340;
     return (int) p*Gdx.input.getX();
}

340 هو س قاعدة (قرار س على هاتفي) المستخدمة من قبل لي على الوشم هتس.لذا.....كيف يمكنني إنشاء وظيفة لدعم الشاشات الكبيرة ذات القيم المطلقة.أنا لا أريد تغيير إذا-البيانات.

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

المحلول

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

أساسا ما تفعله هو أخذ كل كائن تم إنشاؤه وإدارته من خلال شيء يزيد / النقصان حسب التغيير في قيم X / Y في دوارك.كلما كان ذلك من أصلي، فإن أكبر سيكون.عند التحقق من شيء ما هو في مكان ما أو وضع شيء ما في مكان ما، قم دائما بمثابة الدقة التي تريدها ولكنها تعمل من خلال وظيفة تغيير الحجم قبل عرضها أو السماح لها بالتفاعل مع بقية البرنامج.

نصائح أخرى

شاهد حلا أكثر أناقة في http://www.java-gaming.org/index.php?topic=25685.0 (انظر أيضا تعليق نيت على هذا الحل).

أيضا ، إذا كنت تستخدم scene2d, ، لاحظ أنه حاليا (ليبغد 0.9.6) stage.setViewport يجب أن تحتوي الطريقة على هذه الوظيفة ، لكنها لا تتصرف حقا كما يتوقع المرء.

تحديث: تم إصلاح سيتفيبورت ، لذلك هذا يعمل تماما كما هو متوقع.

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