今のところ、ループを実行してゲームの状態を 25 回/秒更新し、40 回/秒描画しようとするアプリがあります。更新は正常に機能し、25 を少し上回っています。ただし、エミュレーターでは、描画する量に関係なく、ゲームは 20 fps 未満で描画されます。背景を緑に塗っただけでもfpsが低いです。
アプリを電話でテストした人に送信したところ、40fps の描画速度と 25fps の更新速度で正しく動作しました。
さまざまな API レベルのエミュレーターでテストしましたが、描画 fps は常に遅すぎます。エクリプスを使っています。エミュレータなどに特別な設定をする必要はありますか?
別の問題もありました.彼の電話でそれをテストした人は、アプリを起動するとエラーメッセージを受け取りました.アプリは反応せず、待機してシャットダウンするオプションが表示されました. 5 ~ 10 秒待つと、コンテンツ ビューが表示されます。onCreate
ループを開始せずに、コンテンツ ビューを作成し、メソッドに変数を割り当てます。onStart
メソッドで を設定してループを開始しますが、メソッドでcontentView
a を設定するまで空の while ループが実行されboolean
ますonResume
。何か案は?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
view= new MainMenu(this); }
protected void onStart() {
super.onStart();
this.setContentView(view);
view.startGameView();
}
public void startGameView() {
loop=new GameLoop(this);
loop.start();
}
protected void onResume() {
super.onResume();
view.resumeGameView();
}
public void resumeGameView() {
loop.b_pause=false;//loop starts to execute code for drawing/updating
}
アクティビティ変更のコード:
public void changeActivity(Class c, String str)
{
Intent i=new Intent(this, c);
startActivity(i);
}