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 ! //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.app.Activity;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.os.Build; import android.os.Build;
@@ -13,7 +12,6 @@ import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
import com.iutlaval.myapplication.Game.GameLogicThread; import com.iutlaval.myapplication.Game.GameLogicThread;
import com.iutlaval.myapplication.Video.FpsTime;
import com.iutlaval.myapplication.Video.Renderer; import com.iutlaval.myapplication.Video.Renderer;
public class GameActivity extends Activity { public class GameActivity extends Activity {
@@ -42,8 +40,6 @@ public class GameActivity extends Activity {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Display display = getWindowManager().getDefaultDisplay(); Display display = getWindowManager().getDefaultDisplay();
//permet d'attendre la duré de une image affiché a l'écran
FpsTime.init(display);
String deck = getIntent().getStringExtra("DECK"); String deck = getIntent().getStringExtra("DECK");
@@ -57,6 +57,7 @@ public class MainActivity extends AppCompatActivity {
d.show(getSupportFragmentManager(),"s"); d.show(getSupportFragmentManager(),"s");
} }
//permet d'utiliser le bouton handicape et de changer son aparence
private void handicapeButtonHandle(ImageButton handicapeButton) private void handicapeButtonHandle(ImageButton handicapeButton)
{ {
if(!disabledMode) if(!disabledMode)
@@ -13,6 +13,11 @@ public class DrawableSelfRemoving extends Drawable{
private Drawable drawable; private Drawable drawable;
private long lifespan; 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) { public DrawableSelfRemoving(Drawable drawable,int lifespan) {
super(drawable.getX(), drawable.getY(), drawable.getName()); super(drawable.getX(), drawable.getY(), drawable.getName());
this.drawable = drawable; this.drawable = drawable;
@@ -21,7 +26,7 @@ public class DrawableSelfRemoving extends Drawable{
@Override @Override
public void drawOn(@NonNull Canvas c, @NonNull Paint p) { public void drawOn(@NonNull Canvas c, @NonNull Paint p) {
if(lifespan > System.currentTimeMillis()) if(!isDone())
{ {
drawable.drawOn(c,p); drawable.drawOn(c,p);
} }
@@ -18,13 +18,14 @@ import java.util.List;
public class DrawableText extends Drawable{ 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 text le texte a rendre
* @param x_pos position en x du texte * @param x_pos position en x du texte
* @param y_pos position en y du texte * @param y_pos position en y du texte
* @param name nom du Drawable * @param name nom du Drawable
* @param x_size taille du drawable entre 0 et 100 * @param x_size taille du drawable entre 0 et 100
* @param y_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 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 * @param x_canvasRatio voire y_canvasRatio
*/ */
@@ -41,6 +42,7 @@ public class DrawableText extends Drawable{
* @param name nom du Drawable * @param name nom du Drawable
* @param x_size taille du drawable entre 0 et 100 * @param x_size taille du drawable entre 0 et 100
* @param y_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 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 * @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 //empecher d'aller plus vite que le taux de rafraichissement de l'ecran
//sauve de la baterie //sauve de la baterie
FpsTime.waitFrameTime(time);
while(!needToUpdate) while(!needToUpdate)
{ {
try { try {