If you think the Android project gameengine listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
package com.garrapeta.gameengine.actor;
/*fromwww.java2s.com*/import android.graphics.PointF;
import com.garrapeta.gameengine.Actor;
import com.garrapeta.gameengine.GameWorld;
/**
* Actor del juego
*
* @author GaRRaPeTa
*/publicabstractclass SimpleActor<T extends GameWorld> extends Actor<T> implements IAtomicActor {
// --------------------------------------------------- Variables
/**
* posicin en el mundo, en las unidades propias del mundo
*/protected PointF mWorldPos;
/**
* Velocidad lineal, expresadas en unidades l?gicas del mundo por
* milisegundo
*/protected PointF mWorldLinearVelocity;
// ----------------------------------------------- Constructores
/**
* Constructor protegido
*/protected SimpleActor(T world) {
this(world, 0, 0, 0);
}
/**
* Constructor
*
* @param worldPosX
* posicin X en el mundo, en las unidades del mundo
* @param worldPosY
* posicin Y en el mundo, en las unidades del mundo
*/public SimpleActor(T world, float worldPosX, float worldPosY) {
this(world, 0, worldPosX, worldPosY);
}
/**
* Constructor
*
* @param worldPosX
* posicin X en el mundo, en las unidades del mundo
* @param worldPosY
* posicin Y en el mundo, en las unidades del mundo
*/public SimpleActor(T world, int zIndex, float worldPosX, float worldPosY) {
super(world, zIndex);
mWorldPos = new PointF();
mWorldLinearVelocity = new PointF();
mWorldPos.x = worldPosX;
mWorldPos.y = worldPosY;
}
// -------------------------------------------mtodos de Actor
@Override
publicvoid processFrame(float frameTime) {
updatePosition(frameTime);
}
// ------------------------------------------- mtodos de IAtomicActor
@Override
public PointF getWorldPos() {
return mWorldPos;
}
@Override
publicvoid setWorldPos(float posX, float posY) {
mWorldPos.x = posX;
mWorldPos.y = posY;
}
@Override
protectedvoid dispose() {
super.dispose();
mWorldPos = null;
mWorldLinearVelocity = null;
}
// -------------------------------------------mtodos propios
publicvoid setLinearVelocity(float xVel, float yVel) {
mWorldLinearVelocity.x = xVel;
mWorldLinearVelocity.y = yVel;
}
/**
* Actualiza la posicin, teniendo en cuenta la velocidad del actor y el
* tiempo transcurrido
*
* @param frameTime
*/publicvoid updatePosition(float frameTime) {
mWorldPos.x += mWorldLinearVelocity.x * (frameTime / 1000);
mWorldPos.y += mWorldLinearVelocity.y * (frameTime / 1000);
}
}