هل تقوم بقفز الكائنات عندما ينقر المستخدم على الشاشة؟

StackOverflow https://stackoverflow.com/questions/8829015

  •  27-10-2019
  •  | 
  •  

سؤال

أنا أستخدم andengine لتنفيذ كائن يمكن سحبه عبر الشاشة باستخدام هذا.

إذن ما أريد فعله هو عندما ينقر المستخدم على أي مكان على الشاشة ليقفز الكائن.

أو التحرك لأعلى ثم الانتقال لأسفل.

ما هي أفضل طريقة للقيام بذلك مع andengine؟

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

المحلول

يجب أن يعمل هذا:

@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
    if(pSceneTouchEvent.isActionDown()) { //Jump only if the user tapped, not moved his finger or something
        final Entity playerEntity = ...;//Get player entity here.

        final float jumpDuration = 2;
        final float startX = playerEntity.getX();
        final float jumpHeight = 100;

        final MoveYModifier moveUpModifier = new MoveYModifier(jumpDuration / 2, startX, startX - jumpHeight); // - since we want the sprite to go up.
        final MoveYModifier moveDownModifier = new MoveYModifier(jumpDuration / 2, startX + jumpHeight, startX);
        final SequenceEntityModifier modifier = new SequenceEntityModifier(moveUpModifier, moveDownModifier);

        playerEntity.registerEntityModifier(modifier);
        return true;
    }
    return false;
}

ضع في اعتبارك أنه إذا كنت ستستخدم هذا، كلما كان هناك ACTION_DOWN قد تفوتك بعض معالجات الأحداث الأخرى لهذا (على سبيل المثال، إذا كان لديك أزرار تظهر على الشاشة، فلن تتعامل مع الحدث أبدًا).

طريقة التعامل معها هي استخدام إضافة أي كيانات أخرى ترغب في تلقي أحداث اللمس كمناطق لمس للمشهد الخاص بك، Scene.registerTouchArea(ITouchArea) يفعل ذلك. Spriteرمل AnimatedSpriteتنفيذ ITouchArea, ، لذا يمكنك استخدام هذه.

عندما Scene يتلقى أ TouchEvent للتعامل معها، وسوف تسمح لأول مرة لجميع ITouchAreaإذا قمت بالتسجيل تعامل معه، ثم إذا لم يستهلكه أي منهم، فسوف يحاول onSceneTouchEvenet طريقة.

نصائح أخرى

يبدو أنه سيتعين عليك إعداد مستمع موضح كيف في هذا البرنامج التعليمي: http://www.andengine.org/forums/tutorials/updating-sprites-objects-listeners-t386.html ثم ربما تستخدم معدل نقل كما هو موضح في هذا المنشور: كيفية تحريك كائن الكائن باستخدام AndEngine (Android) آمل أن تكتشف مشكلتك.؛)

حظ سعيد- Lijap

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