完整的代码在这里我的问题是:
- 我运行它按预期运行的代码
- 我按下后退按钮
- 我从手机重新打开应用程序
- 屏幕变黑
我已经在 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);
}
}
}