動作しなくなる現象の修正ok
1 parent 8b10371 commit b58805702a5f900739870c481e93bde05018003f
s-iwatani authored on 2 Oct 2018
Showing 4 changed files
View
26
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OtherPlayerCharactersModel.java
private CharactersConnection con;
private int nextConnectRenaimdTime = 0;
private int connectInterval = 300;
private Map<String, Integer> visibleCharacters = new HashMap<>();
private String id;
private String playerId;
 
public OtherPlayerCharactersModel(RealTime3DFragment fragment, Universe universe) {
this.fragment = fragment;
this.universe = universe;
}
 
public void setInstanceId(String id) {
con = new CharactersConnection(id);
con.setCallBack(this);
this.id = id;
}
 
public void setPlayerId(String id) {
playerId = id;
}
 
/**
* キャラクターの状態を更新する
*/
@Override
public void update(double interval) {
nextConnectRenaimdTime -= interval;
if (nextConnectRenaimdTime <= 0 && con != null) {
if (nextConnectRenaimdTime <= 0) {
nextConnectRenaimdTime = connectInterval;
con = new CharactersConnection(id);
con.setCallBack(this);
con.doGet();
// con.doAnything();
}
}
 
@Override
JSON json = new JSON();
Map<String, Map> m = json.decode(response);
for (Map.Entry<String, Map> entry: m.entrySet()) {
visibleCharacters.put(entry.getKey(), 1);
 
ArrayList<Property3D> properties = new ArrayList<>();
Map player = entry.getValue();
 
String[] accountUri = ((String)player.get("accountURI")).split("/");
// 自分自身は無視する
if (accountUri[accountUri.length-1] == playerId) continue;
 
// 情報の取得
Map position = (Map)player.get("position");
Map angle = (Map)player.get("angle");
properties.add(positionProp);
properties.add(quaProp);
 
if (!universe.doHaveObj(entry.getKey())) {
OvergroundActor pocha;
Appearance ap1 = new Appearance();
Material mat = new Material();
mat.setDiffuseColor(0.0f, 0.3f, 1.0f);
mat.setAmbientColor(0.0f, 0.0f, 0.0f);
mat.setShininess(5.0f);
ap1.setMaterial(mat);
 
Object3D pochaBody = null;
Animation3D pochaAnimation = null;
try {
pochaBody = ModelFactory.loadModel(fragment.getResources(), "pocha.stl", ap1).createObject();
pochaBody.scale(10.0);
pochaBody.scale(5.0);
} catch (Exception e) {
e.printStackTrace();
}
OtherPlayerCharacter chara = new OtherPlayerCharacter(pochaBody);
View
61
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OwnPlayer.java
package org.ntlab.radishforandroidstudio.cactusClient.models;
 
import android.content.res.Resources;
import android.view.MotionEvent;
 
import net.arnx.jsonic.JSON;
 
import org.ntlab.radishforandroidstudio.cactusClient.connections.CharacterConnection;
import org.ntlab.radishforandroidstudio.framework.animation.Animation3D;
import org.ntlab.radishforandroidstudio.framework.event.PadEvent;
import org.ntlab.radishforandroidstudio.framework.listener.PadListener;
import org.ntlab.radishforandroidstudio.framework.model3D.ModelFactory;
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.framework.model3D.Universe;
import org.ntlab.radishforandroidstudio.framework.network.CallBack;
import org.ntlab.radishforandroidstudio.framework.physics.Solid3D;
import org.ntlab.radishforandroidstudio.framework.physics.Velocity3D;
import org.ntlab.radishforandroidstudio.framework.view3D.Camera3D;
import org.ntlab.radishforandroidstudio.java3d.Appearance;
import org.ntlab.radishforandroidstudio.java3d.Material;
}
 
@Override
public void update(double interval) {
// updateCamera();
//
// if (isTouched) {
// Velocity3D vel = actor.getVelocity();
// vel.setX(touchX);
// vel.setY(touchY);
// actor.setVelocity(vel);
// }
//
// nextConnectRenaimdTime -= interval;
// if (nextConnectRenaimdTime <= 0 && con != null) {
// nextConnectRenaimdTime = connectInterval;
//
// Quaternion3D q = ((Solid3D)(actor.getBody())).getQuaternion();
// player.setPosition(actor.getPosition());
// player.setQuaternion3D(q);
//
// JSON json = new JSON();
// con.addFormParam("characterID", json.encode(player.getCharacterID()));
// con.addFormParam("cameraState", json.encode(player.getCameraState()));
// con.addFormParam("position", json.encode(player.getPosition()));
// con.addFormParam("animationClassToStart", json.encode(player.getEmoteState()));
// con.addFormParam("angle", "{ \"x\":" + q.getX() + ", \"y\":" + q.getY() + ", \"z\":" + q.getZ() + ", \"w\":" + q.getW() + "}");
// con.doPut();
// }
updateCamera();
 
if (isTouched) {
Velocity3D vel = actor.getVelocity();
vel.setX(touchX);
vel.setY(touchY);
actor.setVelocity(vel);
}
 
nextConnectRenaimdTime -= interval;
if (nextConnectRenaimdTime <= 0) {
nextConnectRenaimdTime = connectInterval;
con = new CharacterConnection(playerId);
con.setCallBack(this);
 
Quaternion3D q = ((Solid3D)(actor.getBody())).getQuaternion();
player.setPosition(actor.getPosition());
player.setQuaternion3D(q);
 
JSON json = new JSON();
con.addFormParam("characterID", json.encode(player.getCharacterID()));
con.addFormParam("cameraState", json.encode(player.getCameraState()));
con.addFormParam("position", json.encode(player.getPosition()));
con.addFormParam("animationClassToStart", json.encode(player.getEmoteState()));
con.addFormParam("angle", "{ \"x\":" + q.getX() + ", \"y\":" + q.getY() + ", \"z\":" + q.getZ() + ", \"w\":" + q.getW() + "}");
con.doPut();
}
}
 
@Override
public void setInstanceId(String id) {
player.setInstanceID(id);
playerId = id;
con = new CharacterConnection(playerId);
con.setCallBack(this);
}
 
@Override
public void onResponse(String response) {
View
app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/views/PlayerFragment.java
View
app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/GameBaseModelManager.java