Guest User

Untitled

a guest
Feb 13th, 2012
85
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import org.anddev.andengine.engine.Engine;
  2. import org.anddev.andengine.engine.camera.Camera;
  3. import org.anddev.andengine.engine.handler.IUpdateHandler;
  4. import org.anddev.andengine.engine.options.EngineOptions;
  5. import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation;
  6. import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
  7. import org.anddev.andengine.entity.scene.Scene;
  8. import org.anddev.andengine.entity.scene.background.ColorBackground;
  9. import org.anddev.andengine.entity.sprite.Sprite;
  10. import org.anddev.andengine.entity.util.FPSLogger;
  11. import org.anddev.andengine.opengl.texture.TextureOptions;
  12. import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlas;
  13. import org.anddev.andengine.opengl.texture.atlas.bitmap.BitmapTextureAtlasTextureRegionFactory;
  14. import org.anddev.andengine.opengl.texture.region.TextureRegion;
  15. import org.anddev.andengine.ui.activity.BaseGameActivity;
  16.  
  17. import android.hardware.Sensor;
  18. import android.hardware.SensorEvent;
  19. import android.hardware.SensorEventListener;
  20. import android.hardware.SensorManager;
  21.  
  22. public class MoveSprite extends BaseGameActivity implements SensorEventListener {
  23.  
  24.     // ===========================================================
  25.     // Constants
  26.     // ===========================================================
  27.  
  28.     private static final int CAMERA_WIDTH = 800;
  29.     private static final int CAMERA_HEIGHT = 480;
  30.  
  31.     // ===========================================================
  32.     // Fields
  33.     // ===========================================================
  34.  
  35.     private Sprite sprite;
  36.     private Camera mCamera;
  37.     private BitmapTextureAtlas mTexture;
  38.     private TextureRegion mSpriteTextureRegion;
  39.     private SensorManager sensorManager;
  40.  
  41.     private int accellerometerSpeedX;
  42.     private int accellerometerSpeedY;
  43.     private int sX, sY; // Sprite coordinates
  44.  
  45.     // ===========================================================
  46.     // Constructors
  47.     // ===========================================================
  48.  
  49.     // ===========================================================
  50.     // Getter & Setter
  51.     // ===========================================================
  52.  
  53.     // ===========================================================
  54.     // Methods for/from SuperClass/Interfaces
  55.     // ===========================================================
  56.  
  57.     public Engine onLoadEngine() {
  58.         this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
  59.         return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE,
  60.                 new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT),
  61.                 this.mCamera));
  62.     }
  63.  
  64.     public void onLoadResources() {
  65.         this.mTexture = new BitmapTextureAtlas(32, 32,
  66.                 TextureOptions.BILINEAR_PREMULTIPLYALPHA);
  67.         this.mSpriteTextureRegion = BitmapTextureAtlasTextureRegionFactory
  68.                 .createFromAsset(this.mTexture, this, "gfx/face_box.png", 0, 0);
  69.  
  70.         this.mEngine.getTextureManager().loadTexture(this.mTexture);
  71.     }
  72.  
  73.     @SuppressWarnings("static-access")
  74.     public Scene onLoadScene() {
  75.         sensorManager = (SensorManager) this
  76.                 .getSystemService(this.SENSOR_SERVICE);
  77.         sensorManager.registerListener(this, sensorManager
  78.                 .getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
  79.                 sensorManager.SENSOR_DELAY_GAME);
  80.  
  81.         this.mEngine.registerUpdateHandler(new FPSLogger());
  82.         this.mEngine.registerUpdateHandler(new IUpdateHandler() {
  83.             public void onUpdate(float pSecondsElapsed) {
  84.                 updateSpritePosition();
  85.             }
  86.  
  87.             public void reset() {
  88.                 // TODO Auto-generated method stub
  89.             }
  90.         });
  91.  
  92.         final Scene scene = new Scene();
  93.         scene.setBackground(new ColorBackground(0.2f, 0.3f, 0.4f));
  94.  
  95.         sX = (CAMERA_WIDTH - this.mSpriteTextureRegion.getWidth()) / 2;
  96.         sY = (CAMERA_HEIGHT - this.mSpriteTextureRegion.getHeight()) / 2;
  97.  
  98.         sprite = new Sprite(sX, sY, this.mSpriteTextureRegion);
  99.         sprite.setScale(1);
  100.         scene.attachChild(sprite);
  101.  
  102.         return scene;
  103.     }
  104.  
  105.     public void onLoadComplete() {
  106.  
  107.     }
  108.  
  109.     public void onSensorChanged(SensorEvent event) {
  110.         synchronized (this) {
  111.             switch (event.sensor.getType()) {
  112.             case Sensor.TYPE_ACCELEROMETER:
  113.                 accellerometerSpeedX = (int) event.values[1];
  114.                 accellerometerSpeedY = (int) event.values[0];
  115.                 break;
  116.             }
  117.         }
  118.     }
  119.  
  120.     public void onAccuracyChanged(Sensor sensor, int accuracy) {
  121.         //
  122.     }
  123.  
  124.     // ===========================================================
  125.     // Methods
  126.     // ===========================================================
  127.  
  128.     private void updateSpritePosition() {
  129.         if ((accellerometerSpeedX != 0) || (accellerometerSpeedY != 0)) {
  130.             // Set the Boundary limits
  131.             int tL = 0;
  132.             int lL = 0;
  133.             int rL = CAMERA_WIDTH - (int) sprite.getWidth();
  134.             int bL = CAMERA_HEIGHT - (int) sprite.getHeight();
  135.  
  136.             // Calculate New X,Y Coordinates within Limits
  137.             if (sX >= lL)
  138.                 sX += accellerometerSpeedX;
  139.             else
  140.                 sX = lL;
  141.             if (sX <= rL)
  142.                 sX += accellerometerSpeedX;
  143.             else
  144.                 sX = rL;
  145.             if (sY >= tL)
  146.                 sY += accellerometerSpeedY;
  147.             else
  148.                 sY = tL;
  149.             if (sY <= bL)
  150.                 sY += accellerometerSpeedY;
  151.             else
  152.                 sY = bL;
  153.  
  154.             // Double Check That New X,Y Coordinates are within Limits
  155.             if (sX < lL)
  156.                 sX = lL;
  157.             else if (sX > rL)
  158.                 sX = rL;
  159.             if (sY < tL)
  160.                 sY = tL;
  161.             else if (sY > bL)
  162.                 sY = bL;
  163.  
  164.             sprite.setPosition(sX, sY);
  165.         }
  166.     }
  167.  
  168.     // ===========================================================
  169.     // Inner and Anonymous Classes
  170.     // ===========================================================
  171. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×