diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index ba255aa..b79c428 100644 --- a/.idea/caches/build_file_checksums.ser +++ b/.idea/caches/build_file_checksums.ser Binary files differ diff --git a/app/build.gradle b/app/build.gradle index ceb0ace..85116da 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,7 +20,7 @@ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } - buildToolsVersion '28.0.2' + buildToolsVersion '28.0.3' compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Bullet.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Bullet.java index 7aab4ae..a67e589 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Bullet.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/Bullet.java @@ -31,13 +31,11 @@ private boolean isDelete = false; public Bullet(Object3D body, Animation3D animation) { - super(new Solid3D(body), animation); - mode = modeOnGround; + super(body, animation); } public Bullet(Solid3D body, Animation3D animation) { super(body, animation); - mode = modeOnGround; } public void initUuid() { @@ -97,23 +95,23 @@ @Override public void update(double interval) { - // サーバに弾を作成 - if (!isCreatedOnServer && !instanceId.equals("") && !playerId.equals("")) { - BulletCreateConnection con = new BulletCreateConnection(instanceId, playerId); - // set parameter - - con.doPost(); - } - - // サーバの弾の情報を更新 - updateInterval -= interval; - if (updateInterval <= 0 && isCreatedOnServer) { - updateInterval = INIT_UPDATE_INTERVAL; - bulletUpdateConnection = new BulletUpdateConnection(instanceId, playerId, uuid); - // set parameter - - bulletUpdateConnection.doPut(); - } +// // サーバに弾を作成 +// if (!isCreatedOnServer && !instanceId.equals("") && !playerId.equals("")) { +// BulletCreateConnection con = new BulletCreateConnection(instanceId, playerId); +// // set parameter +// +// con.doPost(); +// } +// +// // サーバの弾の情報を更新 +// updateInterval -= interval; +// if (updateInterval <= 0 && isCreatedOnServer) { +// updateInterval = INIT_UPDATE_INTERVAL; +// bulletUpdateConnection = new BulletUpdateConnection(instanceId, playerId, uuid); +// // set parameter +// +// bulletUpdateConnection.doPut(); +// } } @Override diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/BulletsManager.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/BulletsManager.java index bfdd37c..0a13873 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/BulletsManager.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/BulletsManager.java @@ -56,10 +56,10 @@ public void update(double interval) { nextConnectRenaimdTime -= interval; if (nextConnectRenaimdTime <= 0) { - nextConnectRenaimdTime = connectInterval; - con = new BulletGetConnection(instanceId); - con.setCallBack(this); - con.doGet(); +// nextConnectRenaimdTime = connectInterval; +// con = new BulletGetConnection(instanceId); +// con.setCallBack(this); +// con.doGet(); } } diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OtherPlayerCharactersModel.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OtherPlayerCharactersModel.java index d80b25b..51403d1 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OtherPlayerCharactersModel.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OtherPlayerCharactersModel.java @@ -4,7 +4,6 @@ import net.arnx.jsonic.TypeReference; import org.ntlab.radishforandroidstudio.cactusClient.connections.PlayersConnection; -import org.ntlab.radishforandroidstudio.framework.gameMain.Actor; import org.ntlab.radishforandroidstudio.framework.gameMain.GameBaseModel; import org.ntlab.radishforandroidstudio.framework.gameMain.RealTime3DFragment; import org.ntlab.radishforandroidstudio.framework.model3D.ModelFactory; @@ -29,7 +28,7 @@ private RealTime3DFragment fragment; private PlayersConnection con; private int nextConnectRenaimdTime = 0; - private int connectInterval = 300; + static final private int CONNECT_INTERVAL = 300; private Map visibleCharacters = new HashMap<>(); private String instanceId; private String playerId; @@ -57,7 +56,7 @@ public void update(double interval) { nextConnectRenaimdTime -= interval; if (nextConnectRenaimdTime <= 0) { - nextConnectRenaimdTime = connectInterval; + nextConnectRenaimdTime = CONNECT_INTERVAL; con = new PlayersConnection(); con.addQueryParam("instanceId", instanceId); con.setCallBack(this); diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OwnBullets.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OwnBullets.java index 8a1fd8f..cb6c02a 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OwnBullets.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OwnBullets.java @@ -10,8 +10,10 @@ import org.ntlab.radishforandroidstudio.framework.model3D.Position3D; import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D; import org.ntlab.radishforandroidstudio.framework.model3D.Universe; +import org.ntlab.radishforandroidstudio.framework.physics.Velocity3D; import org.ntlab.radishforandroidstudio.java3d.Appearance; import org.ntlab.radishforandroidstudio.java3d.Material; +import org.ntlab.radishforandroidstudio.java3d.Vector3d; import java.util.ArrayList; import java.util.Iterator; @@ -51,9 +53,14 @@ e.printStackTrace(); } Bullet b = new Bullet(pochaBody, null); - bullets.add(b); - universe.place(b); - cactusModels.addModel(b); +// b.setPosition(pos); +// +// Vector3d v = new Vector3d(1.f, 0, 0); +// v = v.rotate(angle); +// b.setVelocity(new Velocity3D(v)); +// bullets.add(b); +// universe.place(b); +// cactusModels.addModel(b); } public void sendDeleteBulletForServer(Bullet bullet) { @@ -62,31 +69,32 @@ @Override public void update(double interval) { - for (Iterator bulletIterator = bullets.iterator(); bulletIterator.hasNext();) { - Bullet bullet = bulletIterator.next(); - bullet.update(interval); - - // 弾削除 - if (bullet.isDelete()) { - sendDeleteBulletForServer(bullet); - bulletIterator.remove(); - } - } + System.out.println("num of bullets:" + bullets.size()); +// for (Iterator bulletIterator = bullets.iterator(); bulletIterator.hasNext();) { +// Bullet bullet = bulletIterator.next(); +// bullet.update(interval); +// +// // 弾削除 +// if (bullet.isDelete()) { +// sendDeleteBulletForServer(bullet); +// bulletIterator.remove(); +// } +// } } public void deleteBullets(ArrayList deletedBullets) { - for (Iterator bulletIterator = bullets.iterator(); bulletIterator.hasNext();) { - Bullet bullet = bulletIterator.next(); - - for(String deleteBullet : deletedBullets) { // 弾削除 - if (bullet.getUuid().equals(bullets)) { - universe.displace(bullet); - sendDeleteBulletForServer(bullet); - bulletIterator.remove(); - break; - } - } - } +// for (Iterator bulletIterator = bullets.iterator(); bulletIterator.hasNext();) { +// Bullet bullet = bulletIterator.next(); +// +// for(String deleteBullet : deletedBullets) { // 弾削除 +// if (bullet.getUuid().equals(bullets)) { +// universe.displace(bullet); +// sendDeleteBulletForServer(bullet); +// bulletIterator.remove(); +// break; +// } +// } +// } } @Override diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OwnPlayer.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OwnPlayer.java index 887a8ed..89a2ae5 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OwnPlayer.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OwnPlayer.java @@ -5,6 +5,7 @@ import net.arnx.jsonic.JSON; +import org.ntlab.radishforandroidstudio.cactusClient.Cactus; import org.ntlab.radishforandroidstudio.cactusClient.connections.CharacterConnection; import org.ntlab.radishforandroidstudio.framework.animation.Animation3D; import org.ntlab.radishforandroidstudio.framework.event.PadEvent; @@ -44,6 +45,7 @@ setPlayerId(playerId); setInstanceId(instanceId); bullets = new OwnBullets(resources, universe, instanceId, playerId); + CactusModels.getInstance().addModel(bullets); // キャラクタの作成 Appearance ap1 = new Appearance(); @@ -118,19 +120,19 @@ actor.setVelocity(vel); } + nextConnectRenaimdTime -= interval; + // とりあえず一定時間ごとに打つ if (nextConnectRenaimdTime <= 0) { bullets.createBullet(player.getPosition(), player.getAngle()); } - - nextConnectRenaimdTime -= interval; if (nextConnectRenaimdTime <= 0) { + nextConnectRenaimdTime = connectInterval; sendPlayerInfo(); } } public void sendPlayerInfo() { - nextConnectRenaimdTime = connectInterval; con = new CharacterConnection(playerId); con.setCallBack(this); diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/PlayerFragment.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/PlayerFragment.java index 7a35d90..c590b28 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/PlayerFragment.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/PlayerFragment.java @@ -93,11 +93,11 @@ // プレイヤーの作成とインスタンスIDのセット String playerId = bundle.getString("playerId"); String instanceId = bundle.getString("instanceId"); - bulletsManager.setPlayerId(playerId); player = new OwnPlayer((Player)bundle.getSerializable("player"), getResources(), universe, camera, playerId, instanceId); otherPlayerCharactersModel = new OtherPlayerCharactersModel(this, universe); otherPlayerCharactersModel.setPlayerId(playerId); bulletsManager = new BulletsManager(this.getResources(), universe); + bulletsManager.setPlayerId(playerId); modelManager.addModel(otherPlayerCharactersModel); modelManager.addModel(bulletsManager); modelManager.addModel(player); diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/java3d/Vector3d.java b/app/src/main/java/org/ntlab/radishforandroidstudio/java3d/Vector3d.java index 0ae7a79..faf1595 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/java3d/Vector3d.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/java3d/Vector3d.java @@ -1,5 +1,9 @@ package org.ntlab.radishforandroidstudio.java3d; +import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D; + +import java.util.Vector; + public class Vector3d extends Tuple3d { // コンストラクタ @@ -131,4 +135,18 @@ d = 1.0D; return Math.acos(d); } + + /** + * ベクタを回転させる + * + * @param q + * @return Vector3D 回転後のベクタ + */ + public Vector3d rotate(Quaternion3D q) { + Vector3d v = this.clone(); + Transform3D trans = new Transform3D(); + trans.setRotation(q.getQuat()); + trans.transform(v); + return v; + } } diff --git a/build.gradle b/build.gradle index d9fe839..e062745 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.2.0' + classpath 'com.android.tools.build:gradle:3.2.1' // NOTE: Do not place your application dependencies here; they belong