Android Open Source - Tanks Collision Manager From Project Back to project page Tanks .
License The source code is released under:
MIT License
If you think the Android project Tanks 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.ThirtyNineEighty.Game.Collisions;
/ * w w w . j a v a 2 s . c o m * /
import com.ThirtyNineEighty.Game.Gameplay.Characteristics.Characteristic;
import com.ThirtyNineEighty.Game.Gameplay.GameObject;
import com.ThirtyNineEighty.Game.IEngineObject;
import com.ThirtyNineEighty.Helpers.Vector3;
import com.ThirtyNineEighty.System.GameContext;
public class CollisionManager
{
private final Iterable<IEngineObject> worldObjects;
public CollisionManager(Iterable<IEngineObject> objects)
{
worldObjects = objects;
}
public void move(GameObject object)
{
Characteristic c = object.getCharacteristics();
object.onMoved(c.getSpeed() * GameContext.getDelta());
resolve(object);
}
public void move(IEngineObject object, float length)
{
object.onMoved(length);
resolve(object);
}
public void move(IEngineObject object, Vector3 vector, float length)
{
object.onMoved(vector, length);
resolve(object);
}
public void rotate(IEngineObject object, Vector3 angles)
{
object.onRotates(angles);
resolve(object);
}
private void resolve(IEngineObject object)
{
for (IEngineObject current : worldObjects)
{
if (object == current)
continue ;
ICollidable firstPh = object.getCollidable();
ICollidable secondPh = current.getCollidable();
if (firstPh.getRadius() + secondPh.getRadius() < getLength(object, current))
continue ;
Collision3D collision = new Collision3D(firstPh, secondPh);
if (collision.isCollide())
{
object.onCollide(current);
object.onMoved(collision.getMTV(), collision.getMTVLength());
}
}
}
private float getLength(IEngineObject one, IEngineObject two)
{
Vector3 positionOne = one.getPosition();
Vector3 positionTwo = two.getPosition();
Vector3 lengthVector = positionOne.getSubtract(positionTwo);
return lengthVector.getLength();
}
}
Java Source Code List com.ThirtyNineEighty.Game.EngineObject.java com.ThirtyNineEighty.Game.IEngineObject.java com.ThirtyNineEighty.Game.Collisions.Collidable.java com.ThirtyNineEighty.Game.Collisions.Collision2D.java com.ThirtyNineEighty.Game.Collisions.Collision3D.java com.ThirtyNineEighty.Game.Collisions.CollisionManager.java com.ThirtyNineEighty.Game.Collisions.Collision.java com.ThirtyNineEighty.Game.Collisions.ICollidable.java com.ThirtyNineEighty.Game.Gameplay.Bullet.java com.ThirtyNineEighty.Game.Gameplay.GameObject.java com.ThirtyNineEighty.Game.Gameplay.Tank.java com.ThirtyNineEighty.Game.Gameplay.Characteristics.CharacteristicFactory.java com.ThirtyNineEighty.Game.Gameplay.Characteristics.Characteristic.java com.ThirtyNineEighty.Game.Gameplay.Characteristics.Upgrade.java com.ThirtyNineEighty.Game.Menu.BaseMenu.java com.ThirtyNineEighty.Game.Menu.GameMenu.java com.ThirtyNineEighty.Game.Menu.IMenu.java com.ThirtyNineEighty.Game.Menu.Controls.Button.java com.ThirtyNineEighty.Game.Menu.Controls.IControl.java com.ThirtyNineEighty.Game.Worlds.GameWorld.java com.ThirtyNineEighty.Game.Worlds.IWorld.java com.ThirtyNineEighty.Helpers.Plane.java com.ThirtyNineEighty.Helpers.Vector2.java com.ThirtyNineEighty.Helpers.Vector3.java com.ThirtyNineEighty.Helpers.VectorUtils.java com.ThirtyNineEighty.Helpers.Vector.java com.ThirtyNineEighty.Renderable.Renderable.java com.ThirtyNineEighty.Renderable.Shader2D.java com.ThirtyNineEighty.Renderable.Shader3D.java com.ThirtyNineEighty.Renderable.Shader.java com.ThirtyNineEighty.Renderable.Renderable2D.I2DRenderable.java com.ThirtyNineEighty.Renderable.Renderable2D.Label.java com.ThirtyNineEighty.Renderable.Renderable2D.Sprite.java com.ThirtyNineEighty.Renderable.Renderable3D.I3DRenderable.java com.ThirtyNineEighty.Renderable.Renderable3D.Model3D.java com.ThirtyNineEighty.System.ConfigChooser.java com.ThirtyNineEighty.System.Content.java com.ThirtyNineEighty.System.GameActivity.java com.ThirtyNineEighty.System.GameContext.java com.ThirtyNineEighty.System.IContent.java com.ThirtyNineEighty.System.ISubprogram.java