Merge branch 'master' into bullet
# Conflicts:
#	.idea/caches/build_file_checksums.ser
#	app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OwnPlayer.java
#	app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/PlayerFragment.java
#	app/src/main/res/layout/ui_fragment.xml
1 parent 73bf2f2 commit 36ca19c4326d8c7b5c96a5c865f78e971afedc51
s-iwatani authored on 29 Oct 2018
Showing 5 changed files
View
3
■■
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/BulletsManager.java
this.universe = universe;
this.resources = fragment;
}
 
@Override
public void setInstanceId(String id) {
this.instanceId = id;
}
 
*/
@Override
public void update(double interval) {
nextConnectRenaimdTime -= interval;
if (nextConnectRenaimdTime <= 0) {
if (nextConnectRenaimdTime <= 0 && instanceId != null) {
nextConnectRenaimdTime = CONNECT_INTERVAL;
con = new BulletGetConnection(instanceId);
con.setCallBack(this);
con.doGet();
View
11
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/MyBullet.java
public class MyBullet extends Actor implements GameBaseModel, CallBack {
private String instanceId;
private String playerId;
private String uuid;
private BulletGetConnection bulletGetConnection;
private DummyBullet bullet;
final private int INIT_UPDATE_INTERVAL = 100;
private int updateInterval = INIT_UPDATE_INTERVAL;
private boolean isCreatedOnServer = false;
private boolean isWaitCreatingOnServer = false;
private boolean isDelete = false;
 
public MyBullet(Object3D body, Animation3D animation) {
super(body, animation);
@Override
final public void update(double interval) {
progress(interval);
// サーバに弾を作成
if (!isCreatedOnServer && !instanceId.equals("") && !playerId.equals("")) {
if (!isCreatedOnServer && !instanceId.equals("") && !playerId.equals("") && !isWaitCreatingOnServer) {
JSON json = new JSON();
Quaternion3D q = ((Solid3D)(getBody())).getQuaternion();
BulletCreateConnection con = new BulletCreateConnection(instanceId, playerId);
con.setCallBack(this);
con.addFormParam("bulletID", getUuid());
con.addFormParam("position", json.encode(getPosition()));
con.addFormParam("angle", "{ \"x\":" + q.getX() + ", \"y\":" + q.getY() + ", \"z\":" + q.getZ() + ", \"w\":" + q.getW() + "}");
con.doPost();
isWaitCreatingOnServer = true;
System.out.println("create shot uuid:" + getUuid());
}
else if (isCreatedOnServer) {
else if (isCreatedOnServer && !isWaitCreatingOnServer) {
// サーバの弾の情報を更新
updateInterval -= interval;
if (updateInterval <= 0 && isCreatedOnServer) {
JSON json = new JSON();
Quaternion3D q = ((Solid3D)(getBody())).getQuaternion();
updateInterval = INIT_UPDATE_INTERVAL;
BulletUpdateConnection con = new BulletUpdateConnection(instanceId, playerId, getUuid());
con.setCallBack(this);
con.addFormParam("position", json.encode(getPosition()));
con.addFormParam("angle", "{ \"x\":" + q.getX() + ", \"y\":" + q.getY() + ", \"z\":" + q.getZ() + ", \"w\":" + q.getW() + "}");
con.doPut();
}
}
 
@Override
public void onResponse(String response) {
isWaitCreatingOnServer = false;
isCreatedOnServer = true;
}
}
View
47
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OwnBullets.java
import org.ntlab.radishforandroidstudio.framework.model3D.Universe;
import org.ntlab.radishforandroidstudio.framework.subject.BulletShotSubject;
 
import java.util.ArrayList;
import java.util.Iterator;
 
public class OwnBullets implements GameBaseModel, BulletShotListener {
private ArrayList<MyBullet> bullets = new ArrayList<>();
private String playerId;
}
 
@Override
public void update(double interval) {
System.out.println("num of bullets:" + bullets.size());
// for (Iterator<MyBullet> bulletIterator = bullets.iterator(); bulletIterator.hasNext();) {
// MyBullet bullet = bulletIterator.next();
// bullet.update(interval);
//
// // 弾削除
// if (bullet.isDelete()) {
// sendDeleteBulletForServer(bullet);
// bulletIterator.remove();
// }
// }
for (Iterator<MyBullet> bulletIterator = bullets.iterator(); bulletIterator.hasNext();) {
MyBullet bullet = bulletIterator.next();
// 弾削除
if (bullet.isDelete()) {
sendDeleteBulletForServer(bullet);
bulletIterator.remove();
}
}
}
 
public void deleteBullets(ArrayList<String> deletedBullets) {
// for (Iterator<MyBullet> bulletIterator = bullets.iterator(); bulletIterator.hasNext();) {
// MyBullet bullet = bulletIterator.next();
//
// for(String deleteBullet : deletedBullets) { // 弾削除
// if (bullet.getUuid().equals(bullets)) {
// universe.displace(bullet);
// sendDeleteBulletForServer(bullet);
// bulletIterator.remove();
// break;
// }
// }
// }
for (Iterator<MyBullet> bulletIterator = bullets.iterator(); bulletIterator.hasNext();) {
MyBullet bullet = bulletIterator.next();
 
for(String deleteBullet : deletedBullets) { // 弾削除
if (bullet.getUuid().equals(bullets)) {
universe.displace(bullet);
sendDeleteBulletForServer(bullet);
bulletIterator.remove();
break;
}
}
}
}
 
@Override
public void setInstanceId(String id) {
View
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OwnPlayer.java
View
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/PlayerFragment.java