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..a4780cc 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; @@ -29,13 +28,10 @@ import java.util.ArrayList; public class OwnPlayer implements PadListener, GameBaseModel, CallBack { - private boolean isPadTouched = false; + private boolean isPadTouched = false; //Padのタッチ判定 private float touchPadX = 0.0f; private float touchPadY = 0.0f; - - - private float eyeX = 0.0f; - private float eyeY = 0.0f; + double n = 1.0; private OvergroundActor actor; private Camera3D camera; @@ -78,22 +74,18 @@ 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.5 - n, 5.0 * charaVector3d.getZ()));//視点 + camera.setViewLine(new Vector3d(-5.0 * charaVector3d.getX(), charaVector3d.getY() - 2.5 + n, -5.0 * charaVector3d.getZ()));//視線 } /** @@ -108,13 +100,10 @@ charaVector3d.normalize();//キャラの向きを単位ベクトルに MotionEvent motionEvent = event.getMotionEvent(); - if (motionEvent.getAction() == MotionEvent.ACTION_DOWN || motionEvent.getAction() == MotionEvent.ACTION_MOVE) { isPadTouched = true; touchPadX = (float) (Math.cos(event.getAngle()) * event.getLength()); touchPadY = (float) (Math.sin(event.getAngle()) * event.getLength()); - - } else if (motionEvent.getAction() == MotionEvent.ACTION_UP) { Velocity3D vel = actor.getVelocity(); vel.setX(0); @@ -122,25 +111,23 @@ actor.setVelocity(vel); isPadTouched = false; } - return false; } @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(); @@ -155,11 +142,9 @@ vel.setVector3d(total); actor.setVelocity(vel); - } else { vel.setX(0.0); vel.setZ(0.0); - actor.setVelocity(vel); } @@ -174,7 +159,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 +182,27 @@ } - public void jump(){ - if(actor.isOnGround()) { + 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押されましたよ----------------------------------------------------"); - + 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) { @@ -221,7 +210,6 @@ return false; } - public void logout() { con = new CharacterConnection(playerId); con.setCallBack(this);