diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/Actor.java b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/Actor.java index 41474a7..42f03e3 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/Actor.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/gameMain/Actor.java @@ -6,12 +6,10 @@ import org.ntlab.radishforandroidstudio.framework.animation.Animation3D; import org.ntlab.radishforandroidstudio.framework.model3D.CollisionResult; import org.ntlab.radishforandroidstudio.framework.model3D.GeometryUtility; -import org.ntlab.radishforandroidstudio.framework.model3D.Movable; import org.ntlab.radishforandroidstudio.framework.model3D.Object3D; import org.ntlab.radishforandroidstudio.framework.model3D.Placeable; import org.ntlab.radishforandroidstudio.framework.model3D.Position3D; import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D; -import org.ntlab.radishforandroidstudio.framework.physics.Collidable; import org.ntlab.radishforandroidstudio.framework.physics.Force3D; import org.ntlab.radishforandroidstudio.framework.physics.Ground; import org.ntlab.radishforandroidstudio.framework.physics.PhysicsUtility; @@ -27,7 +25,7 @@ * @author 新田直也 * */ -public abstract class Actor extends BaseActor{ +public abstract class Actor extends BaseActor { // public abstract class Actor extends Animatable implements Movable { protected Vector3d direction = new Vector3d(1.0, 0.0, 0.0); protected Mode mode; @@ -129,6 +127,24 @@ // 6. 落下モードにする mode = modeFreeFall; } + +// TODO: 2018/06/11 物体と人のあたり判定の記述 + + for (ArrayList collidableList: collidableListList) { + for (Placeable anothor: collidableList) { + //自分と物体のあたり判定 + CollisionResult cr2 = PhysicsUtility.checkCollision(body,null,(Solid3D)(anothor.getBody()),null); + + if(cr2 !=null){ + boolean flag = false; + onCollisionStay(anothor);//k.呼び出される + if(body != null){ + flag = true; + return; + } + } + } + } } //k.完全な物理演算するためのMotion @@ -200,35 +216,8 @@ // 6. 落下モードにする mode = modeFreeFall; } - - - // TODO: 2018/06/11 物体と人のあたり判定の記述 - - Placeable anothor = collidableListList.get(0).get(0); - - //k.↓今は自分と物体のあたり判定になってる - CollisionResult cr2 = PhysicsUtility.checkCollision(body,null,(Solid3D)(anothor.getBody()),null); - - //k.相手のどの部分かが必要,Nullじゃなかったら - //k.nullじゃないときは当たったのでその時のあたり判定をする  - // TODO: 2018/06/11 flagの追加 - if(cr2 !=null){ - boolean flag = false; - onCollidableStay(anothor);//k.呼び出される - - for (ArrayList collidableList: collidableListList) { - for (Placeable p: collidableList) { - - if(body != null && p !=null){ - flag = true; - if (flag){ - //anothor.onCollisionStay(this); - } - } - } - } - } } + public void setInitialDirection(Vector3d dir) { direction = dir; }