2012-03-07 49 views
0

我正在製作一款需要顯示一些不同圖像的Android遊戲。 我需要製作一種方法,可以繼續從可繪製目錄中的資源生成圖像,然後將圖像從屏幕頂部拖放到底部。我還需要每個圖像都應該有一個id「image-1」「image-2」,其中索引號會更高,再一次創建圖像作爲整數。我還需要它們在屏幕頂部的不同位置生成並以指定的速度下降。一旦見底,我要像執行的方法:使圖像在android中下降

public void touchedGround() { 
//My code 
} 

我使用這個代碼至今:

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.Toast; 

public class GameScreenActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.gamescreen); 
    generateParachuters(savedInstanceState); 
} 

private void generateParachuters(Bundle icicle) { 
    // TODO Auto-generated method stub 
    Toast.makeText(getApplicationContext(), "generating images", 10).show(); 
} 
} 

回答

0

我知道一個辦法做到這一點,但它需要大量的更多的代碼,然後你可能正在尋找。但是,嘿,在這裏。

  1. 爲你的下落的物體創建一個類,我猜測它是一個Parachuter。這個類將有一個X和Y變量來跟蹤它在屏幕上的位置。然後你可以有一個tick的方法,這會增加Y變量的速度,但是你希望它快速下降。如果需要,您還可以讓他們跟蹤整數ID。

  2. 創建一個列表,該列表將包含Parachuter對象。我使用ArrayList。這樣您可以在需要時創建Parachuter並將其添加到列表中。在列表中循環繪製每一個。

  3. 您需要一些東西來繪製Parachuter s。我個人使用SurfaceViewCanvas

  4. 你需要一個循環動畫。循環播放,每次繪製Parachuter s並在每一個上呼叫tick

  5. 在循環過程中,您可以檢查每個Parachuter的位置。如果其位置超出Canvas.getHeight(),請從列表中刪除圖像。

那麼,這是相當多的。問我是否需要進一步澄清。

UPDATEHere's a fully-working example

UPDATE 2

//Check right edge of screen 
for (int i = 0; i < parachuters.size(); i++) 
{ 
    if (parachuters.get(i).getX() > canvas.getWidth()) 
     //Do whatever it is you want 
} 
+0

你能解釋步驟3更??? – user1183066 2012-03-10 14:52:08

+0

示例代碼和項目可以在http://www.droidnova.com/playing-with-graphics-in-android-part-ii,160.html和http://developer.android.com/resources/samples找到。 /LunarLander/index.html – 2012-03-10 23:44:21

+0

我試圖使用示例代碼和項目,但沒有運氣。我沒有得到任何東西。你可以給我發一些你如何做的代碼?我做了一個自定義的類,我稱之爲「Parachuter.java」,這是我自定義的「ImageView」,類。 – user1183066 2012-03-11 16:12:07