@Override
@SuppressWarnings("static-access")
public Scene onLoadScene() {
mScene = new Scene();
this.mAccelerationInitializer = new AccelerationInitializer(300, 0, 0, 0);
//this.mVelocityInitializer = new VelocityInitializer(50, 0, 0, 0);
//add graphics
this.mPhysicsWorld = new PhysicsWorld(new Vector2(0, SensorManager.GRAVITY_EARTH), false);
final Shape ground = new Rectangle(0, CAMERA_HEIGHT +2, CAMERA_WIDTH -2, 2);
final Shape roof = new Rectangle(0, -50, CAMERA_WIDTH, 2);
final Shape left = new Rectangle(-60, 0, 2, CAMERA_HEIGHT);
final Shape right = new Rectangle(CAMERA_WIDTH +60, 0, 2, CAMERA_HEIGHT);
//x, y ,width, length
final Shape leftrim = new Rectangle( 183, 523, 1, 1);
final Shape rightrim = new Rectangle( 265, 523, 1, 1);
final Shape pole = new Rectangle( 210, 585, 30, 200);
final Shape rightnet = new Rectangle( 202, 575, 45, 10);
final FixtureDef wallFixtureDef = PhysicsFactory.createFixtureDef(1, 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);
final FixtureDef rimFixtureDef = PhysicsFactory.createFixtureDef(1, 0.5f, 10f);
PhysicsFactory.createBoxBody(this.mPhysicsWorld, rightrim, BodyType.StaticBody, rimFixtureDef);
PhysicsFactory.createBoxBody(this.mPhysicsWorld, leftrim, BodyType.StaticBody, rimFixtureDef);
PhysicsFactory.createBoxBody(this.mPhysicsWorld, rightnet, BodyType.StaticBody, wallFixtureDef);
PhysicsFactory.createBoxBody(this.mPhysicsWorld, pole, BodyType.StaticBody, wallFixtureDef);
final Sprite face;
final Body body;
//1st= , 2nd is bounce, 3rd is friction?
final FixtureDef spriteFixtureDef = PhysicsFactory.createFixtureDef(40, 0.0f, 5.0f);
face = new Sprite(200, 50, this.mFace){
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
int eventAction = pSceneTouchEvent.getAction();
switch (eventAction) {
case TouchEvent.ACTION_DOWN:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(android.net.Uri.parse("http://www.google.com"));
startActivity(intent);
break;
case TouchEvent.ACTION_MOVE:
break;
case TouchEvent.ACTION_UP:
break;
}
return true;
}
};
//final FixtureDef spriteFixtureDef = PhysicsFactory.createFixtureDef(1, 0.5f, 0.5f);
body = PhysicsFactory.createCircleBody(this.mPhysicsWorld, face, BodyType.DynamicBody, spriteFixtureDef);
this.mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(face, body, true, true));
mScene.attachChild(ground);
mScene.attachChild(roof);
mScene.attachChild(left);
mScene.attachChild(right);
mScene.attachChild(rightrim);
mScene.attachChild(leftrim);
mScene.attachChild(rightnet);
mScene.attachChild(pole);
mBackgroundSprite = new Sprite(0, 0, this.mBackground);
mScene.attachChild(mBackgroundSprite);
mhooppolesprite = new Sprite(180, 520, this.mhooppoletexture);
mScene.attachChild(mhooppolesprite);
mScene.registerUpdateHandler(this.mPhysicsWorld);
/*I PUT IT HERE AND CHANGED IT TO MAKE SENSE WITH MY CODE BUT COULDNT GET IT TO WORK... I GOT IT TO COMPILE BUT NOTHING HAPPENED WHEN I TOUCHED THE SPRITE.
*/
mScene.registerTouchArea(face);
mScene.setTouchAreaBindingEnabled(true);
this.mScene.attachChild(face);
}
sensorManager = (SensorManager) this.getSystemService(this.SENSOR_SERVICE);
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), sensorManager.SENSOR_DELAY_GAME);
this.mEngine.registerUpdateHandler(new IUpdateHandler() {
@Override
public void onUpdate(float pSecondsElapsed) {
updatemSpritePosition();
}
@Override
public void reset() {
// TODO Auto-generated method stub
}
});
return mScene;
}