diff --git a/src/main/java/cactusServer/entities/Bullet.java b/src/main/java/cactusServer/entities/Bullet.java index 5c236cf..021c408 100644 --- a/src/main/java/cactusServer/entities/Bullet.java +++ b/src/main/java/cactusServer/entities/Bullet.java @@ -3,11 +3,8 @@ import org.ntlab.radishforandroidstudio.framework.model3D.Object3D; import org.ntlab.radishforandroidstudio.framework.model3D.Position3D; import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D; -import org.ntlab.radishforandroidstudio.java3d.Box; -import org.ntlab.radishforandroidstudio.java3d.Primitive; import cactusServer.models.BulletModelManager; -import cactusServer.models.CharacterModelManager; public class Bullet extends Entity3D { private String playerID; @@ -19,11 +16,11 @@ } public Bullet(String playerID, Position3D position, Quaternion3D angle) { - this.playerID = playerID; - this.position = position; - this.angle = angle; Object3D body = BulletModelManager.getInstance().getBulletModel(0).createObject(); // ���f��ID�͉���0���w�� setPlaceable(body); + setPlayerID(playerID); + setPosition(position); + setAngle(angle); } public String getPlayerID() { @@ -42,12 +39,18 @@ this.playerID = playerID; } - public void setPosition(Position3D positon) { - this.position = positon; + public void setPosition(Position3D position) { + this.position = position; + if (this.placeable != null) { + ((Object3D)this.placeable.getBody()).setPosition(position); + } } public void setAngle(Quaternion3D angle) { this.angle = angle; + if (this.placeable != null) { + ((Object3D)this.placeable.getBody()).apply(angle, false); + } } public void update(Position3D position, Quaternion3D angle) { diff --git a/src/main/java/cactusServer/entities/Entity3D.java b/src/main/java/cactusServer/entities/Entity3D.java index 8c78998..79bb48c 100644 --- a/src/main/java/cactusServer/entities/Entity3D.java +++ b/src/main/java/cactusServer/entities/Entity3D.java @@ -5,7 +5,7 @@ import net.arnx.jsonic.JSONHint; public abstract class Entity3D extends Entity { - private Placeable placeable; + protected Placeable placeable; protected Entity3D() { // JSONDecode���̌Ăяo���p diff --git a/src/main/java/cactusServer/entities/Player.java b/src/main/java/cactusServer/entities/Player.java index 8cfa5d0..d6cce3f 100644 --- a/src/main/java/cactusServer/entities/Player.java +++ b/src/main/java/cactusServer/entities/Player.java @@ -46,18 +46,14 @@ setEmoteState(new EmoteState()); } Character character = getCharacter(); - readCharacterData(character); initPlaceable(character.getModelID()); + readCharacterData(character); } private void initPlaceable(int modelID) { // ����Ȋ����œ��Y�R���X�g���N�^�̍Ō��placeable�̒������s�� Object3D body = CharacterModelManager.getInstance().getCharacterModel(modelID).createObject(); setPlaceable(new OvergroundActor(body, null)); - // ��������Instance������Universe��placeable��z�u���� - String[] instanceURISplit = instanceID.split("/"); // �c�c/instances/{instanceId} - String instanceId = instanceURISplit[instanceURISplit.length - 1]; - Instances.getInstance().getInstance(instanceId).getUniverse().place(this.getPlaceable()); setObject(body); } @@ -113,13 +109,17 @@ } public void setPosition(Position3D position) { - this.position = position; - if(getPlaceable() != null)((Object3D) getPlaceable().getBody()).setPosition(position); + this.position = position; + if (this.placeable != null) { + ((Object3D)this.placeable.getBody()).setPosition(position); + } } public void setAngle(Quaternion3D angle) { - this.angle = angle; - if(getPlaceable() != null)((Object3D) getPlaceable().getBody()).apply(angle, false); + this.angle = angle; + if (this.placeable != null) { + ((Object3D)this.placeable.getBody()).apply(angle, false); + } } public void setCameraState(CameraState cameraState) { @@ -186,8 +186,8 @@ writeCharacterData(); setCharacterID(characterID); Character character = getCharacter(); - readCharacterData(character); initPlaceable(character.getModelID()); + readCharacterData(character); } public void destroy() { diff --git a/src/main/java/cactusServer/models/CollisionManager.java b/src/main/java/cactusServer/models/CollisionManager.java index a5821c8..cdc3bde 100644 --- a/src/main/java/cactusServer/models/CollisionManager.java +++ b/src/main/java/cactusServer/models/CollisionManager.java @@ -123,9 +123,9 @@ // Player(����������)�ƒe�������������̏��������� } // Player(�������܂�)�ɓ��������e������ - // bulletEntryIt.remove(); - // instance.getUniverse().displace(bullet.getPlaceable()); - // System.out.println(bulletId + "�폜"); + bulletEntryIt.remove(); + instance.getUniverse().displace(bullet.getPlaceable()); + System.out.println(bulletId + "�폜"); return true; } } @@ -136,9 +136,9 @@ Bullet bullet, Iterator> bulletEntryIt) { for (MovableObject object : instance.getObjects().values()) { if (isCollision(bullet, object)) { - // bulletEntryIt.remove(); - // instance.getUniverse().displace(bullet.getPlaceable()); - // System.out.println(bulletId + "�폜"); + bulletEntryIt.remove(); + instance.getUniverse().displace(bullet.getPlaceable()); + System.out.println(bulletId + "�폜"); return true; } } diff --git a/src/main/java/cactusServer/models/Instances.java b/src/main/java/cactusServer/models/Instances.java index 20eab75..2c3613d 100644 --- a/src/main/java/cactusServer/models/Instances.java +++ b/src/main/java/cactusServer/models/Instances.java @@ -56,6 +56,7 @@ RandomStringGenerator.ALPHA_NUMERIC, playerMap.keySet()); Player player = new Player(instanceID, characterID, cameraState, animationClassToStart); playerMap.put(id, player); + instanceMap.get(instanceID).getUniverse().place(player.getPlaceable()); HashMap returnedMap = new HashMap<>(); returnedMap.put(id, player); return returnedMap; diff --git a/src/main/java/cactusServer/utils/App.java b/src/main/java/cactusServer/utils/App.java index 8b68c82..dded3cb 100644 --- a/src/main/java/cactusServer/utils/App.java +++ b/src/main/java/cactusServer/utils/App.java @@ -94,10 +94,12 @@ Instances.getInstance().getInstance("test1").createObject(new Position3D(0, 0, 0), new Velocity3D(), new AngularVelocity3D(), new Quaternion3D(), new Attribute(true, 1), 0); // �_�~�[�o���b�g - Instances.getInstance().getInstance("test1").createBullet("player1", "testBulletId1", new Position3D(), + Instances.getInstance().getInstance("test1").createBullet("player1", "testBulletId1", new Position3D(300, 300, 300), new Quaternion3D()); Instances.getInstance().getInstance("test1").createBullet("player1", "testBulletId2", new Position3D(), new Quaternion3D()); + Instances.getInstance().getInstance("test1").createBullet("player1", "testBulletId3", new Position3D(), + new Quaternion3D()); // // �m�F�p // String player1Encode = JSON.encode(player1, true);