From 3606a9a564c916cc7daebafaa0ea293a0de4d20f Mon Sep 17 00:00:00 2001 From: marc barbier Date: Wed, 11 Nov 2020 14:28:36 +0100 Subject: [PATCH] mise a jours uml + javadoc + suppretion de code inutile --- .../com/iutlaval/myapplication/Class.puml | 135 ++++++++++++++---- .../myapplication/Game/Cards/Card.java | 3 +- .../myapplication/Game/Decks/Deck.java | 2 +- .../Game/Decks/DeckRegister.java | 20 --- .../myapplication/Game/GameLogicThread.java | 23 +-- .../com/iutlaval/myapplication/Game/Hand.java | 3 +- .../Game/PlayableZonesHandler.java | 3 +- .../iutlaval/myapplication/GameActivity.java | 2 - .../Video/Drawables/Drawable.java | 4 - .../Video/Drawables/DrawableCard.java | 20 ++- .../Video/Drawables/DrawableRectangle.java | 6 +- .../Video/Drawables/DrawableText.java | 4 + .../iutlaval/myapplication/Video/FpsTime.java | 1 + .../myapplication/Video/Rectangle.java | 5 +- .../myapplication/Video/Renderer.java | 23 ++- 15 files changed, 154 insertions(+), 100 deletions(-) delete mode 100644 app/src/main/java/com/iutlaval/myapplication/Game/Decks/DeckRegister.java diff --git a/app/src/main/java/com/iutlaval/myapplication/Class.puml b/app/src/main/java/com/iutlaval/myapplication/Class.puml index 210246e..8d5ee09 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Class.puml +++ b/app/src/main/java/com/iutlaval/myapplication/Class.puml @@ -3,7 +3,6 @@ package Game <> { package Cards <> { abstract class Card { {static}- frameBitmap : Bitmap - - drawablecard :DrawableCard -- + Card(String UID,Context c) + onCardAttack(Board board,Card enemy) : void @@ -31,6 +30,28 @@ package Game <> { + getHealth() : int + getName() : String } + class PlayableZonesHandler + { + -- + + PlayableZonesHandler(Board board) + + displayPlayableZones(Renderer renderer) + + displayPlayableZonesOn(int i,Renderer renderer) + + hidePlayableZones(Renderer renderer) + } + } + class Hand + { + -- + +Hand() + +pickCardFromDeck(Deck deck,int amount) + +fillHand(Deck deck) + } + class TouchHandler + { + - TouchDeltaX : float + - TouchDeltaY : float + - originalPositionX : float + - originalPositionY : float } package Players <> { class Player @@ -48,14 +69,7 @@ package Game <> { class GameLogicThread { - Context cont - - Renderer renderer - boolean ready - - TouchHandler touch - - GameActivity gameActivity - - Deck localPlayerDeck - - Hand localPlayerHand - - Board board - - PlayableZonesHandler playableZonesHandler -- + GameLogicThread(GameActivity gameActivity, Renderer renderer) + run() @@ -65,14 +79,36 @@ package Game <> { + onTouchEvent(MotionEvent event) } class Board + { + -- + + Board() + + playCard() : boolean + + getPlayerCardsOnBoard() : Card[] + } + package Decks <> + { + abstract class Deck + { + -- + +shuffle() + + abstract getDeckName() + } + class DeckDemo + { + -- + + DeckDemo(String id,Context context) + + getCards() : Stack + {abstract}+ getDeckName() : String + } + } } package Video <> { package Drawables <> { - class Drawable { - - x : int - - y : int + abstract class Drawable { + - x : float + - y : float - name : String - bitmap : Bitmap - p : Paint @@ -82,26 +118,31 @@ package Video <> { + equals(Object o) : boolean + setCoordinates(float x, float y) : void # checkPaint() : void + # setBitmap(Bitmap bitmap) : void } class DrawableRectangle { - # Drawable(Rectangle rectangle, String name, int color) + + DrawableRectangle(Rectangle rectangle, String name, int color) + + DrawableRectangle(Bitmap bitmap,Rectangle rectangle, String name, int color) } class DrawableBitmap { - # Drawable(Bitmap bitmap, float x_pos, float y_pos, String name, float x_size, float y_size) - # Drawable(Bitmap bitmap,Rectangle rectangle, String name, int color) + + DrawableBitmap(Bitmap bitmap, float x_pos, float y_pos, String name, float x_size, float y_size) } class DrawableText { - # Drawable(String text,float x_pos,float y_pos,String name, float x_size,float y_size,float textSize , int x_canvasRatio, int y_canvasRatio) + + DrawableText(String text,float x_pos,float y_pos,String name, float x_size,float y_size,float textSize , int x_canvasRatio, int y_canvasRatio) - cutText(int charPerLines,String text) : List } - class DrawableCard + abstract class DrawableCard { + - ratio : int - onBoard : boolean + - draggable : boolean -- + DrawableCard(Card c, float x, float y, String name, Context context) + + DrawableCard(Card c, float x, float y, String name, Context context,int ratio) + + DrawableCard(DrawableCard smallCArd, Context cont,int ratio) + updateHpAndAtk(Integer atk,Integer hp) - removeAlpha(String color) + drawOn(Canvas c, Paint p) @@ -112,22 +153,31 @@ package Video <> { class Renderer { - holder : SurfaceHolder - p : Paint - - drawingThread : DrawingThread - - engine : GameLogicThread - - toDraw : List + - needToUpdate : boolean -- - + Renderer(Context context) + + Renderer(Context context,GameActivity gameActivity) + surfaceCreated(SurfaceHolder holder) : void + surfaceChanged(urfaceHolder surfaceHolder, int i, int i1, int i2) : void + surfaceDestroyed(SurfaceHolder surfaceHolder) : void + onDraw(Canvas canvas) : void + + updateFrame() : void + addToDraw(Drawable newElement) : boolean + + addToDrawWithoutUpdate(Drawable newElement) : boolean + moveToDraw(float x, float y, String name) : void + + removeToDrawWithoutUpdate(String name) : void + + removeToDrawWithoutUpdate(Drawable drawable) : void + removeToDraw(String name) : void + removeToDraw(Drawable toRemove) : void + getDrawAble(String name) : Drawable + + getCardOn(float x, float y) : DrawableCard + setEngine(GameLogicThread engine) : void - + updateFrame() : void + } + class DrawingThread{ + -renderer Renderer + +keepdrawing boolean + -- + +DrawingThread(Renderer renderer) + +run() } class RectangleCanevas { -- @@ -141,6 +191,8 @@ package Video <> { + width : float + height : float -- + + Rectange(float prostionX,float positionY,float width,float height) + - set(float positionX,float positionY,float width,float height) + scaleRectangleToScreen() : void + bitmapRectangleBuilder(Bitmap bitmap, int color) : void } @@ -159,35 +211,56 @@ Drawable <|-- DrawableRectangle Drawable <|-- DrawableBitmap Drawable <|-- DrawableText +Renderer "1" *-- DrawingThread : -drawingThread +Renderer "1" *-- GameLogicThread : -engine +Renderer "*" *-- Drawable : toDraw + Player <|-- PlayerBot Player <|-- PlayerLocal Player <|-- PlayerAdversary +DrawableCard o-- Drawable : frameDrawable +DrawableCard *-- Drawable : OpacityRectangleDrawable +DrawableCard *-- Drawable : PictureDrawable +DrawableCard *-- Drawable : cardOnBoardDrawable +DrawableCard *-- Drawable : cardDescription +DrawableCard *-- Drawable : cardTitle +DrawableCard *-- Drawable : cardHpDrawable +DrawableCard *-- Drawable : cardAtkDrawable + +TouchHandler *-- DrawableCard : moveEventCard + + + +PlayableZonesHandler "*" *-- Drawable : playableZones +PlayableZonesHandler "1" *-- Board : board -DrawableCard o-- Drawable : OpacityRectangleDrawable -DrawableCard o-- Drawable : PictureDrawable -DrawableCard o-- Drawable : cardOnBoardDrawable -DrawableCard o-- Drawable : cardDescription -DrawableCard o-- Drawable : cardTitle -DrawableCard o-- Drawable : cardHpDrawable -DrawableCard o-- Drawable : cardAtkDrawable DrawableCard o-- Card : card DrawableCard "1" *-- "1" Rectangle : cardOnBoardFrame DrawableCard "1" *-- "1" Rectangle : cardOnBoardAtk DrawableCard "1" *-- "1" Rectangle : cardOnBoardHp -RectangleCanevas *-- Rectangle : +rectangle + +Card "1" *-- DrawableCard : drawableCard + Renderer "1" *-- "0_*" Drawable : toDraw GameActivity "1" *-- "1" Renderer : renderer -GameLogicThread o-- Renderer -GameLogicThread *-- Board +GameLogicThread *-- TouchHandler : touchHandler +GameLogicThread o-- Renderer : renderer +GameLogicThread *-- Board : board +GameLogicThread *-- Deck : localPlayerDeck +GameLogicThread *-- Hand : fillHand +GameLogicThread *-- PlayableZonesHandler : playableZonesHandler +GameLogicThread *-- GameActivity : gameActivity Board *-- PlayerLocal : player Board *-- Player : adversary +Deck <|-- DeckDemo + Renderer o-- GameLogicThread @enduml \ No newline at end of file diff --git a/app/src/main/java/com/iutlaval/myapplication/Game/Cards/Card.java b/app/src/main/java/com/iutlaval/myapplication/Game/Cards/Card.java index 8edae9a..d4bec47 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Game/Cards/Card.java +++ b/app/src/main/java/com/iutlaval/myapplication/Game/Cards/Card.java @@ -92,7 +92,7 @@ public abstract class Card { * retourne la culeur de la carte * la couleur s'affiche comme un filtre sur la carte * /!\ attention a l'opacite /!\ le format n'est PAS rgba MAIS argb - * #AARRGGBB + * #AARRGGB //TODOB * je recomander une opaciter en 44 et 70 * @return */ @@ -106,7 +106,6 @@ public abstract class Card { * @return la description */ public abstract String getDescription(); - //TODO /** diff --git a/app/src/main/java/com/iutlaval/myapplication/Game/Decks/Deck.java b/app/src/main/java/com/iutlaval/myapplication/Game/Decks/Deck.java index 73003d9..0b7cdb4 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Game/Decks/Deck.java +++ b/app/src/main/java/com/iutlaval/myapplication/Game/Decks/Deck.java @@ -11,7 +11,7 @@ import java.util.Stack; public abstract class Deck { public abstract Stack getCards(); - public void suffle() + public void shuffle() { Collections.shuffle(getCards()); } diff --git a/app/src/main/java/com/iutlaval/myapplication/Game/Decks/DeckRegister.java b/app/src/main/java/com/iutlaval/myapplication/Game/Decks/DeckRegister.java deleted file mode 100644 index 34361c2..0000000 --- a/app/src/main/java/com/iutlaval/myapplication/Game/Decks/DeckRegister.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.iutlaval.myapplication.Game.Decks; - -import android.content.Context; - - -import java.util.Objects; - -public class DeckRegister { - public static Deck getClassFromName(String name, Context context) - { - //switch case non utilisable MAIS c'est pas important car c'ette foction n'est que pour - //HandActivity - - if(name.equals("demo")) - { - return new DeckDemo(name,context); - } - return null; - } -} diff --git a/app/src/main/java/com/iutlaval/myapplication/Game/GameLogicThread.java b/app/src/main/java/com/iutlaval/myapplication/Game/GameLogicThread.java index c4675ad..1561875 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Game/GameLogicThread.java +++ b/app/src/main/java/com/iutlaval/myapplication/Game/GameLogicThread.java @@ -3,7 +3,6 @@ package com.iutlaval.myapplication.Game; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; -import android.graphics.Color; import android.util.Log; import android.view.MotionEvent; @@ -11,17 +10,11 @@ import com.iutlaval.myapplication.Game.Cards.Card; import com.iutlaval.myapplication.Game.Decks.Deck; import com.iutlaval.myapplication.Game.Decks.DeckDemo; import com.iutlaval.myapplication.GameActivity; -import com.iutlaval.myapplication.InvalidDataException; import com.iutlaval.myapplication.R; -import com.iutlaval.myapplication.Video.Drawables.Drawable; import com.iutlaval.myapplication.Video.Drawables.DrawableBitmap; import com.iutlaval.myapplication.Video.Drawables.DrawableCard; -import com.iutlaval.myapplication.Video.Drawables.DrawableRectangle; -import com.iutlaval.myapplication.Video.Rectangle; import com.iutlaval.myapplication.Video.Renderer; -import java.util.List; - public class GameLogicThread extends Thread{ private Context cont; @@ -34,6 +27,8 @@ public class GameLogicThread extends Thread{ private Hand localPlayerHand; private Board board; private PlayableZonesHandler playableZonesHandler; + private DrawableCard currentlySelected = null; + private static final float SELECTING_OFFSET = 20F; public GameLogicThread(GameActivity gameActivity, Renderer renderer) { @@ -43,7 +38,7 @@ public class GameLogicThread extends Thread{ this.renderer = renderer; touch = new TouchHandler(renderer); localPlayerDeck = new DeckDemo("local",cont); - localPlayerDeck.suffle(); + localPlayerDeck.shuffle(); localPlayerHand = new Hand(); localPlayerHand.fillHand(localPlayerDeck); this.gameActivity=gameActivity; @@ -52,10 +47,6 @@ public class GameLogicThread extends Thread{ GameActivity.setGameEngine(this); } - private float i=0; - private float increm = 1F; - - @Override public void run() { //affichage de l'arriere plan @@ -97,6 +88,7 @@ public class GameLogicThread extends Thread{ * /!\ renderer.updateFrame(); va forcer le system a redessiner l'afficher qui ensuite reappelera onFrameDoneRendering() ce qui peut causer si le updateFrame() n'est pas proteger * une utilisation de la batterie massive */ + //TODO : supprimer cette fonction si on a rien a en faire public void onFrameDoneRendering() { } @@ -109,11 +101,6 @@ public class GameLogicThread extends Thread{ return ready; } - - - - private DrawableCard currentlySelected = null; - private static final float SELECTING_OFFSET = 20F; /** * relais l'evenement directement au touch Handler * @param event @@ -154,7 +141,7 @@ public class GameLogicThread extends Thread{ currentlySelected.setCoordinates(currentlySelected.getX(),currentlySelected.getY() + SELECTING_OFFSET); currentlySelected=null; } - playableZonesHandler.HidePlayableZones(renderer); + playableZonesHandler.hidePlayableZones(renderer); }else{ touch.onTouchEvent(event); } diff --git a/app/src/main/java/com/iutlaval/myapplication/Game/Hand.java b/app/src/main/java/com/iutlaval/myapplication/Game/Hand.java index 434f97e..bf62b27 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Game/Hand.java +++ b/app/src/main/java/com/iutlaval/myapplication/Game/Hand.java @@ -19,12 +19,13 @@ public class Hand { public void pickCardFromDeck(Deck deck,int amount) { - for(int i = 0 ; i < NUMBER_OF_CARDS_IN_STARTING_HAND;i++) + for(int i = 0 ; i < amount;i++) { hand.add(deck.getCards().pop()); } } + //TODO check number of card in hand public void fillHand(Deck deck) { pickCardFromDeck(deck,NUMBER_OF_CARDS_IN_STARTING_HAND); diff --git a/app/src/main/java/com/iutlaval/myapplication/Game/PlayableZonesHandler.java b/app/src/main/java/com/iutlaval/myapplication/Game/PlayableZonesHandler.java index 2958658..90ddb3b 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Game/PlayableZonesHandler.java +++ b/app/src/main/java/com/iutlaval/myapplication/Game/PlayableZonesHandler.java @@ -25,6 +25,7 @@ public class PlayableZonesHandler { this.board=board; } + //TODO verifier si elle ne sont pas deja afficher public void displayPlayableZones(Renderer renderer) { Card[] cardsOnBoard = board.getPlayerCardsOnBoard(); @@ -50,7 +51,7 @@ public class PlayableZonesHandler { } - public void HidePlayableZones(Renderer renderer) + public void hidePlayableZones(Renderer renderer) { for(Drawable d : playableZones) { diff --git a/app/src/main/java/com/iutlaval/myapplication/GameActivity.java b/app/src/main/java/com/iutlaval/myapplication/GameActivity.java index f575b69..0d54193 100644 --- a/app/src/main/java/com/iutlaval/myapplication/GameActivity.java +++ b/app/src/main/java/com/iutlaval/myapplication/GameActivity.java @@ -4,9 +4,7 @@ package com.iutlaval.myapplication; import android.app.Activity; import android.content.pm.ActivityInfo; -import android.graphics.Point; import android.os.Bundle; -import android.util.Log; import android.view.Display; import android.view.MotionEvent; diff --git a/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/Drawable.java b/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/Drawable.java index a3c474b..4927271 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/Drawable.java +++ b/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/Drawable.java @@ -101,10 +101,6 @@ public abstract class Drawable { p = new Paint(); } - protected void scale(float i) { - bitmap = Bitmap.createScaledBitmap(this.bitmap,(int)(bitmap.getWidth()*i),(int)(bitmap.getHeight()*i),GameActivity.bilinearFiltering); - } - /** * retourne si le drawable peut être deplacer en drag and drop * @return diff --git a/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/DrawableCard.java b/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/DrawableCard.java index 1689a87..4824ecf 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/DrawableCard.java +++ b/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/DrawableCard.java @@ -18,8 +18,8 @@ import com.iutlaval.myapplication.Video.Rectangle; * TODO : tout mettre dans des finals */ public class DrawableCard extends Drawable{ - private int ratio; - + //propriéte de base utilisé pour calculer toutes les tailles est positoins + //ces données ne sont pas dans les digrames car sa renderais la lecture impossible private static final int CARD_WITH = 14; private static final int CARD_HEIGHT = 40; private static final float HP_ATK_FONT_SIZE_OFFBOARD =60F; @@ -33,7 +33,7 @@ public class DrawableCard extends Drawable{ private static int TEXT_ATK_HP_X_RES = 110; private static int TEXT_ATK_HP_Y_RES = 60;//60 - //des floats sont utiliser card ils prenne moin de ram que des doubles et que l'on a pas besoin de la precision supplementaire + //des floats sont utiliser car ils prenne moin de ram que des doubles et que l'on a pas besoin de la precision supplementaire //dimentions private static final float ONBOARD_RECTANGLE_ATK_HP_WIDTH = CARD_WITH * 0.5F; private static final float ONBOARD_RECTANGLE_ATK_HP_HEIGHT = CARD_HEIGHT * 0.2F; @@ -79,6 +79,11 @@ public class DrawableCard extends Drawable{ private static final float CARD_ON_BOARD_DRAWABLE_WIDTH = CARD_WITH; private static final float CARD_ON_BOARD_DRAWABLE_HEIGHT = CARD_HEIGHT*0.667F; + /** + * ratio définissant la taille de l'objet + */ + private int ratio; + private Boolean onBoard; private Boolean draggable; @@ -86,6 +91,7 @@ public class DrawableCard extends Drawable{ private Drawable opacityRectangleDrawable; private Drawable pictureDrawable; + //TODO : optimiser si la couleur est déja en mémoire private Drawable cardOnBoardDrawable; private Drawable cardDescription; @@ -195,6 +201,13 @@ public class DrawableCard extends Drawable{ setCoordinates(getX(), getY()); } + /** + * permet de crée une grande carte a partir d'une carte plus petite + * @param smallCArd car parante + * @param cont context + * @param ratio ratio de taille + * /!\ ne pas s'en servir pour juste changer la taille d'une carte/!\ + */ public DrawableCard(DrawableCard smallCArd, Context cont,int ratio) { this(smallCArd.card,smallCArd.getX(),smallCArd.getY(),smallCArd.getName()+"BIG",cont,ratio); draggable =false; @@ -210,6 +223,7 @@ public class DrawableCard extends Drawable{ * @param atk l'attaque de la carte * @param hp les point de vie de la carte */ + //TODO supprimer la possibilité null si non utilisé public void updateHpAndAtk(Integer atk,Integer hp) { if(onBoard) { diff --git a/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/DrawableRectangle.java b/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/DrawableRectangle.java index fead069..778ed4e 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/DrawableRectangle.java +++ b/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/DrawableRectangle.java @@ -32,8 +32,8 @@ public class DrawableRectangle extends Drawable{ /** * ce constructeur n'est pas tres rapide donc a eviter il utilse pas mal de ram mais sava encore le gc de java s'en ocupe vite - * ce constructeur dessine un rectangle avec la couleur donné" en argument - * @param bitmap + * ce constructeur dessine un rectangle avec la couleur donné en argument + * @param bitmap bitmap sur le quel dessiner * @param rectangle recange cooresspondant a la surface a dessiner * @param name nom du drawable agit comme un identifiant mais doit être unique * @param color couleur du rectangle @@ -43,7 +43,7 @@ public class DrawableRectangle extends Drawable{ @Deprecated public DrawableRectangle(Bitmap bitmap,Rectangle rectangle, String name, int color) throws InvalidDataException { super(rectangle.getPositionX(),rectangle.getPositionY(),name); - if(rectangle.getHeight() <= 0 || rectangle.getWidth() <=0 || bitmap == null)throw new InvalidDataException(name,rectangle); + if(rectangle.isDrawable() || bitmap == null)throw new InvalidDataException(name,rectangle); rectangle.scaleRectangleToScreen(); rectangle.bitmapRectangleBuilder(bitmap,color); diff --git a/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/DrawableText.java b/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/DrawableText.java index c019a39..ba91c9c 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/DrawableText.java +++ b/app/src/main/java/com/iutlaval/myapplication/Video/Drawables/DrawableText.java @@ -10,6 +10,10 @@ import com.iutlaval.myapplication.GameActivity; import java.util.ArrayList; import java.util.List; +/** + * ce code a éte particuliérement dur a implementé de maniére correct + * tout modification de ce code doit passer par marc car seul moi sait a quel point il est complex + */ public class DrawableText extends Drawable{ /**TODO : corriger les deformation due au changement de ratio (x_size,y_size) * ce constructeur permet de rendre du texte diff --git a/app/src/main/java/com/iutlaval/myapplication/Video/FpsTime.java b/app/src/main/java/com/iutlaval/myapplication/Video/FpsTime.java index c9a4376..a6a7904 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Video/FpsTime.java +++ b/app/src/main/java/com/iutlaval/myapplication/Video/FpsTime.java @@ -17,6 +17,7 @@ public class FpsTime { /** * 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; diff --git a/app/src/main/java/com/iutlaval/myapplication/Video/Rectangle.java b/app/src/main/java/com/iutlaval/myapplication/Video/Rectangle.java index 8615a3d..c641424 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Video/Rectangle.java +++ b/app/src/main/java/com/iutlaval/myapplication/Video/Rectangle.java @@ -31,7 +31,7 @@ public class Rectangle { * @param width une largeur * @param height une hauteur */ - public void set(float positionX,float positionY,float width,float height) + private void set(float positionX,float positionY,float width,float height) { this.positionX=positionX; this.positionY=positionY; @@ -85,4 +85,7 @@ public class Rectangle { c.drawRect(this,p); } + + public boolean isDrawable() { + return getHeight() <= 0 || getWidth() <=0;} } diff --git a/app/src/main/java/com/iutlaval/myapplication/Video/Renderer.java b/app/src/main/java/com/iutlaval/myapplication/Video/Renderer.java index b14d294..e2c582e 100644 --- a/app/src/main/java/com/iutlaval/myapplication/Video/Renderer.java +++ b/app/src/main/java/com/iutlaval/myapplication/Video/Renderer.java @@ -25,7 +25,7 @@ public class Renderer extends SurfaceView implements SurfaceHolder.Callback { private DrawingThread drawingThread; private GameLogicThread engine; private GameActivity gameActivity; - private boolean contentChanged; + private boolean needToUpdate; private List toDraw; @@ -65,6 +65,7 @@ public class Renderer extends SurfaceView implements SurfaceHolder.Callback { * cette fonction est appeler a chaque fois que l'utilisateur tourne son ecran * this function is unused since the screen is locked */ + //TODO : a supprimer si elle set a rien (surment importante avec la veille) @Override public void surfaceChanged(@NonNull SurfaceHolder surfaceHolder, int i, int i1, int i2) { } @@ -72,7 +73,7 @@ public class Renderer extends SurfaceView implements SurfaceHolder.Callback { /** * on surface destruction stop the thread * la surface ce fait detruire aussi quand le jeu est en pause - * TODO kill proprement le thread et ajouter une relance sur le GameActivity + * TODO ajouter une relance sur le GameActivity * @param surfaceHolder */ @Override @@ -102,7 +103,7 @@ public class Renderer extends SurfaceView implements SurfaceHolder.Callback { * demander au moteur de faire sont travaille */ public void updateFrame() { - contentChanged=true; + needToUpdate =true; } /** @@ -151,7 +152,7 @@ public class Renderer extends SurfaceView implements SurfaceHolder.Callback { //sauve de la baterie FpsTime.waitFrameTime(time); if(engine != null && engine.isReady())engine.onFrameDoneRendering(); - while(!contentChanged) + while(!needToUpdate) { try { Thread.sleep(20); @@ -159,7 +160,7 @@ public class Renderer extends SurfaceView implements SurfaceHolder.Callback { e.printStackTrace(); } } - contentChanged=false; + needToUpdate =false; } } } @@ -170,7 +171,7 @@ public class Renderer extends SurfaceView implements SurfaceHolder.Callback { */ public boolean addToDraw(Drawable newElement){ boolean returnValue = addToDrawWithoutUpdate(newElement); - contentChanged=true; + updateFrame(); return returnValue; } @@ -203,7 +204,7 @@ public class Renderer extends SurfaceView implements SurfaceHolder.Callback { if(d.getName().equals(name)) { d.setCoordinates(x,y); - contentChanged=true; + updateFrame(); return; } } @@ -234,7 +235,7 @@ public class Renderer extends SurfaceView implements SurfaceHolder.Callback { */ public void removeToDraw(String name){ removeToDrawWithoutUpdate(name); - contentChanged=true; + updateFrame(); } /** * remove the element from the draw list @@ -242,7 +243,7 @@ public class Renderer extends SurfaceView implements SurfaceHolder.Callback { */ public void removeToDraw(Drawable toRemove){ toDraw.remove(toRemove); - contentChanged=true; + updateFrame(); } @@ -264,10 +265,6 @@ public class Renderer extends SurfaceView implements SurfaceHolder.Callback { return drawable; } - public void setEngine(GameLogicThread engine) { - this.engine = engine; - } - /** * retourne une carte au coodonés donné * MAIS ne met pas ajour le rendu