DarthVictor

Untitled

Apr 18th, 2012
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.54 KB | None | 0 0
  1. package android.jogo.aula07;
  2.  
  3. import org.anddev.andengine.engine.Engine;
  4. import org.anddev.andengine.engine.camera.Camera;
  5. import org.anddev.andengine.engine.handler.timer.TimerHandler;
  6. import org.anddev.andengine.engine.options.EngineOptions;
  7. import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation;
  8. import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
  9. import org.anddev.andengine.entity.primitive.Rectangle;
  10. import org.anddev.andengine.entity.scene.Scene;
  11. import org.anddev.andengine.entity.util.FPSLogger;
  12. import org.anddev.andengine.extension.physics.box2d.PhysicsConnector;
  13. import org.anddev.andengine.extension.physics.box2d.PhysicsFactory;
  14. import org.anddev.andengine.extension.physics.box2d.PhysicsWorld;
  15. import org.anddev.andengine.sensor.accelerometer.AccelerometerData;
  16. import org.anddev.andengine.sensor.accelerometer.IAccelerometerListener;
  17. import org.anddev.andengine.ui.activity.BaseGameActivity;
  18. import org.anddev.andengine.util.MathUtils;
  19.  
  20. import com.badlogic.gdx.math.Vector2;
  21. import com.badlogic.gdx.physics.box2d.Body;
  22. import com.badlogic.gdx.physics.box2d.FixtureDef;
  23. import com.badlogic.gdx.physics.box2d.BodyDef.BodyType;
  24.  
  25. import android.app.Activity;
  26. import android.graphics.DrawFilter;
  27. import android.graphics.drawable.Drawable;
  28. import android.os.Bundle;
  29. import android.util.DisplayMetrics;
  30.  
  31. public class Jogo extends BaseGameActivity implements IAccelerometerListener {
  32.  
  33.     private PhysicsWorld w;
  34.     private int camera_width;
  35.     private int camera_height;
  36.     private Camera c;
  37.     private Rectangle ball, ball2, ball3;
  38.     private int incx, incy;
  39.  
  40.     @Override
  41.     public Engine onLoadEngine() {
  42.         DisplayMetrics dm = new DisplayMetrics();
  43.         getWindowManager().getDefaultDisplay().getMetrics(dm);
  44.         camera_width = dm.widthPixels;
  45.         camera_height = dm.heightPixels;
  46.         c = new Camera(0, 0, camera_width, camera_height);
  47.         return new Engine(new EngineOptions(true, ScreenOrientation.PORTRAIT,
  48.                 new RatioResolutionPolicy(camera_width, camera_height), c));
  49.     }
  50.  
  51.     @Override
  52.     public void onLoadResources() {
  53.         this.enableAccelerometerSensor(this);
  54.  
  55.     }
  56.  
  57.     @Override
  58.     public Scene onLoadScene() {
  59.         this.mEngine.registerUpdateHandler(new FPSLogger());
  60.  
  61.         Scene s = new Scene(2);
  62.        
  63.         Rectangle bottom = new Rectangle(0, camera_height - 1,
  64.                 camera_width, 1);
  65.         Rectangle top = new Rectangle(0, 0, camera_width, 1);
  66.         Rectangle left = new Rectangle(0, 0, 1, camera_height);
  67.         Rectangle right = new Rectangle(camera_width - 1, 0, 1,
  68.                 camera_height);
  69.  
  70.         s.getBottomLayer().addEntity(bottom);
  71.         s.getBottomLayer().addEntity(right);
  72.         s.getBottomLayer().addEntity(top);
  73.         s.getBottomLayer().addEntity(left);
  74.  
  75.        
  76.  
  77.         w = new PhysicsWorld(new Vector2(0, 0), false);
  78.        
  79.        
  80.  
  81.         FixtureDef f = PhysicsFactory.createFixtureDef(0.7f, 0.3f, 1);
  82.  
  83.        
  84.         Body topb = PhysicsFactory.createBoxBody(w, top,
  85.                 BodyType.KinematicBody, f);
  86.         Body backb = PhysicsFactory.createBoxBody(w, bottom,
  87.                 BodyType.KinematicBody, f);
  88.         Body leftb = PhysicsFactory.createBoxBody(w, right,
  89.                 BodyType.KinematicBody, f);
  90.         Body rightb = PhysicsFactory.createBoxBody(w, left,
  91.                 BodyType.KinematicBody, f);
  92.  
  93.        
  94.        
  95.         w.registerPhysicsConnector(new PhysicsConnector(top, topb));
  96.         w.registerPhysicsConnector(new PhysicsConnector(bottom, backb));
  97.         w.registerPhysicsConnector(new PhysicsConnector(right, rightb));
  98.         w.registerPhysicsConnector(new PhysicsConnector(left, leftb));
  99.  
  100.         ball = new Rectangle(0, 0, camera_width * 0.05f, camera_width * 0.05f);
  101.         ball.setPosition((float)((camera_width - ball.getWidth()) / 2 + incx),
  102.                 (float)((camera_height - ball.getHeight()) / 2 + incy));
  103.         ball.setColor(1, 1, 1);
  104.         FixtureDef ballf = PhysicsFactory.createFixtureDef(0.8f, 0.2f, 0);
  105.         Body ballB=PhysicsFactory.createBoxBody(w, ball, BodyType.DynamicBody, ballf);
  106.         w.registerPhysicsConnector(new PhysicsConnector(ball, ballB, true,
  107.                 true, true, true));
  108.  
  109.         s.getBottomLayer().addEntity(ball);
  110.        
  111.    
  112.        
  113.  
  114.        
  115.         s.registerUpdateHandler(w);
  116.  
  117.         return s;
  118.     }
  119.  
  120.     @Override
  121.     public void onLoadComplete() {
  122.         incx++;
  123.         incy++;
  124.         if(incx>=camera_width/2)
  125.         {
  126.             incx=-5;
  127.         }
  128.        
  129.         if(incy>=camera_height/2)
  130.         {
  131.             incy=-5;
  132.         }
  133.         ball.setPosition((float)((camera_width - ball.getWidth()) / 2 + incx),
  134.                 (float)((camera_height - ball.getHeight()) / 2 + incy));
  135.         this.mEngine.unregisterUpdateHandler(ball);
  136.     }
  137.    
  138.  
  139.     @Override
  140.     public void onAccelerometerChanged(AccelerometerData pAccelerometerData) {
  141.         w.setGravity(new Vector2(-pAccelerometerData.getX(),pAccelerometerData.getY()));
  142.        
  143.        
  144.     }
  145.  
  146. }
Advertisement
Add Comment
Please, Sign In to add comment