Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package android.jogo.aula07;
- import org.anddev.andengine.engine.Engine;
- import org.anddev.andengine.engine.camera.Camera;
- import org.anddev.andengine.engine.handler.timer.TimerHandler;
- 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.util.FPSLogger;
- import org.anddev.andengine.extension.physics.box2d.PhysicsConnector;
- import org.anddev.andengine.extension.physics.box2d.PhysicsFactory;
- import org.anddev.andengine.extension.physics.box2d.PhysicsWorld;
- import org.anddev.andengine.sensor.accelerometer.AccelerometerData;
- import org.anddev.andengine.sensor.accelerometer.IAccelerometerListener;
- import org.anddev.andengine.ui.activity.BaseGameActivity;
- import org.anddev.andengine.util.MathUtils;
- import com.badlogic.gdx.math.Vector2;
- import com.badlogic.gdx.physics.box2d.Body;
- import com.badlogic.gdx.physics.box2d.FixtureDef;
- import com.badlogic.gdx.physics.box2d.BodyDef.BodyType;
- import android.app.Activity;
- import android.graphics.DrawFilter;
- import android.graphics.drawable.Drawable;
- import android.os.Bundle;
- import android.util.DisplayMetrics;
- public class Jogo extends BaseGameActivity implements IAccelerometerListener {
- private PhysicsWorld w;
- private int camera_width;
- private int camera_height;
- private Camera c;
- private Rectangle ball, ball2, ball3;
- private int incx, incy;
- @Override
- public Engine onLoadEngine() {
- DisplayMetrics dm = new DisplayMetrics();
- getWindowManager().getDefaultDisplay().getMetrics(dm);
- camera_width = dm.widthPixels;
- camera_height = dm.heightPixels;
- c = new Camera(0, 0, camera_width, camera_height);
- return new Engine(new EngineOptions(true, ScreenOrientation.PORTRAIT,
- new RatioResolutionPolicy(camera_width, camera_height), c));
- }
- @Override
- public void onLoadResources() {
- this.enableAccelerometerSensor(this);
- }
- @Override
- public Scene onLoadScene() {
- this.mEngine.registerUpdateHandler(new FPSLogger());
- Scene s = new Scene(2);
- Rectangle bottom = new Rectangle(0, camera_height - 1,
- camera_width, 1);
- Rectangle top = new Rectangle(0, 0, camera_width, 1);
- Rectangle left = new Rectangle(0, 0, 1, camera_height);
- Rectangle right = new Rectangle(camera_width - 1, 0, 1,
- camera_height);
- s.getBottomLayer().addEntity(bottom);
- s.getBottomLayer().addEntity(right);
- s.getBottomLayer().addEntity(top);
- s.getBottomLayer().addEntity(left);
- w = new PhysicsWorld(new Vector2(0, 0), false);
- FixtureDef f = PhysicsFactory.createFixtureDef(0.7f, 0.3f, 1);
- Body topb = PhysicsFactory.createBoxBody(w, top,
- BodyType.KinematicBody, f);
- Body backb = PhysicsFactory.createBoxBody(w, bottom,
- BodyType.KinematicBody, f);
- Body leftb = PhysicsFactory.createBoxBody(w, right,
- BodyType.KinematicBody, f);
- Body rightb = PhysicsFactory.createBoxBody(w, left,
- BodyType.KinematicBody, f);
- w.registerPhysicsConnector(new PhysicsConnector(top, topb));
- w.registerPhysicsConnector(new PhysicsConnector(bottom, backb));
- w.registerPhysicsConnector(new PhysicsConnector(right, rightb));
- w.registerPhysicsConnector(new PhysicsConnector(left, leftb));
- ball = new Rectangle(0, 0, camera_width * 0.05f, camera_width * 0.05f);
- ball.setPosition((float)((camera_width - ball.getWidth()) / 2 + incx),
- (float)((camera_height - ball.getHeight()) / 2 + incy));
- ball.setColor(1, 1, 1);
- FixtureDef ballf = PhysicsFactory.createFixtureDef(0.8f, 0.2f, 0);
- Body ballB=PhysicsFactory.createBoxBody(w, ball, BodyType.DynamicBody, ballf);
- w.registerPhysicsConnector(new PhysicsConnector(ball, ballB, true,
- true, true, true));
- s.getBottomLayer().addEntity(ball);
- s.registerUpdateHandler(w);
- return s;
- }
- @Override
- public void onLoadComplete() {
- incx++;
- incy++;
- if(incx>=camera_width/2)
- {
- incx=-5;
- }
- if(incy>=camera_height/2)
- {
- incy=-5;
- }
- ball.setPosition((float)((camera_width - ball.getWidth()) / 2 + incx),
- (float)((camera_height - ball.getHeight()) / 2 + incy));
- this.mEngine.unregisterUpdateHandler(ball);
- }
- @Override
- public void onAccelerometerChanged(AccelerometerData pAccelerometerData) {
- w.setGravity(new Vector2(-pAccelerometerData.getX(),pAccelerometerData.getY()));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment