François Gautrais 8 年 前
コミット
38d198cb94

+ 51 - 14
app/src/main/java/app/brest/testmin3d/ARActivity.java

@@ -3,6 +3,7 @@ import android.app.Activity;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
+import android.content.res.Resources;
 import android.graphics.PixelFormat;
 import android.hardware.Camera;
 import android.media.MediaPlayer;
@@ -10,6 +11,7 @@ import android.os.Bundle;
 import android.os.Handler;
 import android.support.v7.app.AlertDialog;
 import android.util.Log;
+import android.util.TypedValue;
 import android.view.View;
 import android.view.ViewTreeObserver;
 import android.view.WindowManager;
@@ -223,6 +225,7 @@ public class ARActivity extends RendererActivity
         final TextView tv = (TextView) findViewById(R.id.text_detected);
         final TextView tv2 = (TextView)findViewById(R.id.text_place);
         String toDisplay ="Detetected \n";
+        float vX =0;
         boolean detected = false;
        // String dete = "Detected:\n";
         scene.clear();
@@ -231,7 +234,7 @@ public class ARActivity extends RendererActivity
             Place p = res.get(i).getPlace();
             if(rr!=null) {
                 detected=true;
-                toDisplay += "\t" + rr.getName() + " \n";
+                //toDisplay += "\t" + rr.getName() + " \n";
                 //dete += "\t" + rr.getName() + "\n";
                 Object3d oo = rr.get3DModel(this);
                 CameraVo v = new CameraVo();
@@ -239,15 +242,22 @@ public class ARActivity extends RendererActivity
                 v.target.y=mGame.getPlayer().getOrientationY()-315;
 
                 //si utilisation de field et angle
+                Log.e("_______",rr.getName()+" ---> "+p.isUseAngle());
                 if(p.isUseAngle())
                     v.target.x=(float)(mGame.getPlayer().getOrientationX()-p.getAngle())+mGame.getPlayer().getOrientationZ()-270f;
                 //si utilisation GPS pour l'angle
-                else
-                    v.target.x=(float)(mGame.getPlayer().getOrientationX()-mGame.getPlayer().getAngleWith(p))
-                            +mGame.getPlayer().getOrientationZ()-270f;
+                else {
+                    v.target.x = (float) (mGame.getPlayer().getOrientationX() - mGame.getPlayer().getAngleWith(p))
+                            + mGame.getPlayer().getOrientationZ() - 270f;
+
+                    toDisplay += "Angle " + dts(mGame.getPlayer().getAngleWith(p)) + "°\nx,y = (" + dts(mGame.getPlayer().getXWith(p)) + " m, " + dts(mGame.getPlayer().getYWith(p)) +
+                            " m)\nPlayer :" + dts(mGame.getPlayer().getOrientationX()) + "°\nAngleWith:" + dts(mGame.getPlayer().getAngleWith(p)) +
+                            "°\nZ " + dts(mGame.getPlayer().getOrientationZ() - 270f) + "°\nTotal " + dts(v.target.x) + "°";
+                }
+
 
-                toDisplay += "    "+(float)(mGame.getPlayer().getAngleWith(p)) +"("+mGame.getPlayer().getXWith(p)+", "+mGame.getPlayer().getYWith(p) +")\n";
                 //v.target.z=mGame.getPlayer().getOrientationZ()-270;
+                vX=(float)(mGame.getPlayer().getAngleWith(p));
                 scene.camera(v);
                 scene.addChild(oo);
             }
@@ -257,13 +267,13 @@ public class ARActivity extends RendererActivity
 
 
         final String td = toDisplay;
-        /*mAngle.getHandler().post(new Runnable() {
+        mGps.getHandler().post(new Runnable() {
             public void run() {
-                tv2.setText(td);
+                mGps.setText(td);
             }
-        });*/
+        });
 
