2012-01-12 1 views
4

Я использую andengine, чтобы реализовать спрайт, который можно перетащить по экрану с помощью этого.Выполнение скачка спрайта, когда пользователь нажимает на экран?

Так что я хочу сделать, когда пользователь нажимает на любое место на экране, чтобы прыжок спрайта.

или двигаться вверх, а затем двигаться вниз.

Каков наилучший способ сделать это с помощью andengine?

ответ

3

Это должно работать:

@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 s и AnimatedSprite s реализация ITouchArea, поэтому вы можете использовать их.

Когда Scene получает TouchEvent обрабатывать, он сначала пусть все ITouchArea с вы зарегистрированный дескриптор его, а затем, если не из них потребляли его, он будет попробовать метод onSceneTouchEvenet.

1

Похоже, вам придется настроить слушателя показано, как в этом учебнике: http://www.andengine.org/forums/tutorials/updating-sprites-objects-listeners-t386.html то, возможно использовать модификатор перемещения, как показано на этом посту: how to move sprite object using AndEngine (Android) Я надеюсь, что вы будете выяснить вашу проблему. ;)

Хорошо Luck- Lijap

+0

Спасибо, но im фактически уже делает это для спрайта, но теперь я хочу, чтобы он «прыгал» в любое время, когда пользователь забирает экран, не касаясь спрайта. –

+0

Извините, у меня есть довольно ограниченная информация о andengine, я считаю, что ответа Jong будет достаточно. – Lijap

Смежные вопросы