單擊安卓按鈕動畫
回答
好吧,這是我已經設置了我的項目,將完全按照自己的工作需要一個...
您需要創建4個主要方面:
- 一活動(延伸活動)
- 甲SurfaceView(延伸SurfaceView實施SurfaceHolder.Callback)
- 螺紋(擴展螺紋)
- Objects的相互作用(延伸繪製對象)
活動開始,併產生一個創建線程一個SurfaceView。視圖或線程可以包含您繪製/與之交互的對象,它取決於您如何在此處存儲數據,但是如果您想出一個類間耦合最少的設計,那麼最簡單。
一旦啓動,線程運行不斷,直到停止(設置isRunning
爲false):
/**
* Processing loop
*/
public void run() {
while (isRunning) {
try {
sleep(25);
} catch (InterruptedException e) {
Log.e("Thread","Thread Interruption");
e.printStackTrace();
}
update();
}
Log.d("Thread", "Game Loop Stopped");
}
/**
* Main processing of the game loop.
*/
private void update() {
handleInput();
updatePhysics();
updateUI();
updateState();
updateAI();
updateAnimations();
updateSound();
updateVideo();
}
在這個類,你看update()
方法,做了一堆動作線程的每個迭代。
您會感興趣的方法大多是handleInput
,updateUI
和updatePhysics
方法。
在handleInput
中,您將回調SurfaceView以獲取處理信息所需的數據。我的handleInput
是相當簡單的,它只是從SurfaceView類的onTouchEvent
(當您使用SurfaceHolder.OnCallBack接口時得到實現)抓取MotionEvent
。
的updateUI
方法調用SurfaceView的update
它與每個對象重新繪製Canvas
,或氣囊
public void update(List<Actor> actors) {
Canvas canvas = null;
try {
canvas = surface.lockCanvas();
synchronized (surface) {
//Blank the Canvas
for (int i = 0; i < actors.size(); i++) {
actors.get(i).draw(canvas);
}
}
} catch (NullPointerException e) {
e.printStackTrace();
} finally {
if (canvas != null) {
surface.unlockCanvasAndPost(canvas);
}
}
}
在這裏我們可以看到,它調用draw
方法傳遞Canvas對象中的每一個你可交互的對象。我在上面的代碼中調用了我的「Actor」。您如何選擇執行draw
取決於您,但聽起來您會使用很多canvas.drawBitmap()
函數。
回到主題的updatePhysics
方法,您會希望使用它來在對象被繪製到屏幕之前或之後更新對象。對於你來說,你需要讓他們在屏幕上改變他們的X和/或Y位置,或者在handleInput
決定你擊中氣球后改變它的移動方向。
很難在StackOverflow回覆中很好地解釋這個問題。如果你真的希望我可以嘗試在本週末將更多的信息放在一起,並將它張貼在外部給你(我可以提供我的UML類圖表,其中包括圖片示例,結構和數據流等其他信息。)
請讓我知道如果我可以進一步幫助你!請注意,這不是我所有的工作。我使用了很多在線基礎Android遊戲結構的教程,但是現在沒有可用的鏈接提供參考。
- 1. 畫布和安卓按鈕
- 2. 安卓圖庫動畫與按鈕
- 3. 安卓單擊畫布
- 4. 安卓方向按鈕點擊動作
- 5. 按鈕單擊動畫
- 6. 安卓按鈕在動畫後不可點擊
- 7. 單擊安卓按鈕聽衆按鈕不工作
- 8. 安卓按鈕點擊並點擊
- 9. 單選按鈕(安卓)
- 10. 安卓移動按鈕
- 11. 安卓:按鈕
- 12. 安卓PopupWindow按鈕消失後點擊
- 13. 按鈕點擊安卓小部件
- 14. 安卓相機捕獲按鈕點擊
- 15. 安卓:如何點擊一個按鈕
- 16. 綁定的Silverlight動畫按鈕單擊
- 17. JS:想單擊按鈕動畫
- 18. Angular 2按鈕單擊動畫
- 19. 單擊按鈕後Chart.js動畫圖表
- 20. 按鈕在安卓
- 21. 按鈕點擊許多按鈕動畫
- 22. 單擊按鈕更新/重畫畫布
- 23. 安卓:放置單選按鈕水平
- 24. 創建主頁按鈕菜單(安卓)
- 25. 安卓菜單搜索按鈕
- 26. 安卓GPS次活動錯誤時,點擊下一步按鈕
- 27. 安卓在Eclipse - AsyncTask按鈕點擊啓動FileWriter
- 28. 安卓維護活動後點擊返回按鈕FragmentActivity
- 29. 動畫未啓動! (安卓)
- 30. 安卓「後退」按鈕動作
我不'現在我們有時間來寫一個完整的解釋,但是google的Android遊戲教程,你需要創建一個線程來執行你的氣球對象的更新命令,然後讓他們在畫布上調用一個繪圖命令,這裏有很多教程可用,他們應該幫助你。我可以稍後發佈代碼從我的項目開始,它使用了你以後需要的大量工作。 – Grambot 2011-12-14 19:29:15