-        final String dete2 = mGame.getResourcesNextToPlayerDist();
+        final String dete2 = vX+" °";//mGame.getResourcesNextToPlayerDist();
         tv.getHandler().post(new Runnable() {
             public void run() {
                 tv.setText(dete2);
@@ -323,14 +333,14 @@ public class ARActivity extends RendererActivity
                 int w =mViewWidth  = mRlRoot.getMeasuredWidth();
                 int h =mViewHeight = mRlRoot.getMeasuredHeight();
 
-                mTvGPS.setTextSize((int)(h*0.121f/6));
+                mTvGPS.setTextSize(pxToDp((int)(h*0.121f/3.5)));
                 mTvGPS.setText("N ?°\nE ?°");
-                mTvAngle.setTextSize((int)(h*0.121f/6));
-                mTvDistance.setTextSize((int)(h*0.046f/1.8));
+                mTvAngle.setTextSize(pxToDp((int)(h*0.121f/3.5)));
+                mTvDistance.setTextSize(pxToDp((int)(h*0.046f)));
 
                 moveView(mTvAngle, (int)(0.03*w), (int)(0.864f*h), (int)(0.291f*w), (int)(0.121*h ));
-                moveView(mTvGPS, w-(int)(0.297f*w), (int)(0.875f*h),(int)(0.291f*w), (int)(0.121*h));
-                moveView(mTvDistance, w-mTvDistance.getWidth()-(int)(0.359f*w), (int)(0.038f*h), mTvGPS.getWidth(), (int)(0.121*h));
+                moveView(mTvGPS, w-(int)(0.32f*w), (int)(0.875f*h),(int)(0.3*w), (int)(0.121*h));
+                moveView(mTvDistance, w-mTvDistance.getWidth()-(int)(0.36f*w), (int)(0.033f*h), mTvGPS.getWidth(), (int)(0.121*h));
 
                 moveView(mIvNone, (int)(w/4.0), 0, (int)(w/2.0), (int)(0.06f*h));
                 moveView(mIvWhite, (int)(w*0.269), (int)(0.034*h), (int)(w*0.03333), (int)(0.02286f*h));
@@ -407,6 +417,23 @@ public class ARActivity extends RendererActivity
 
     }
 
+    protected String dts(double d, int n)
+    {
+        String str = "#0";
+        if(n>0)
+        {
+            str+=".";
+            for(int i=0; i<n; i++) str+="0";
+        }
+        NumberFormat formatter = new DecimalFormat(str);
+        return formatter.format(d);
+    }
+
+    protected String dts(double d)
+    {
+        return dts(d,2);
+    }
+
 
     @Override
     protected  void onResume() {
@@ -518,5 +545,15 @@ public class ARActivity extends RendererActivity
     }
 
 
+    public static int dpToPx(int dp)
+    {
+        return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
+    }
+
+    public static int pxToDp(int px)
+    {
+        return (int) (px / Resources.getSystem().getDisplayMetrics().density);
+    }
+
 
 }

+ 18 - 6
app/src/main/java/app/brest/testmin3d/NewMenuActivity.java

@@ -57,13 +57,13 @@ public class NewMenuActivity extends Activity implements View.OnClickListener{
         int h4 = mHeight/3;
         int w4 = mWidth/3;
         int w = (int)(w4*1.25);
-        int h = 80;
+        int h = dpToPx((int)(mBBriefing.getTextSize()*1.5));
         moveView(mBBriefing, w4-2*w/3, h4-h,w,h);
         moveView(mBInvotory, 2*w4-w/3, h4-h,w,h);
         moveView(mBMap, w4-2*w/3, 2*h4,w,h);
         moveView(mBOptions, 2*w4-w/3, 2*h4,w,h);
-        moveView(mBSend, 0, mHeight-100, mWidth, 100);
-        mBMenu.setTextSize(30);
+        moveView(mBSend, 0, mHeight-h, mWidth, h);
+        mBMenu.setTextSize(25);
         mBMenu.setTypeface(null,Typeface.BOLD);
         sendVisibility();
 
@@ -98,7 +98,7 @@ public class NewMenuActivity extends Activity implements View.OnClickListener{
         Button b = new RotateButton(this,angle);
         b.setText(text);
         mRootLayout.addView(b);
-        b.setBackgroundResource(R.drawable.button);
+        b.setBackgroundResource(R.drawable.uibutton);
         b.setTextColor(getResources().getColor(R.color.dull_4));
         b.setTextSize(22);
         b.setOnClickListener(this);
@@ -142,7 +142,7 @@ public class NewMenuActivity extends Activity implements View.OnClickListener{
         //mIbScanner.setImageResource(R.drawable.scanner);
         //mIbScanner.setScaleType(ImageView.ScaleType.FIT_CENTER);
         mRootLayout.addView(mIbScanner);
-        mIbScanner.setBackgroundResource(R.drawable.bscanner);
+        mIbScanner.setBackgroundResource(R.drawable.uibuttoncircle);
         mIbScanner.setText("Scanner");
         mIbScanner.setTextColor(getResources().getColor(R.color.dull_4));
         mIbScanner.setTextSize(22);
@@ -155,7 +155,7 @@ public class NewMenuActivity extends Activity implements View.OnClickListener{
         mBMap = newButton("Carte");
         mBOptions = newButton("Options");
         mBMenu = newButton("Menu Principal");
-
+        mBMenu.setBackgroundResource(R.drawable.title);
         mBSend = newButton("Envoyer les données");
         Resources r = getResources();
         float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 70, r.getDisplayMetrics());
@@ -263,4 +263,16 @@ public class NewMenuActivity extends Activity implements View.OnClickListener{
         }
 
     };
+
+    public static int dpToPx(int dp)
+    {
+        return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
+    }
+
+    public static int pxToDp(int px)
+    {
+        return (int) (px / Resources.getSystem().getDisplayMetrics().density);
+    }
+
+
 }

+ 1 - 1
app/src/main/java/app/brest/utils/app/brest/game/Game.java

@@ -341,7 +341,7 @@ public class Game  implements Serializable {
 
             }
         }
-        if(min>10000000) return " ";
+        if(min>10000000) return " --.- m";
         NumberFormat formatter = new DecimalFormat("#0.0");
         return formatter.format(min)+" m";
     }

