Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.sacred.andengine;
- import org.anddev.andengine.engine.Engine;
- import org.anddev.andengine.engine.LimitedFPSEngine;
- 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.primitive.Rectangle;
- import org.anddev.andengine.entity.scene.Scene;
- import org.anddev.andengine.entity.scene.Scene.IOnAreaTouchListener;
- import org.anddev.andengine.entity.scene.Scene.IOnSceneTouchListener;
- import org.anddev.andengine.entity.scene.Scene.ITouchArea;
- import org.anddev.andengine.entity.scene.background.ColorBackground;
- import org.anddev.andengine.entity.shape.Shape;
- import org.anddev.andengine.entity.sprite.Sprite;
- import org.anddev.andengine.entity.util.FPSLogger;
- import org.anddev.andengine.extension.physics.box2d.FixedStepPhysicsWorld;
- import org.anddev.andengine.extension.physics.box2d.PhysicsFactory;
- import org.anddev.andengine.extension.physics.box2d.PhysicsWorld;
- import org.anddev.andengine.input.touch.TouchEvent;
- import org.anddev.andengine.ui.activity.BaseGameActivity;
- import com.badlogic.gdx.math.Vector2;
- import com.badlogic.gdx.physics.box2d.FixtureDef;
- import com.badlogic.gdx.physics.box2d.BodyDef.BodyType;
- /**
- * @author Nicolas Gramlich
- * @since 18:47:08 - 19.03.2010
- */ //IAccelerometerListener,
- public class AndEngine extends BaseGameActivity implements IOnSceneTouchListener, IOnAreaTouchListener {
- /* Constants */
- private static final int CAMERA_WIDTH = 480; // 720
- private static final int CAMERA_HEIGHT = 320; // 480
- /* Fields */
- //private Texture mTexture;
- //private TextureRegion tmpTextureRegion;
- // private TextureRegion tmp2TextureRegion;
- private PhysicsWorld mPhysicsWorld;
- //
- // Managers
- private ObjectManager objectManager;
- private TexturesManager texturesManager;
- /* Methods */
- @Override
- public Engine onLoadEngine() {
- final Camera camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
- // LimitedFPSEngine engine = new LimitedFPSEngine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera), 60);
- final EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera);
- engineOptions.getTouchOptions().setRunOnUpdateThread(true);
- return new Engine(engineOptions);
- }
- @Override
- public void onLoadResources() {
- /* initialize texture manager */
- texturesManager = new TexturesManager( this, mEngine);
- }
- @Override
- public Scene onLoadScene() {
- this.mEngine.registerUpdateHandler(new FPSLogger());
- final Scene scene = new Scene(2);
- scene.setBackground(new ColorBackground( 255, 255, 255 ) );
- scene.setOnSceneTouchListener(this);
- // this.mPhysicsWorld = new PhysicsWorld(new Vector2(0, 5), false);
- this.mPhysicsWorld = new FixedStepPhysicsWorld( 30, new Vector2(0, 5 ), false, 3, 2 );
- final Shape ground = new Rectangle(0, CAMERA_HEIGHT - 2, CAMERA_WIDTH, 2);
- final Shape roof = new Rectangle(0, 0, CAMERA_WIDTH, 2);
- final Shape left = new Rectangle(0, 0, 2, CAMERA_HEIGHT);
- final Shape right = new Rectangle(CAMERA_WIDTH - 2, 0, 2, CAMERA_HEIGHT);
- final FixtureDef wallFixtureDef = PhysicsFactory.createFixtureDef(0, 0.5f, 0.5f);
- PhysicsFactory.createBoxBody(this.mPhysicsWorld, ground, BodyType.StaticBody, wallFixtureDef);
- PhysicsFactory.createBoxBody(this.mPhysicsWorld, roof, BodyType.StaticBody, wallFixtureDef);
- PhysicsFactory.createBoxBody(this.mPhysicsWorld, left, BodyType.StaticBody, wallFixtureDef);
- PhysicsFactory.createBoxBody(this.mPhysicsWorld, right, BodyType.StaticBody, wallFixtureDef);
- scene.getBottomLayer().addEntity(ground);
- scene.getBottomLayer().addEntity(roof);
- scene.getBottomLayer().addEntity(left);
- scene.getBottomLayer().addEntity(right);
- scene.registerUpdateHandler(this.mPhysicsWorld);
- scene.setOnAreaTouchListener(this);
- return scene;
- }
- public void onLoadComplete() {
- /* initialize object manager */
- objectManager = new ObjectManager();
- //
- // [] [] []
- // [] [] []
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 100, 296 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 100, 276 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 160, 296 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 160, 276 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 220, 296 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 220, 276 );
- //
- // [ ]
- //
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("w_128x16"), 105, 260 );
- // [ ] [ ]
- // [ ] [ ]
- // [ ] [ ]
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("w_16x128"), 130, 132 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("w_16x128"), 190, 132 );
- //
- // [ ]
- //
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("w_128x16"), 105, 116 );
- //
- //
- //
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 130, 94 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 150, 94 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 170, 94 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 190, 94 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 140, 74 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 160, 74 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 180, 74 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 150, 54 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 170, 54 );
- objectManager.CreateBox( getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), 160, 34 );
- }
- @Override
- public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final ITouchArea pTouchArea, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
- if(pSceneTouchEvent.getAction() == TouchEvent.ACTION_DOWN) {
- objectManager.removeObject((Sprite)pTouchArea, mEngine, mPhysicsWorld );
- return true;
- }
- return false;
- }
- @Override
- public boolean onSceneTouchEvent(final Scene pScene, final TouchEvent pSceneTouchEvent) {
- if(this.mPhysicsWorld != null) {
- if(pSceneTouchEvent.getAction() == TouchEvent.ACTION_DOWN) {
- objectManager.CreateBox( this.getEngine(), mPhysicsWorld, texturesManager.GetTextureRegion("s_20x20"), pSceneTouchEvent.getX(), pSceneTouchEvent.getY());
- return true;
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement