reduction input lag + ajout javadoc

This commit is contained in:
marc barbier
2021-01-09 12:38:16 +01:00
parent 996d515714
commit 2347eb2be3
6 changed files with 10 additions and 39 deletions
@@ -2,7 +2,6 @@ package com.iutlaval.myapplication;
//N'oubliez pas de déclarer le bon package dans lequel se trouve le fichier !
import android.app.ActionBar;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.Build;
@@ -13,7 +12,6 @@ import android.view.View;
import android.view.WindowManager;
import com.iutlaval.myapplication.Game.GameLogicThread;
import com.iutlaval.myapplication.Video.FpsTime;
import com.iutlaval.myapplication.Video.Renderer;
public class GameActivity extends Activity {
@@ -42,8 +40,6 @@ public class GameActivity extends Activity {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Display display = getWindowManager().getDefaultDisplay();
//permet d'attendre la duré de une image affiché a l'écran
FpsTime.init(display);
String deck = getIntent().getStringExtra("DECK");
@@ -57,6 +57,7 @@ public class MainActivity extends AppCompatActivity {
d.show(getSupportFragmentManager(),"s");
}
//permet d'utiliser le bouton handicape et de changer son aparence
private void handicapeButtonHandle(ImageButton handicapeButton)
{
if(!disabledMode)
@@ -13,6 +13,11 @@ public class DrawableSelfRemoving extends Drawable{
private Drawable drawable;
private long lifespan;
/**
*
* @param drawable drawable a afficher
* @param lifespan durée en seconde que le drawable va survivre
*/
public DrawableSelfRemoving(Drawable drawable,int lifespan) {
super(drawable.getX(), drawable.getY(), drawable.getName());
this.drawable = drawable;
@@ -21,7 +26,7 @@ public class DrawableSelfRemoving extends Drawable{
@Override
public void drawOn(@NonNull Canvas c, @NonNull Paint p) {
if(lifespan > System.currentTimeMillis())
if(!isDone())
{
drawable.drawOn(c,p);
}
@@ -18,13 +18,14 @@ import java.util.List;
public class DrawableText extends Drawable{
/**
* ce constructeur permet de rendre du texte
* ce constructeur permet de rendre du texte plus simplement mais il peut causes des bugs a cause de ses aproximaiton
* @param text le texte a rendre
* @param x_pos position en x du texte
* @param y_pos position en y du texte
* @param name nom du Drawable
* @param x_size taille du drawable entre 0 et 100
* @param y_size taille du drawable entre 0 et 100
* @param textSize taille de la police
* @param y_canvasRatio taille du canevas en pixel sur le quel le texte va être dessiné /!\ doit être proportionnel a la police
* @param x_canvasRatio voire y_canvasRatio
*/
@@ -41,6 +42,7 @@ public class DrawableText extends Drawable{
* @param name nom du Drawable
* @param x_size taille du drawable entre 0 et 100
* @param y_size taille du drawable entre 0 et 100
* @param textSize taille de la police
* @param y_canvasRatio taille du canevas en pixel sur le quel le texte va être dessiné /!\ doit être proportionnel a la police
* @param x_canvasRatio voire y_canvasRatio
*/
@@ -1,32 +0,0 @@
package com.iutlaval.myapplication.Video;
import android.view.Display;
/**
* cette class permet d'attendre le temps qui s'écoule entre 2image a l'écran plutot que sur dessiné et gaspillier la batterie
*/
public class FpsTime {
private static long frametime;
/**
* initialise le frame time pour pouvoir utliser le delais
* @param d ecran
*/
public static void init(Display d)
{
float fps = d.getRefreshRate();
frametime = (long)(1.0F/fps*1000);
}
/**
* atten exactement la durée d'une image a l'ecran a la vitesse optimal de l'ecran
* prend en argument un offset qui permet de reduire l'attente si le systeme a pris beaucoup de temps a génerer une image
*/
public static void waitFrameTime(long time){
time = (System.nanoTime()-time)/1000;
if(time >= frametime)return;
try {
Thread.sleep((frametime-time));
} catch (InterruptedException e) {}
}
}
@@ -184,7 +184,6 @@ public class Renderer extends SurfaceView implements SurfaceHolder.Callback {
//empecher d'aller plus vite que le taux de rafraichissement de l'ecran
//sauve de la baterie
FpsTime.waitFrameTime(time);
while(!needToUpdate)
{
try {