如果我在退出活动后打开cocos 2d项目,android屏幕会变黑

时间:2013-07-18 09:24:43

标签: java android android-layout game-engine cocos2d-android

完整的代码在这里我的问题是:

  1. 我运行按预期运行的代码
  2. 我按后退按钮
  3. 我从手机重新打开了应用
  4. 屏幕变黑
  5. 我已在Android v2.3(Gingerbread)操作系统上测试了此代码

    这个问题是因为cocos 2d库请提前告知我...

        import org.cocos2d.layers.CCColorLayer;
        import org.cocos2d.layers.CCLayer;
        import org.cocos2d.layers.CCScene;
        import org.cocos2d.nodes.CCDirector;
        import org.cocos2d.nodes.CCSprite;
        import org.cocos2d.opengl.CCGLSurfaceView;
        import org.cocos2d.types.CGPoint;
        import org.cocos2d.types.CGSize;
        import org.cocos2d.types.ccColor4B;
    
        import android.app.Activity;
        import android.os.Bundle;
        import android.util.Log;
        import android.view.Window;
        import android.view.WindowManager;
    
        public class GameActivity extends Activity {
            private CCGLSurfaceView mGLSurfaceView;
    
            /** Called when the activity is first created. */
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
    
        //        Log.d("hii", "m here on create");
    
                // set the window status, no tile, full screen and don't sleep
                requestWindowFeature(Window.FEATURE_NO_TITLE);
                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                        WindowManager.LayoutParams.FLAG_FULLSCREEN);
                getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
                        WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    
                mGLSurfaceView = new CCGLSurfaceView(this);
    
                setContentView(mGLSurfaceView);
    
                // attach the OpenGL view to a window
                CCDirector.sharedDirector().attachInView(mGLSurfaceView);
    
                // no effect here because device orientation is controlled by manifest
                CCDirector.sharedDirector().setDeviceOrientation(CCDirector.kCCDeviceOrientationPortrait);
    
                // show FPS
                // set false to disable FPS display, but don't delete fps_images.png!!
                CCDirector.sharedDirector().setDisplayFPS(false);
    
                // frames per second
                CCDirector.sharedDirector().setAnimationInterval(1.0f / 60);
                CCScene scene = TemplateLayer.scene();
    
                // Make the Scene active
                CCDirector.sharedDirector().runWithScene(scene);
            }
    
            @Override
            public void onStart() {
                super.onStart();     
                Log.d("hii", "m here on start");
            }
    
            @Override
            public void onPause() {
                super.onPause();
                Log.d("hii", "m here on pause");
                CCDirector.sharedDirector().pause();
            }
    
            @Override
            public void onResume() {
                super.onResume();
                Log.d("hii", "m here on resumae");
                CCDirector.sharedDirector().resume();
            }
    
            @Override
            public void onDestroy() {
                super.onDestroy();
                Log.d("hii", "m here on destroy");
                CCDirector.sharedDirector().end();
            }
    
            public static class TemplateLayer extends CCColorLayer
            {
    
    
                CGSize winSize = CCDirector.sharedDirector().displaySize();
    
                //killing sprite
                CCSprite killerchild,boat,pirates;
    
                public static CCScene scene() 
                {
    
                    CCScene scene = CCScene.node();
                    CCLayer layer = new TemplateLayer(ccColor4B.ccc4(0, 225, 145, 146));
    
                    scene.addChild(layer);
    
                    return scene;
                }
    
    
                   @Override
                    public void onEnter() {
    
                        // then iterate over all the children
                        super.onEnter();
    
                    }
    
                   @Override
                    public void onExit() {
    
                        super.onExit();
    
                    }
    
    
    
                protected TemplateLayer(ccColor4B color) 
                {
    
                    super(color);
    
                    this.setIsTouchEnabled(true);
    
    
                    killerchild = CCSprite.sprite("logo.png");
                    killerchild.setAnchorPoint(CGPoint.ccp(0, 0));
    
                    killerchild.setPosition(CGPoint.ccp(winSize.width/2-killerchild.getContentSize().width/2, winSize.height-killerchild.getContentSize().height));
                    addChild(killerchild);
    
                    boat = CCSprite.sprite("boat.png");
                    boat.setAnchorPoint(CGPoint.ccp(0, 0));
    
                    boat.setPosition(CGPoint.ccp(winSize.width/2-boat.getContentSize().width/2,-boat.getContentSize().height/4));
                    addChild(boat);
    
    
                    pirates = CCSprite.sprite("Pirates.png");
                    pirates.setAnchorPoint(CGPoint.ccp(0, 0));
    
                    pirates.setPosition(CGPoint.ccp(winSize.width/2-pirates.getContentSize().width/2,winSize.height/2-pirates.getContentSize().height/2));
                    addChild(pirates,-1);
    
                }
    
            }
    
        }
    

2 个答案:

答案 0 :(得分:0)

在TemplateLayer类中扩展CCColorLayer:

public static CCScene scene() {
    CCScene scene = CCScene.node();
    CCLayer layer = new TemplateLayer(ccColor4B.ccc4(0, 225, 145, 146));
    scene.addChild(layer);
    return scene;
}

并将Template Layer()构造函数更改为:

TemplateLayer(ccColor4B color){
super(color);
}

运行项目

答案 1 :(得分:0)

我认为这是一个问题,因为你用于cocos 2D的jar文件。我用过我的罐子,我没有得到这个问题。请从下面的链接下载并查看。

https://www.wetransfer.com/downloads/8d55297ac0f605408682fea530e0419120130920102338/e48fbd145e26dc5968402f3a8915678620130920102338/8f429f

请查看此图书馆,如果问题仍然存在,请与我们联系。