+ 3 - 1
app/src/main/java/app/brest/utils/geometry/GPSPoint.java

@@ -1,5 +1,7 @@
 package app.brest.utils.geometry;
 
+import android.util.Log;
+
 import java.io.Serializable;
 
 /**
@@ -84,7 +86,7 @@ public class GPSPoint extends app.brest.utils.geometry.Point  implements Seriali
 
     public double getAngleWith(GPSPoint p)
     {
-        return Math.atan2(getDistanceXWith(p), getDistanceXWith(p))*180/Math.PI;
+        return Math.atan(getDistanceYWith(p)/getDistanceXWith(p))*180/Math.PI;
     }
 
 }

+ 7 - 0
app/src/main/res/drawable-mdpi/uibuttoncircle.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+  <item android:drawable="@drawable/bscanner_tap" android:state_enabled="false"/>
+  <item android:drawable="@drawable/bscanner_tap" android:state_pressed="true"/>
+  <item android:drawable="@drawable/bscanner_tap" android:state_focused="true"/>
+  <item android:drawable="@drawable/bscanner"/>
+</selector>

BIN
app/src/main/res/drawable/bscanner_tap.png


BIN
app/src/main/res/drawable/button_tap.png


BIN
app/src/main/res/drawable/title.png


+ 7 - 0
app/src/main/res/drawable/uibutton.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+  <item android:drawable="@drawable/button_tap" android:state_enabled="false"/>
+  <item android:drawable="@drawable/button_tap" android:state_pressed="true"/>
+  <item android:drawable="@drawable/button_tap" android:state_focused="true"/>
+  <item android:drawable="@drawable/button"/>
+</selector>

+ 6 - 5
app/src/main/res/layout/activity_main.xml

@@ -23,7 +23,7 @@
         android:longClickable="false"
         android:textColor="#33b5e5"
         android:textSize="25dp"
-        android:background="@drawable/button" />
+        android:background="@drawable/uibutton" />
 
     <FrameLayout
         android:layout_width="match_parent"
@@ -76,10 +76,11 @@
                 android:id="@+id/gps"
                 android:layout_gravity="center_horizontal|bottom"
                 android:textColor="#33b5e5"
-                android:layout_below="@+id/text_place"
-                android:layout_alignParentLeft="true"
-                android:layout_alignParentStart="true"
-                android:visibility="invisible" />
+                android:visibility="visible"
+                android:layout_alignTop="@+id/text_place"
+                android:layout_alignBottom="@+id/text_place"
+                android:layout_toRightOf="@+id/tv_angle"
+                android:layout_toEndOf="@+id/tv_angle" />
 
             <TextView
                 android:layout_width="match_parent"

+ 1 - 1
app/src/main/res/layout/activity_viewer.xml

@@ -32,7 +32,7 @@
         android:id="@+id/button_info"
         android:layout_alignParentBottom="true"
         android:layout_centerHorizontal="true"
-        android:background="@drawable/button"
+        android:background="@drawable/uibutton"
         android:textColor="#33b5e5"
         android:textStyle="bold"
         android:textSize="25dp"

+ 2 - 2
app/src/main/res/raw/game_medium

@@ -33,7 +33,7 @@
 					],
 					"field" : 90,
 					"radius" : 10,
-					"useAngle" : false
+					"useAngle" : true
 				}
 			],
 			"resource" : "aaa"
@@ -251,7 +251,7 @@
 					],
 					"field" : 90,
 					"radius" : 10,
-					"useAngle" : true
+					"useAngle" : false
 				}
 			],
 			"resource" : "a"