如何在cocos2d-android中使用活动?

时间:2013-07-12 07:57:41

标签: android cocos2d-iphone cocos2d-x cocos2d-android

我目前正在开发cocos2d-android项目,其中精灵之间的交互使用'场景'来完成未使用的xml文件,所以现在要做一些其他任务我在onTouch的按钮上使用xml布局文件。 下面是替换onTouch按钮上的场景的代码,因为没有使用场景我应该在这里使用什么逻辑?我搜索了很多,找不到解决方案。请帮我。

public void callbackGameLayer(Object sender) {
    //Global.playSoundEffect(R.raw.button);
    CCScene scene = CCScene.node();
    scene.addChild(new GameLayer(), -1);
    CCDirector.sharedDirector().replaceScene(scene);

}

这是流程必须进行的活动

public class IntermediateMain extends Activity {

protected CCGLSurfaceView mGlSurfaceView;
private static int MAX_GAME_TIME_SECONDS = 300;

/** Called when the activity is first created. */


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);

    // get full screen setup and keep screen bright and on when the window
    // is visible
    getWindow().setFlags(
            WindowManager.LayoutParams.FLAG_FULLSCREEN
                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
            WindowManager.LayoutParams.FLAG_FULLSCREEN
                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);


    mGlSurfaceView = new CCGLSurfaceView(this);
    setContentView(R.layout.main);  

    final Button newGame = (Button) findViewById(R.id.start_game_btn);
    final TextView numSecondsTextView = (TextView) findViewById(R.id.num_seconds_text_view);
    final TextView numSacksTextView = (TextView) findViewById(R.id.num_sacks_text_view);
    OnSeekBarChangeListener changeListener = new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            int currentGameTimeInSeconds = (progress * MAX_GAME_TIME_SECONDS) / 100;
            numSecondsTextView.setText(Integer
                    .toString(currentGameTimeInSeconds));
            numSacksTextView.setText(Integer.toString(IntermediateGameLayer
                    .numSacksInGame(currentGameTimeInSeconds)));
            newGame.setEnabled(currentGameTimeInSeconds > 0);
        }
    };

2 个答案:

答案 0 :(得分:0)

我认为你走向了错误的方向,因为我和你之前有着相同的意图,但经过一系列的研究后,我发现:Android的cocos2d-x API只是一个正常工作的包装器android设备。主要的开发语言仍然是C ++的可移植性,Here is a Space Game example support my point

答案 1 :(得分:0)

要切换到Android中的其他活动,您需要使用JNI代码将来自cocos2d-x(c ++)的调用发送到当前的android活动。然后在那里开始一项新活动。当您切换到另一个活动时,cocos2d-x游戏将暂停。