我使用AndEngine目前正在二維滾動的射擊遊戲在Android上,但我有相對觸摸控制,允許玩家通過拖動手指向上/向下控制精靈的問題/左/右移動船隻,船隻應移動到與手指相同的方向,就像通過觸摸板控制指針一樣(這在觸摸屏太空入侵者類遊戲中非常普遍)控制XY移動用手指拖動在Android的
所以我想出了這個代碼,
float oldX, oldY;
float X, Y;
public boolean onSceneTouchEvent(Scene pScene,
TouchEvent pSceneTouchEvent) {
if(pSceneTouchEvent.isActionMove()){
float currentX = pSceneTouchEvent.getX();
float currentY = pSceneTouchEvent.getY();
float deltaX = currentX-oldX;
float deltaY = currentY-oldY;
System.out.println("X: " + X + " Y: " + Y);
X= X + deltaX;
Y= Y + deltaY;
oldX = currentX;
oldY = currentY;
}
return true;
}
我遇到的問題是變量X,Y,我將用它來設置精靈屏幕上的位置根據我的手指移動不會增加/減少,如果我連續拖動我的手指右側,X值應該連續增加,當我拖動手指左側時,X值也應該連續減少。但是我所擁有的是X值根據手指在屏幕上的位置而增加/減少。我做錯了什麼?
請說明 - 您正在拖動屏幕,位置值*是*或*不是*增加/減少? – THarms
實際上,它正在增加/減少我想要的方向,但只要我擡起手指並開始向同一方向再次滑動,數值就會變回原來的位置,並且在我繼續滑動時再次開始增加,直到我到達屏幕的邊緣。所以我最多可以看到400左右,只要我繼續向同一方向滑動,而不是在我擡起手指並繼續滑動時數字變回來,它就會增加。 – atmosphere506
其實這就是我正在尋找的,我只是尋找最好的方式來做同樣的Android http://stackoverflow.com/questions/11858522/cocos2d-sprite-relative-movement – atmosphere506