collisionMoveを実装
オブジェクト同士の判定を追加
1 parent e8e8b59 commit 75ecb52a6feda27dd8b4ee3bb867012ef687a3c8
y-ota authored on 11 Oct 2018
Showing 1 changed file
View
41
src/main/java/cactusServer/models/CollisionManager.java
import cactusServer.entities.Player;
 
public class CollisionManager {
private static CollisionManager theInstance;
private List<CollisionResult> result;
private HashMap<String, Instance> instances;
 
private CollisionManager() {
result = new ArrayList<CollisionResult>();
instances = Instances.getInstance().getInstances();
}
 
public static CollisionManager getCollision() {
}
return theInstance;
}
 
public List<CollisionResult> getResult() {
return result;
}
 
public void collisionRun(long interval) {
for (String instanceId : instances.keySet()) {
Instance instance = Instances.getInstance().getInstance(instanceId);
instance.getUniverse().update(interval);
result.clear();
for (Object object : instance.getObjects().values()) {
for (Player player : Instances.getInstance().getPlayers(instanceId).values()) {
result.add(PhysicsUtility.checkCollision(player.getObject(), "",object.getObject(), ""));
// System.out.println(result.get(result.size()-1).length);
// objectmove(instance, object, character);
collisionMove(object, player);
}
for(Object object2 : instance.getObjects().values()) {
if(!object.equals(object2)) {
collisionMove(object, object2);
}
}
}
}
}
 
public void objectmove(Instance instance, Object object, Character character) {
int size = result.size() - 1;
CollisionResult current = result.get(size);
Position3D position = object.getPosition();
position.setX(position.getX() + current.length * current.normal.x);
position.setY(position.getY() + current.length * current.normal.y);
position.setZ(position.getZ() + current.length * current.normal.z);
public void collisionMove(Object object, Player player) {
CollisionResult result;
result = PhysicsUtility.checkCollision(player.getObject(), "", object.getObject(), "");
if (result != null) {
 
}
}
public void collisionMove(Object object1,Object object2) {
CollisionResult result;
result = PhysicsUtility.checkCollision(object1.getObject(), "", object2.getObject(), "");
if (result != null) {
 
}
}
}