2

キャンバスでゲームを作っています。ゲームが勝ったときにアクティビティが変更されるようにする必要がありますが、これはアクティビティファイルでのみ行うことができます。したがって、私のゲームは次のように動作します: MainActivity.class で開始し、キャンバスを作成してビューとして設定します。

MainActivity.java:

public class MainActivity extends Activity {
private MainGamePanel game;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    // making it full screen
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    // set our MainGamePanel as the View
    game = new MainGamePanel(this, 1);
    setContentView(game);

}
}

MainGamePanel.java:

public class MainGamePanel extends SurfaceView implements
    SurfaceHolder.Callback {

public MainGamePanel(Context context, int lvl) {
    super(context);
    this.context = context;
    Level = lvl;
    getHolder().addCallback(this);
    setFocusable(true);

    thread = new MainThread(getHolder(), this);

    ball = new com.csdevelopers.canvas.sprite.Ball(
            BitmapFactory.decodeResource(getResources(), R.drawable.ball),
            100, 100);
    if (Level == 1) {
        lvl1 = new lvl1(context);
    }

    public void checkWon1(){
    if(lvl1.checkWon(ball)){
        // change Activity HERE!!!
    }
}

}

そのため、public void checkWon1() では、Activity 以外のクラスからインテントを呼び出すことができないため、Activity を変更できません。MainActivity に戻って Activity を変更するように指示するにはどうすればよいですか?

さらに説明が必要な場合はコメントしてください。

4

2 に答える 2