2011-07-24 37 views
0

我對此有點問題。我想製作一個按鈕。但是,我不知道如何使用Button類與OpenGL。我不使用Java中的「R」類,而是使用舊的「assets」文件夾來兼容。在Android中創建按鈕glSurfaceView

我有它的設置,找到你是否已經觸摸按鈕,並在「觸摸」加載下一個屏幕。這個缺點是你可以觸摸屏幕,然後將手指拖到按鈕上,然後擡起你的手指。下一個屏幕將加載,因爲它在該位置註冊了觸摸事件。

解決此問題的最簡單方法是使用Button類,但是如何使用它(特別是因爲我將無法使用findViewById)?

這是我使用的代碼,但是當onTouchUp檢查碰撞時,touchDown已經奇蹟般地改變爲與TouchUp相同?

private void onTouchDown(Vector2 point) 
{ 
    if (test.justUp) 
    { 
     test.setTouchDown(point); 
     test.justUp = false; 
    } 
} 
private void onTouchUp(Vector2 point) 
{ 
    test.setTouchUp(point); 
    test.justUp = true; 

    if(OverlapTester.pointInRectangle(test.bounds, test.touchUp) && 
     OverlapTester.pointInRectangle(test.bounds, test.touchDown)) 
    { 
     game.setScreen(new LevelSelect(game)); 
     return; 
    } 
} 

回答

1

創建您自己的按鈕類時,請註冊「觸摸」位置和「觸摸」位置。如果他們都註冊在按鈕圖形區域內,則按下該按鈕。

+0

我有代碼應該這樣做,唯一的問題是當TouchUp被調用時,它似乎將TouchDown設置在該位置? – Chris

+0

你確定你的setTouchDown和setTouchUp方法不共享字段,所以他們不會被覆蓋? –

+0

在我的Button類中有兩個變量,一個用於TouchUp,另一個用於TouchDown,它似乎是一個同步問題 – Chris