我正在使用Java和XML開發AndroidStudio中的Space Invaders(沒有Libgdx,Gamemaker ...),我有一個問題...我希望你能幫助我。水平移動<ImageView>按<Button>
首先,這裏是我的app design.
正如你所看到的,在RelativeLayout的底部,你可以找到在正確的飛船和兩個按鈕(一個在左邊,另一個按鈕船)。按鈕不可見。左側按鈕具有「control_izquierda」作爲id,右側按鈕「control_derecha」。
當你按下左鍵時,宇宙飛船向右移動,當你按下右鍵時,宇宙飛船向左移動(這個效果很好)。
我的問題這是關於按下其中一個按鈕時移動飛船(當我按住按鈕,飛船應移動)。我嘗試過不同的方法來嘗試這個,但我找不到正確的解決方案。
這裏是我的Java代碼
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void actualizaPosicion(View v) {
switch (v.getId()) {
case R.id.control_derecha:
findViewById(R.id.nave).setX(findViewById(R.id.nave).getX() - 30);
break;
case R.id.control_izquierda:
findViewById(R.id.nave).setX(findViewById(R.id.nave).getX() + 30);
break;
}
}
}
當其中一個按鈕被點擊,我的XML來電 「actualizaPosicion」 的方法。這種方法檢測是否點擊了右鍵或左鍵,然後上傳太空船的位置(該ID是「nave」),並且當按鈕按下時,宇宙飛船移動,並且當按鈕不再按時,飛船停下來。
我很感激幫助。
非常感謝!
嗨,Nishant。我認爲這種解決方案在這種情況下並不有用。我需要的是這樣的:當我按住左鍵時,當我不再按下按鈕時,飛船必須向下移動到右側,船將停止。我不能使用動畫,我需要將ImageView移動到另一個位置。如果我先按住左鍵,宇宙飛船移動30 dp,然後我想按住右鍵將飛船移動到左邊,那麼你的方式不是有用的。 –
嘿,我明白你的要求。我已經相應地更新了答案。我相信這將解決您的所有當前和未來的問題與這個遊戲。 **這不僅僅是你需要的動畫。這是完全成熟的遊戲開發,這就是爲什麼我不能在答案中給出所有代碼示例**。如果編輯的鏈接變成您正在尋找的教程,請確認接受我的答案。 –