SHARE
TWEET

Untitled

a guest Feb 13th, 2012 71 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
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top