[英]Making a sprite jump when user taps on the screen?
我正在使用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 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.