diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7c3c703..65884d7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -53,6 +53,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/PlayerActivity.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/PlayerActivity.java index d719fe3..f013a39 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/PlayerActivity.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/PlayerActivity.java @@ -1,16 +1,29 @@ package org.ntlab.radishforandroidstudio.cactusClient; import android.annotation.SuppressLint; +import android.app.Fragment; +import android.app.FragmentManager; +import android.app.FragmentTransaction; import android.os.Bundle; +import android.text.Layout; +import android.view.LayoutInflater; import android.view.MotionEvent; import android.widget.Button; import android.widget.EditText; +import android.widget.FrameLayout; +import android.widget.LinearLayout; import android.widget.Toast; import android.R; + +import org.ntlab.radishforandroidstudio.framework.RWT.RWTPad; +import org.ntlab.radishforandroidstudio.framework.RWT.RWTSurfaceView; +import org.ntlab.radishforandroidstudio.framework.RWT.RWTUIFragment; import org.ntlab.radishforandroidstudio.framework.animation.Animation3D; +import org.ntlab.radishforandroidstudio.framework.event.PadEvent; import org.ntlab.radishforandroidstudio.framework.gameMain.OvergroundActor; import org.ntlab.radishforandroidstudio.framework.gameMain.RealTime3DActivity; +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; @@ -32,6 +45,7 @@ private boolean isTouched = false; private float touchX = 0.0f; private float touchY = 0.0f; +// RWTPad pad = findViewById(org.ntlab.radishforandroidstudio.R.id.button3); protected void onCreate(Bundle savedInstanceState) { @@ -90,18 +104,39 @@ e.printStackTrace(); } + //pad 追加部分 + + + setContentView(org.ntlab.radishforandroidstudio.R.layout.activity_main); + + FrameLayout l = findViewById(org.ntlab.radishforandroidstudio.R.id.game_layout); + view = new RWTSurfaceView(this); + view.attachCamera(camera); + l.addView(view, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); + + + FragmentManager fragmentManager = getFragmentManager(); + FragmentTransaction transaction = fragmentManager.beginTransaction(); + Fragment f = new RWTUIFragment(); + android.view.View uiLayout = (android.view.View)findViewById(org.ntlab.radishforandroidstudio.R.id.ui_layout); + uiLayout.setOnTouchListener((RWTUIFragment)f); + transaction.add(org.ntlab.radishforandroidstudio.R.id.ui_layout, f); + transaction.commit(); + + + + /*camera.setViewPoint(pocha.getPosition().add(0.0, 1.5, 0.0)); camera.setViewLine(pocha.getDirection()); camera.setFieldOfView(1.5); camera.setBackClipDistance(10000.0);*/ - start(1000L, 50L, true); } @Override public void progress(long interval) { Velocity3D curV = pocha.getVelocity(); - /*if (isTouched) { + if (isTouched) { pocha.rotY(0.001 * (0.5f - touchX) * (double)(interval / 15.0)); curV.setX(pocha.getDirection().getX() * 200.0 * (0.5f - touchY)); curV.setZ(pocha.getDirection().getZ() * 200.0 * (0.5f - touchY)); @@ -110,7 +145,7 @@ curV.setX(0.0); curV.setZ(0.0); pocha.setVelocity(curV); - }*/ + } @@ -118,7 +153,7 @@ charaVector3d.normalize();//キャラの向きを単位ベクトルに camera.setViewPoint(pocha.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 + touchY*1.1, 5.0 *charaVector3d.getZ()+touchX));//視線 + camera.setViewLine(new Vector3d(5.0 *charaVector3d.getX() , charaVector3d.getY() - 2.5, 5.0 *charaVector3d.getZ()+touchX));//視線 } @@ -131,12 +166,6 @@ if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE) { isTouched = true; - /*float maxX = event.getDevice().getMotionRange(MotionEvent.AXIS_X).getMax(); - float minX = event.getDevice().getMotionRange(MotionEvent.AXIS_X).getMin(); - float maxY = event.getDevice().getMotionRange(MotionEvent.AXIS_Y).getMax(); - float minY = event.getDevice().getMotionRange(MotionEvent.AXIS_Y).getMin(); - touchX = (event.getX() - minX) / (maxX - minX); - touchY = (event.getY() - minY) / (maxY - minY);*/ float maxX = event.getDevice().getMotionRange(MotionEvent.AXIS_X).getMax() / 2.0f; float minX = event.getDevice().getMotionRange(MotionEvent.AXIS_X).getMin(); float maxY = event.getDevice().getMotionRange(MotionEvent.AXIS_Y).getMax(); @@ -148,7 +177,7 @@ .add( -5.0 * charaVector3d.getX(), charaVector3d.getY() + 5.0, -5.0 * charaVector3d.getZ()));//視点 - //タッチしたとこからの処理 +/* //タッチしたとこからの処理 double deg = 180; double ret; @@ -166,15 +195,16 @@ // lookのX座標とY座標を求める double eye_x = rH * Math.cos(thetaH) + 5.0 *charaVector3d.getX(); double eye_y = rH * Math.sin(thetaH) + charaVector3d.getY() - 2.5; +*/ - - camera.setViewLine(new Vector3d(5.0 *charaVector3d.getX() , charaVector3d.getY() - 2.5 + eye_y, 5.0 *charaVector3d.getZ()+touchX));//視線 + camera.setViewLine(new Vector3d(5.0 *charaVector3d.getX() , charaVector3d.getY() - 2.5, 5.0 *charaVector3d.getZ()+touchX));//視線 } else if (event.getAction() == MotionEvent.ACTION_UP) { isTouched = false; } return true; } + } diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/RWT/RWTUIFragment.java b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/RWT/RWTUIFragment.java index 1dd6ff2..f0ba89f 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/RWT/RWTUIFragment.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/RWT/RWTUIFragment.java @@ -9,20 +9,27 @@ import android.widget.Button; import org.ntlab.radishforandroidstudio.R; +import org.ntlab.radishforandroidstudio.framework.event.PadEvent; +import org.ntlab.radishforandroidstudio.framework.listener.PadListener; import static android.view.View.*; -public class RWTUIFragment extends Fragment implements OnTouchListener { +public class RWTUIFragment extends Fragment implements OnTouchListener,PadListener { public RWTUIFragment() {} @Override public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.ui_fragment, container, false); + RWTPad pad = v.findViewById(org.ntlab.radishforandroidstudio.R.id.button3); + pad.addListener(this); return inflater.inflate(R.layout.ui_fragment, null); } @@ -31,4 +38,9 @@ System.out.println("RWTUIFragment touch"); return false; } + + @Override + public boolean onEvent(PadEvent event) { + return false; + } } diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/sample/SampleGameActivity.java b/app/src/main/java/org/ntlab/radishforandroidstudio/sample/SampleGameActivity.java index 3a61419..eb2f6a0 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/sample/SampleGameActivity.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/sample/SampleGameActivity.java @@ -95,8 +95,8 @@ Velocity3D curV = pocha.getVelocity(); if (isTouched) { pocha.rotY(0.1 * (0.5f - touchX) * (double)(interval / 15.0)); - curV.setX(pocha.getDirection().getX() * 200.0 * (0.5f - touchY)); - curV.setZ(pocha.getDirection().getZ() * 200.0 * (0.5f - touchY)); + curV.setX(/*pocha.getDirection().getX() **/ 200.0 /** (0.5f - touchY)*/); + curV.setZ(/*pocha.getDirection().getZ() **/ 200.0 /** (0.5f - touchY)*/); pocha.setVelocity(curV); } else { curV.setX(0.0); diff --git a/app/src/main/res/layout/test_activity.xml b/app/src/main/res/layout/test_activity.xml index b514099..95c07ce 100644 --- a/app/src/main/res/layout/test_activity.xml +++ b/app/src/main/res/layout/test_activity.xml @@ -11,5 +11,6 @@ android:layout_height="wrap_content" android:text="Button" tools:layout_editor_absoluteX="16dp" - tools:layout_editor_absoluteY="16dp" /> + tools:layout_editor_absoluteY="16dp" + tools:ignore="MissingConstraints" /> \ No newline at end of file