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 3323298..7236445 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 @@ -1,7 +1,6 @@ package org.ntlab.radishforandroidstudio.cactusClient.models; import android.content.res.Resources; - import android.view.MotionEvent; import android.view.View; @@ -30,13 +29,12 @@ public class OwnPlayer implements PadListener, GameBaseModel, CallBack { private boolean isPadTouched = false; + private boolean isTouched = false; private float touchPadX = 0.0f; private float touchPadY = 0.0f; + double n = 1.0; - private float eyeX = 0.0f; - private float eyeY = 0.0f; - private OvergroundActor actor; private Camera3D camera; private Player player; @@ -78,22 +76,24 @@ camera.setViewLine(actor.getDirection()); camera.setFieldOfView(1.5); camera.setBackClipDistance(10000.0); - updateCamera(); + updateCamera(n); } - - public void setPlayerId(String id) { playerId = id; } - public void updateCamera() { + public void updateCamera(double n) { Vector3d charaVector3d = actor.getDirection(); charaVector3d.normalize();//キャラの向きを単位ベクトルに - camera.setViewPoint(actor.getPosition() - .add(5.0 * charaVector3d.getX() , charaVector3d.getY() + 5.0, 5.0 * charaVector3d.getZ() ));//視点 - camera.setViewLine(new Vector3d(-5.0 * charaVector3d.getX(), charaVector3d.getY() - 2.5 , -5.0 * charaVector3d.getZ()+ eyeX));//視線 +// camera.setViewPoint(actor.getPosition().add(5.0 * charaVector3d.getX(), charaVector3d.getY() + 5.0, 5.0 * charaVector3d.getZ()));//視点 +// camera.setViewLine(new Vector3d(-5.0 * charaVector3d.getX(), charaVector3d.getY() - 2.5 + n, -5.0 * charaVector3d.getZ()));//視線 + + camera.setViewPoint(actor.getPosition().add(5.0 * charaVector3d.getX(), charaVector3d.getY() + 5.5 - n, 5.0 * charaVector3d.getZ()));//視点 + camera.setViewLine(new Vector3d(-5.0 * charaVector3d.getX(), charaVector3d.getY() - 2.5 + n, -5.0 * charaVector3d.getZ()));//視線 + + } /** @@ -128,19 +128,19 @@ @Override public void update(double interval) { - updateCamera(); + updateCamera(n); Velocity3D vel = actor.getVelocity(); Vector3d actorVec = actor.getDirection(); bullets.setPosition(actor.getPosition()); - bullets.setAngle(((Solid3D)(actor.getBody())).getQuaternion()); + bullets.setAngle(((Solid3D) (actor.getBody())).getQuaternion()); if (isPadTouched) { - Vector3d up = new Vector3d(0,1,0); + Vector3d up = new Vector3d(0, 1, 0); Vector3d total = new Vector3d(); Vector3d right = new Vector3d(); - right.cross(actorVec,up); + right.cross(actorVec, up); Vector3d touchXVec = right.clone(); Vector3d touchYVec = actorVec.clone(); @@ -156,6 +156,11 @@ actor.setVelocity(vel); + } else if (isTouched) { +// +// actor.rotY(0.1 * (0.5f - touchX)); +// n += (0.5f-touchY); + } else { vel.setX(0.0); vel.setZ(0.0); @@ -174,7 +179,7 @@ con = new CharacterConnection(playerId); con.setCallBack(this); - Quaternion3D q = ((Solid3D)(actor.getBody())).getQuaternion(); + Quaternion3D q = ((Solid3D) (actor.getBody())).getQuaternion(); player.setPosition(actor.getPosition()); player.setAngle(q); @@ -197,23 +202,29 @@ } - public void jump(){ - if(actor.isOnGround()) { + //jump + public void jump() { + if (actor.isOnGround()) { Velocity3D vel = actor.getVelocity(); vel.setY(vel.getY() + 5); actor.setVelocity(vel); System.out.print("Jumpしました。"); - }else{ + } else { System.out.print("地に足がついてない。"); } System.out.print("onClick押されましたよ----------------------------------------------------"); } - public void changeViewpoint(float x,float y){ - eyeX = x; - eyeY = y; - actor.rotY(0.05 * (0.5f - eyeX) ); + public void changeViewpoint(float eyeX, float eyeY) { + actor.rotY(0.1 * (0.5f - eyeX)); + if (n <= 5 && n >= 0) { + n += (0.5f - eyeY); + } else if (n > 5) { + n = 5; + } else if (n < 0) { + n = 0; + } } public boolean onTouch(View v, MotionEvent event) {