blob: 048c136f391b9f5898f37791ee284697c00f613f [file] [log] [blame]
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.replica.replicaisland;
/**
* A game component that implements gravity. Adding this component to a game object will cause
* it to be pulled down towards the ground.
*/
public class GravityComponent extends GameComponent {
private Vector2 mGravity;
private Vector2 mScaledGravity;
private static final Vector2 sDefaultGravity = new Vector2(0.0f, -400.0f);
public GravityComponent() {
super();
mGravity = new Vector2(sDefaultGravity);
mScaledGravity = new Vector2();
setPhase(ComponentPhases.PHYSICS.ordinal());
}
@Override
public void reset() {
mGravity.set(sDefaultGravity);
}
@Override
public void update(float timeDelta, BaseObject parent) {
mScaledGravity.set(mGravity);
mScaledGravity.multiply(timeDelta);
((GameObject) parent).getVelocity().add(mScaledGravity);
}
public Vector2 getGravity() {
return mGravity;
}
public void setGravityMultiplier(float multiplier) {
mGravity.set(sDefaultGravity);
mGravity.multiply(multiplier);
}
}