我是初学菜鸟,网上看了很多例子关于scene加载目前有两种(1)Scene.getTopLayer().addEntity(mySprite)
(2) scene.attachChild(mSprite);
第二种不知道为什么没有此方法,Andengine 的API我看过了 确实没有attachChild方法我也很郁闷,请大虾解释下。package com.waken;import org.anddev.andengine.engine.Engine;import org.anddev.andengine.engine.camera.Camera;import org.anddev.andengine.engine.options.EngineOptions;import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation;import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;import org.anddev.andengine.entity.scene.Scene;import org.anddev.andengine.entity.shape.modifier.LoopShapeModifier;import org.anddev.andengine.entity.shape.modifier.RotationModifier;import org.anddev.andengine.entity.shape.modifier.SequenceShapeModifier;import org.anddev.andengine.entity.sprite.Sprite;import org.anddev.andengine.entity.util.FPSLogger;import org.anddev.andengine.opengl.texture.Texture;import org.anddev.andengine.opengl.texture.TextureOptions;import org.anddev.andengine.opengl.texture.region.TextureRegion;import org.anddev.andengine.opengl.texture.region.TextureRegionFactory;import org.anddev.andengine.ui.activity.BaseGameActivity;/*中心旋转精灵*/public class Main3 extends BaseGameActivity { @Override public void onLoadComplete() { // TODO Auto-generated method stub } /*竖屏*/ private static final int CAMERA_WIDTH=320;//宽 private static final int CAMERA_HEIGHT=480;//高 private Camera myCamera=null; private TextureRegion myTextureRegion=null; @Override public Engine onLoadEngine() { myCamera=new Camera(0,0,CAMERA_WIDTH,CAMERA_HEIGHT);//相机 //分辨率 RatioResolutionPolicy myRatioResolutionPolicy=new RatioResolutionPolicy(CAMERA_WIDTH,CAMERA_HEIGHT); //引擎设置 EngineOptions myEngineOptions=new EngineOptions(true,ScreenOrientation.PORTRAIT,myRatioResolutionPolicy,myCamera); Engine myEngine=new Engine(myEngineOptions); return myEngine; } @Override public void onLoadResources() { //纹理 Texture myTexture=new Texture(64,64,TextureOptions.DEFAULT); //图片路径 myTextureRegion=TextureRegionFactory.createFromAsset(myTexture, this, "gfx/face_box.png",0,0); getEngine().getTextureManager().loadTexture(myTexture);//加载 } @Override public Scene onLoadScene() { getEngine().registerUpdateHandler(new FPSLogger());//在log中显示FPS数 final Scene myScene=new Scene(1); /*中心坐标*/ final int X=(CAMERA_WIDTH-myTextureRegion.getWidth())/2; final int Y=(CAMERA_HEIGHT-myTextureRegion.getHeight())/2; final Sprite mySprite=new Sprite(X,Y,myTextureRegion);//建立精灵类 //循环形状修改 final LoopShapeModifier shapeModifier =new LoopShapeModifier( new SequenceShapeModifier( new RotationModifier(30, 0, 360),//以30毫秒速度顺时针旋转(0-360) new RotationModifier(5, 360, 0)//以5毫秒的速度逆时针旋转(360-0) ) ); mySprite.addShapeModifier(shapeModifier); myScene.getTopLayer().addEntity(mySprite);//只能用这个 return myScene; }}
(2) scene.attachChild(mSprite);
第二种不知道为什么没有此方法,Andengine 的API我看过了 确实没有attachChild方法我也很郁闷,请大虾解释下。package com.waken;import org.anddev.andengine.engine.Engine;import org.anddev.andengine.engine.camera.Camera;import org.anddev.andengine.engine.options.EngineOptions;import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation;import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;import org.anddev.andengine.entity.scene.Scene;import org.anddev.andengine.entity.shape.modifier.LoopShapeModifier;import org.anddev.andengine.entity.shape.modifier.RotationModifier;import org.anddev.andengine.entity.shape.modifier.SequenceShapeModifier;import org.anddev.andengine.entity.sprite.Sprite;import org.anddev.andengine.entity.util.FPSLogger;import org.anddev.andengine.opengl.texture.Texture;import org.anddev.andengine.opengl.texture.TextureOptions;import org.anddev.andengine.opengl.texture.region.TextureRegion;import org.anddev.andengine.opengl.texture.region.TextureRegionFactory;import org.anddev.andengine.ui.activity.BaseGameActivity;/*中心旋转精灵*/public class Main3 extends BaseGameActivity { @Override public void onLoadComplete() { // TODO Auto-generated method stub } /*竖屏*/ private static final int CAMERA_WIDTH=320;//宽 private static final int CAMERA_HEIGHT=480;//高 private Camera myCamera=null; private TextureRegion myTextureRegion=null; @Override public Engine onLoadEngine() { myCamera=new Camera(0,0,CAMERA_WIDTH,CAMERA_HEIGHT);//相机 //分辨率 RatioResolutionPolicy myRatioResolutionPolicy=new RatioResolutionPolicy(CAMERA_WIDTH,CAMERA_HEIGHT); //引擎设置 EngineOptions myEngineOptions=new EngineOptions(true,ScreenOrientation.PORTRAIT,myRatioResolutionPolicy,myCamera); Engine myEngine=new Engine(myEngineOptions); return myEngine; } @Override public void onLoadResources() { //纹理 Texture myTexture=new Texture(64,64,TextureOptions.DEFAULT); //图片路径 myTextureRegion=TextureRegionFactory.createFromAsset(myTexture, this, "gfx/face_box.png",0,0); getEngine().getTextureManager().loadTexture(myTexture);//加载 } @Override public Scene onLoadScene() { getEngine().registerUpdateHandler(new FPSLogger());//在log中显示FPS数 final Scene myScene=new Scene(1); /*中心坐标*/ final int X=(CAMERA_WIDTH-myTextureRegion.getWidth())/2; final int Y=(CAMERA_HEIGHT-myTextureRegion.getHeight())/2; final Sprite mySprite=new Sprite(X,Y,myTextureRegion);//建立精灵类 //循环形状修改 final LoopShapeModifier shapeModifier =new LoopShapeModifier( new SequenceShapeModifier( new RotationModifier(30, 0, 360),//以30毫秒速度顺时针旋转(0-360) new RotationModifier(5, 360, 0)//以5毫秒的速度逆时针旋转(360-0) ) ); mySprite.addShapeModifier(shapeModifier); myScene.getTopLayer().addEntity(mySprite);//只能用这个 return myScene; }}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货