2011-11-01 50 views
0

我想爲android創建我的第一個遊戲。我目前有一個帶有一些圖形和「開始」按鈕的標題頁。在觸摸事件中更改android的意見

我想要做的是加載遊戲一旦開始按鈕被按下。

這裏是我的活動代碼:

public class TitlePage extends Activity { 

    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
          WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    setContentView(new TitlePageView(this)); 
    } 

TitlePageView涉及裝載&放置圖像在畫布上,檢查是否按下按鈕,並得出了一些球漂浮在屏幕上。

一旦按下按鈕,我根本不需要任何東西從TitlePageView類。有沒有刪除當前視圖的方法,並用不同的視圖調用setContentView()

回答

0

我想你已經實現了自己的SurfaceView類,展示遊戲內容,即

public class GameView extends SurfaceView implements ...... { ....} 

然後在TitlePage活動,用來初始化的GameView的一個實例,如:

GameView mGameView=new GameView(this); 

當你想展示你的遊戲,只需調用setContentView(mGameView); 當然,你可以打電話給mGameView.start()來開始遊戲。

+0

是的,這是我所做的。我不知道如何從我的'TitlePageView'類中調用'setContentView()'。 – Wozza

+0

不,你應該在'TitlePage'類中調用'setContentView()'。當你調用'setContentView(新的TitlePageView(this));'屏幕顯示你遊戲的標題頁。當你調用'setContentView(mGameView)'時,它會顯示你的遊戲。看起來你對一個Activity和一個View感到困惑。 – Huang

+0

這就是我的想法,但開始按鈕的動作偵聽器位於'TitlePageView'類中。我怎樣才能通知'TitlePage'按鈕已被按下? – Wozza

0

除了切換contentView之外,您應該使用一個surfaceView,它將在運行的線程內無效,以獲得更好的性能。 爲Android 2D遊戲的一個非常有用的鏈接here

+0

我的'TitlePageView'類擴展了SurfaceView。我有一個線程可以在我的標題頁面上更新一些彈跳球。在那裏添加一個有條件的'invalidate()'調用? – Wozza

+0

不,您不需要,因爲它擴展了'SurfaceView',視圖可以直接在運行的線程中自行更新。當你使用普通視圖時,你應該通過調用'invalidate()'來更新UI線程中的畫布。或通過調用'postInvalidate()'在非UI線程中; – Huang