0
새로운 의도를 시작하는 GameOver의 사용자에게 통지 할 수있는 올바른 방법으로하지 않을 수 있음을 발견 한 후, 지금 runOnUiThread,의 Runnable 및 대화 상자와 struggeling 해요 ..표시 대화 gameover
질문 : Dialog.show()를 구현하여 게임이 종료되었다는 것을 사용자에게 알리는 곳은 어디입니까? 레일 경주 게임을 구현 중입니다.이 시간에 열차 충돌이 발생하면 여기에 대화를 표시하려고합니다.
저는 runOnUiThread, Runnable 및 Async 스레드를 실험했습니다. 그것을 알아낼 수 없습니다. MainGamePanel의 충돌 발생 방법에 대화 상자를 표시하고 싶습니다.
나는 게임을 가지고있다. 활동 AndroidGameActivity는 :
while (!collision)
{
playGame();
doAnimation();
checkCollision();
}
dialog.show();
performAction(determineNextGameState());
사용자가 죽었을 때 충돌 필드를 수정 한 다음에 PlayGame()에있는 모든 게임 플레이 코드를 넣고 :
private static final String TAG = AndroidGame.class.getSimpleName();
public static Vibrator v;
private GameDatabaseOperations gameDatabaseOperations;
private int currentDate;
private int todayDate;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
try{
currentDate = Calendar.getInstance().get(Calendar.DATE);
gameDatabaseOperations = new GameDatabaseOperations(this);
gameDatabaseOperations.createWriteModeDatabase();
Cursor crDate = gameDatabaseOperations.fetchTodayDate();
startManagingCursor(crDate);
if(crDate!= null && crDate.getCount() >0){
crDate.moveToFirst();
todayDate = crDate.getInt(0);
}
if(currentDate != todayDate){
gameDatabaseOperations.updateTodayDefaultScore(0);
gameDatabaseOperations.updateTodayDate(currentDate);
Cursor cr1Date = gameDatabaseOperations.fetchTodayDate();
startManagingCursor(cr1Date);
if(cr1Date!= null && cr1Date.getCount() >0){
cr1Date.moveToFirst();
todayDate = cr1Date.getInt(0);
}
}
gameDatabaseOperations.closeDatabase();
}
catch(Exception e){
e.printStackTrace();
}
FrameLayout fl = new FrameLayout(this);
setContentView(fl);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout pause = (LinearLayout) inflater.inflate(
R.layout.pausebutton, null);
fl.addView(new MainGamePanel(this));
fl.addView(pause);
v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
}