card scalling

This commit is contained in:
marc
2020-10-12 16:25:41 +02:00
parent 912bbc980a
commit db08395b97
13 changed files with 152 additions and 100 deletions
+3
View File
@@ -26,6 +26,9 @@ dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"]) implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.1' implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'com.google.android.material:material:1.2.1'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
+14 -1
View File
@@ -9,7 +9,20 @@
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme"> android:theme="@style/AppTheme">
<activity android:name=".Game.HandActivity"></activity> <activity
android:name=".Game.HandActivity.ItemListActivity"
android:label="@string/title_item_list"
android:theme="@style/AppTheme.NoActionBar"></activity>
<activity
android:name=".Game.HandActivity.ItemDetailActivity"
android:label="@string/title_item_detail"
android:parentActivityName=".Game.HandActivity.ItemListActivity"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.iutlaval.myapplication.Game.HandActivity.ItemListActivity" />
</activity>
<activity android:name=".Game.HandActivity" />
<activity android:name=".MainActivity"> <activity android:name=".MainActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
@@ -2,7 +2,6 @@ package com.iutlaval.myapplication.Game.Decks;
import android.content.Context; import android.content.Context;
import com.iutlaval.myapplication.Game.HandActivity;
import java.util.Objects; import java.util.Objects;
@@ -1,14 +1,11 @@
package com.iutlaval.myapplication.Game; package com.iutlaval.myapplication.Game;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.MotionEvent; import android.view.MotionEvent;
import com.iutlaval.myapplication.Game.Cards.Card; import com.iutlaval.myapplication.Game.Cards.Card;
import com.iutlaval.myapplication.Game.Cards.DemoCard;
import com.iutlaval.myapplication.Game.Decks.Deck; import com.iutlaval.myapplication.Game.Decks.Deck;
import com.iutlaval.myapplication.Game.Decks.DeckDemo; import com.iutlaval.myapplication.Game.Decks.DeckDemo;
import com.iutlaval.myapplication.GameActivity; import com.iutlaval.myapplication.GameActivity;
@@ -76,7 +73,7 @@ public class GameLogicThread extends Thread{
for(Card c : localPlayerHand.getHand()) for(Card c : localPlayerHand.getHand())
{ {
renderer.addToDraw(c.getDrawableCard()); renderer.addToDraw(c.getDrawableCard());
renderer.moveToDraw(i*DrawableCard.CARD_WITH,90F,c.getDrawableCard().getName()); renderer.moveToDraw(i* DrawableCard.CARD_WITH,90F,c.getDrawableCard().getName());
i++; i++;
} }
@@ -105,6 +102,10 @@ public class GameLogicThread extends Thread{
} }
private DrawableCard currentlySelected = null;
private static final float SELECTING_OFFSET = 20F;
/** /**
* relais l'evenement directement au touch Handler * relais l'evenement directement au touch Handler
* @param event * @param event
@@ -114,22 +115,21 @@ public class GameLogicThread extends Thread{
float unscalled_Y = event.getY() / GameActivity.screenHeight * 100; float unscalled_Y = event.getY() / GameActivity.screenHeight * 100;
if(unscalled_Y >= 90F) { if(unscalled_Y >= 90F) {
float unscalled_X = event.getX() / GameActivity.screenWidth * 100; float unscalled_X = event.getX() / GameActivity.screenWidth * 100;
//TODO : display fullscreen cards DrawableCard smallCArd = renderer.getCardOn(unscalled_X,unscalled_Y);
Intent HandActivity = new Intent(gameActivity, HandActivity.class); if(smallCArd !=null)
String[] serializedHand = new String[localPlayerHand.getHand().size() +1];
int i = 0;
serializedHand[i] = localPlayerDeck.getDeckName();
for(Card c : localPlayerHand.getHand())
{ {
i++; if(currentlySelected !=null)
serializedHand[i] = c.getName(); {
currentlySelected.setCoordinates(currentlySelected.getX(),currentlySelected.getY() + SELECTING_OFFSET);
renderer.removeToDraw(currentlySelected.getName()+"BIG");
}
currentlySelected = smallCArd;
DrawableCard bigCard = new DrawableCard(smallCArd,cont,2);
renderer.addToDraw(bigCard);
bigCard.setCoordinates(50F,50F);
smallCArd.setCoordinates(smallCArd.getX(),smallCArd.getY() - SELECTING_OFFSET);
touch.onTouchEvent(event);
} }
HandActivity.putExtra("hand",serializedHand);
Bundle cardSelectedBundle = new Bundle();
gameActivity.startActivity(HandActivity,cardSelectedBundle);
}else{ }else{
touch.onTouchEvent(event); touch.onTouchEvent(event);
} }
@@ -1,30 +0,0 @@
package com.iutlaval.myapplication.Game;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import com.iutlaval.myapplication.Game.Decks.Deck;
import com.iutlaval.myapplication.Game.Decks.DeckRegister;
import com.iutlaval.myapplication.R;
public class HandActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hand);
String[] serializedHand = getIntent().getStringArrayExtra("hand");
Deck d = DeckRegister.getClassFromName(serializedHand[0],this);
Intent data = new Intent();
String text = "Result to be returned....";
//---set the data to pass back---
data.setData(Uri.parse(text));
setResult(RESULT_OK, data);
}
}
@@ -1,10 +1,8 @@
package com.iutlaval.myapplication.Game; package com.iutlaval.myapplication.Game;
import android.content.Intent;
import android.view.MotionEvent; import android.view.MotionEvent;
import com.iutlaval.myapplication.GameActivity; import com.iutlaval.myapplication.GameActivity;
import com.iutlaval.myapplication.MainActivity;
import com.iutlaval.myapplication.Video.Drawables.DrawableCard; import com.iutlaval.myapplication.Video.Drawables.DrawableCard;
import com.iutlaval.myapplication.Video.Renderer; import com.iutlaval.myapplication.Video.Renderer;
@@ -24,22 +22,27 @@ public class TouchHandler {
public void onTouchEvent(MotionEvent event){ public void onTouchEvent(MotionEvent event){
//on ignore le multi touch
if(event.getPointerCount() <= 1) if(event.getPointerCount() <= 1)
{ {
float unscalled_X = event.getX() / GameActivity.screenWidth * 100; float unscaled_X = event.getX() / GameActivity.screenWidth * 100;
float unscalled_Y = event.getY() / GameActivity.screenHeight * 100; float unscaled_Y = event.getY() / GameActivity.screenHeight * 100;
if (event.getAction() == MotionEvent.ACTION_DOWN) { if (event.getAction() == MotionEvent.ACTION_DOWN) {
if(unscalled_Y <= 90F) { if(unscaled_Y <= 90F)
moveEventCard = renderer.getCardOn(unscalled_X, unscalled_Y); {
if (moveEventCard != null) { moveEventCard = renderer.getCardOn(unscaled_X, unscaled_Y -20F);
TouchDeltaY = unscalled_Y - moveEventCard.getY(); }else{
TouchDeltaX = unscalled_X - moveEventCard.getX(); moveEventCard = renderer.getCardOn(unscaled_X, unscaled_Y);
originalPositionX = moveEventCard.getX();
originalPositionY = moveEventCard.getY();
}
} }
if (moveEventCard != null) {
TouchDeltaY = unscaled_Y - moveEventCard.getY();
TouchDeltaX = unscaled_X - moveEventCard.getX();
originalPositionX = moveEventCard.getX();
originalPositionY = moveEventCard.getY();
}
} else if (event.getAction() == MotionEvent.ACTION_UP) { } else if (event.getAction() == MotionEvent.ACTION_UP) {
TouchDeltaY = 0; TouchDeltaY = 0;
TouchDeltaX = 0; TouchDeltaX = 0;
@@ -47,7 +50,7 @@ public class TouchHandler {
if(moveEventCard != null)renderer.moveToDraw(originalPositionX,originalPositionY,moveEventCard.getName()); if(moveEventCard != null)renderer.moveToDraw(originalPositionX,originalPositionY,moveEventCard.getName());
moveEventCard = null; moveEventCard = null;
} else if (moveEventCard != null) { } else if (moveEventCard != null) {
moveEventCard.setCoordinates(unscalled_X - TouchDeltaX, unscalled_Y - TouchDeltaY); moveEventCard.setCoordinates(unscaled_X - TouchDeltaX, unscaled_Y - TouchDeltaY);
renderer.updateFrame(); renderer.updateFrame();
} }
} }
@@ -1,6 +1,7 @@
package com.iutlaval.myapplication.Video.Drawables; package com.iutlaval.myapplication.Video.Drawables;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.Paint; import android.graphics.Paint;
@@ -239,4 +240,8 @@ public class Drawable {
} }
return output; return output;
} }
protected void scale(float i) {
bitmap = Bitmap.createScaledBitmap(this.bitmap,(int)(bitmap.getWidth()*i),(int)(bitmap.getHeight()*i),GameActivity.bilinearFiltering);
}
} }
@@ -18,6 +18,7 @@ import com.iutlaval.myapplication.Video.Rectangle;
* TODO : tout mettre dans des finals * TODO : tout mettre dans des finals
*/ */
public class DrawableCard extends Drawable{ public class DrawableCard extends Drawable{
private int ratio;
public static final int CARD_WITH = 14; public static final int CARD_WITH = 14;
private static final int CARD_HEIGHT = 40; private static final int CARD_HEIGHT = 40;
@@ -65,16 +66,16 @@ public class DrawableCard extends Drawable{
private static final float ONBOARD_RECTANGLE_ATK_X = CARD_HEIGHT * 0F; private static final float ONBOARD_RECTANGLE_ATK_X = CARD_HEIGHT * 0F;
private static final float ONBOARD_RECTANGLE_HP_X = CARD_WITH * 0.5F; private static final float ONBOARD_RECTANGLE_HP_X = CARD_WITH * 0.5F;
private final float OFFBOARD_PICTURE_X = 0.0787F * CARD_WITH; private static final float OFFBOARD_PICTURE_X = 0.0787F * CARD_WITH;
private final float OFFBOARD_PICTURE_Y = 0.0834F * CARD_HEIGHT; private static final float OFFBOARD_PICTURE_Y = 0.0834F * CARD_HEIGHT;
private final float OFFBOARD_DESCRIPTION_X = 0.07F * CARD_WITH; private static final float OFFBOARD_DESCRIPTION_X = 0.07F * CARD_WITH;
private final float OFFBOARD_DESCRIPTION_Y = 0.455F * CARD_HEIGHT; private static final float OFFBOARD_DESCRIPTION_Y = 0.455F * CARD_HEIGHT;
private final float OFFBOARD_ATK_X = 0.08F * CARD_WITH; private static final float OFFBOARD_ATK_X = 0.08F * CARD_WITH;
private final float OFFBOARD_ATK_Y = 0.735F * CARD_HEIGHT; private static final float OFFBOARD_ATK_Y = 0.735F * CARD_HEIGHT;
private final float OFFBOARD_HP_X = 0.7F * CARD_WITH; private static final float OFFBOARD_HP_X = 0.7F * CARD_WITH;
private final float OFFBOARD_HP_Y = 0.735F * CARD_HEIGHT; private static final float OFFBOARD_HP_Y = 0.735F * CARD_HEIGHT;
private final float OFFBOARD_TITLE_X =0.1F * CARD_WITH; private static final float OFFBOARD_TITLE_X =0.1F * CARD_WITH;
private final float OFFBOARD_TITLE_Y = 0.025F * CARD_HEIGHT; private static final float OFFBOARD_TITLE_Y = 0.025F * CARD_HEIGHT;
private static final float CARD_ON_BOARD_DRAWABLE_WIDTH = CARD_WITH; private static final float CARD_ON_BOARD_DRAWABLE_WIDTH = CARD_WITH;
private static final float CARD_ON_BOARD_DRAWABLE_HEIGHT = CARD_HEIGHT*0.667F; private static final float CARD_ON_BOARD_DRAWABLE_HEIGHT = CARD_HEIGHT*0.667F;
@@ -116,22 +117,46 @@ public class DrawableCard extends Drawable{
* donc les coodonées ne se trouve que dans cette fonction * donc les coodonées ne se trouve que dans cette fonction
*/ */
public DrawableCard(Card c, float x, float y, String name, Context context){ public DrawableCard(Card c, float x, float y, String name, Context context){
super(c.getFrameBitmap(context),x,y,name,CARD_WITH,CARD_HEIGHT); this(c,x,y,name,context,1);
}
/**
* ce constructeur permet de crée un drawable simplifier pour les carte qui integre :
* _le supoort de la description
* _le support du titre
* _le changement d'etat entre grand et terrain
* _les point de vie
* _les point attaque
* _l'image
* _les deplacement du tout
*
*
* @param c carte a dessiner
* @param x position de la carte sur l'axe x
* @param y position de la carte sur l'axe y
* @param name nom du drawable
* @param context le contexte est simplement l'instance de GameActivity qui est utiliser pas le moteur de jeu
* @param ratio le ratio dirigeant la taille de la carte
* @throws InvalidDataException
* toutes les coodonés sont a zero pour faciliter la maintenance car la fonction setCoordinates() est appler pour corriger toutes les coordonées
* donc les coodonées ne se trouve que dans cette fonction
*/
public DrawableCard(Card c, float x, float y, String name, Context context,int ratio){
super(c.getFrameBitmap(context),x,y,name,CARD_WITH*ratio,CARD_HEIGHT*ratio);
this.ratio=ratio;
card=c; card=c;
onBoard=false;
onBoard=true;
//to string retourne le hash code de l'objet qui est donc unique ce qui fait de lui un id parfait //to string retourne le hash code de l'objet qui est donc unique ce qui fait de lui un id parfait
cardDescription = new Drawable(c.getDescription(),0,0,toString()+"description",DESCRIPTION_WIDTH,DESCRIPTION_HEIGHT,DESCRIPTION_FONT_SIZE,DESCRIPTION_TEXT_X_RES,DESCRIPTION_TEXT_Y_RES); cardDescription = new Drawable(c.getDescription(),0,0,toString()+"description",DESCRIPTION_WIDTH*ratio,DESCRIPTION_HEIGHT*ratio,DESCRIPTION_FONT_SIZE*ratio,DESCRIPTION_TEXT_X_RES*ratio,DESCRIPTION_TEXT_Y_RES*ratio);
cardTitle = new Drawable(c.getName(),0,0,toString()+"name",TITLE_WIDTH,TITLE_HEIGHT,TITLE_FONT_SIZE,TEXT_TITLE_X_RES,TEXT_TITLE_Y_RES); cardTitle = new Drawable(c.getName(),0,0,toString()+"name",TITLE_WIDTH*ratio,TITLE_HEIGHT*ratio,TITLE_FONT_SIZE*ratio,TEXT_TITLE_X_RES*ratio,TEXT_TITLE_Y_RES*ratio);
Rectangle opacityRect = new Rectangle(x,y,OPACITY_RECT_WIDTH+x,OPACITY_RECT_HEIGHT+x); Rectangle opacityRect = new Rectangle(x,y,OPACITY_RECT_WIDTH*ratio+x,OPACITY_RECT_HEIGHT*ratio+x);
Bitmap pictureBitmap = BitmapFactory.decodeResource(context.getResources(),c.getCardPicture()); Bitmap pictureBitmap = BitmapFactory.decodeResource(context.getResources(),c.getCardPicture());
try { try {
OpacityRectangleDrawable = new Drawable(opacityRect,toString()+"Opacity", Color.parseColor(c.getColor())); OpacityRectangleDrawable = new Drawable(opacityRect,toString()+"Opacity", Color.parseColor(c.getColor()));
PictureDrawable = new Drawable(pictureBitmap,0,0,toString()+"Picture",PICTURE_WIDTH,PICTURE_HEIGHT); PictureDrawable = new Drawable(pictureBitmap,0,0,toString()+"Picture",PICTURE_WIDTH*ratio,PICTURE_HEIGHT*ratio);
} catch (InvalidDataException e) { } catch (InvalidDataException e) {
e.printStackTrace(); e.printStackTrace();
Log.e("CARTE :","forme de la carte invalide !"); Log.e("CARTE :","forme de la carte invalide !");
@@ -139,26 +164,25 @@ public class DrawableCard extends Drawable{
} }
//TODO optimize rectangle by making it only one time //TODO optimize rectangle by making it only one time
//crée les rectangle pour la carte quand elle est sur le terrain //crée les rectangle pour la carte quand elle est sur le terrain
Rectangle cardOnBoardFrame = new Rectangle(x,y,ONBOARD_FRAME_X_SIZE,ONBOARD_FRAME_Y_SIZE); Rectangle cardOnBoardFrame = new Rectangle(x,y,ONBOARD_FRAME_X_SIZE*ratio,ONBOARD_FRAME_Y_SIZE*ratio);
cardOnBoardFrame.scaleRectangleToScreen(); cardOnBoardFrame.scaleRectangleToScreen();
Rectangle cardOnBoardAtk = new Rectangle(x + ONBOARD_RECTANGLE_ATK_X, ONBOARD_RECTANGLE_ATK_HP_Y,ONBOARD_RECTANGLE_ATK_HP_WIDTH,ONBOARD_RECTANGLE_ATK_HP_HEIGHT); Rectangle cardOnBoardAtk = new Rectangle(x + ONBOARD_RECTANGLE_ATK_X*ratio, ONBOARD_RECTANGLE_ATK_HP_Y*ratio,ONBOARD_RECTANGLE_ATK_HP_WIDTH*ratio,ONBOARD_RECTANGLE_ATK_HP_HEIGHT*ratio);
cardOnBoardAtk.scaleRectangleToScreen(); cardOnBoardAtk.scaleRectangleToScreen();
Rectangle cardOnBoardHp = new Rectangle(x + ONBOARD_RECTANGLE_HP_X, ONBOARD_RECTANGLE_ATK_HP_Y,ONBOARD_RECTANGLE_ATK_HP_WIDTH,ONBOARD_RECTANGLE_ATK_HP_HEIGHT); Rectangle cardOnBoardHp = new Rectangle(x + ONBOARD_RECTANGLE_HP_X*ratio, ONBOARD_RECTANGLE_ATK_HP_Y*ratio,ONBOARD_RECTANGLE_ATK_HP_WIDTH*ratio,ONBOARD_RECTANGLE_ATK_HP_HEIGHT*ratio);
cardOnBoardHp.scaleRectangleToScreen(); cardOnBoardHp.scaleRectangleToScreen();
//creation de la bitmap qui va être rendu //creation de la bitmap qui va être rendu
Bitmap cardOnBoardBitmap= Bitmap.createBitmap((int)cardOnBoardFrame.getWidth(),(int)cardOnBoardFrame.getHeight(), Bitmap.Config.ARGB_8888); Bitmap cardOnBoardBitmap= Bitmap.createBitmap((int)cardOnBoardFrame.getWidth()*ratio,(int)cardOnBoardFrame.getHeight(), Bitmap.Config.ARGB_8888);
//on dessine nos rectangle sur la bitmap //on dessine nos rectangle sur la bitmap
cardOnBoardFrame.bitmapRectangleBuilder(cardOnBoardBitmap,Color.parseColor(removeAlpha(c.getColor()))); cardOnBoardFrame.bitmapRectangleBuilder(cardOnBoardBitmap,Color.parseColor(removeAlpha(c.getColor())));
cardOnBoardAtk.bitmapRectangleBuilder(cardOnBoardBitmap,Color.parseColor("#FFFF0000")); cardOnBoardAtk.bitmapRectangleBuilder(cardOnBoardBitmap,Color.parseColor("#FFFF0000"));
cardOnBoardHp.bitmapRectangleBuilder(cardOnBoardBitmap,Color.parseColor("#FF00FF00")); cardOnBoardHp.bitmapRectangleBuilder(cardOnBoardBitmap,Color.parseColor("#FF00FF00"));
cardOnBoardDrawable = new Drawable(cardOnBoardBitmap,x,y,toString()+"BOARD",CARD_ON_BOARD_DRAWABLE_WIDTH,CARD_ON_BOARD_DRAWABLE_HEIGHT); cardOnBoardDrawable = new Drawable(cardOnBoardBitmap,x,y,toString()+"BOARD",CARD_ON_BOARD_DRAWABLE_WIDTH*ratio,CARD_ON_BOARD_DRAWABLE_HEIGHT*ratio);
c.setDrawableCard(this); c.setDrawableCard(this);
@@ -166,6 +190,9 @@ public class DrawableCard extends Drawable{
setCoordinates(getX(), getY()); setCoordinates(getX(), getY());
} }
public DrawableCard(DrawableCard smallCArd, Context cont,int ratio) {
this(smallCArd.card,smallCArd.getX(),smallCArd.getY(),smallCArd.getName()+"BIG",cont,ratio);
}
/** /**
@@ -181,14 +208,14 @@ public class DrawableCard extends Drawable{
{ {
if(onBoard) { if(onBoard) {
if (atk != null) if (atk != null)
cardAtkDrawable = new Drawable(atk+"", 0, 0, toString() + "atk", ONBOARD_ATK_HP_WIDTH, ONBOARD_ATK_HP_HEIGHT, HP_ATK_FONT_SIZE_BOARD,TEXT_ATK_HP_X_RES,TEXT_ATK_HP_Y_RES); cardAtkDrawable = new Drawable(atk+"", 0, 0, toString() + "atk", ONBOARD_ATK_HP_WIDTH*ratio, ONBOARD_ATK_HP_HEIGHT*ratio, HP_ATK_FONT_SIZE_BOARD*ratio,TEXT_ATK_HP_X_RES*ratio,TEXT_ATK_HP_Y_RES*ratio);
if (hp != null) if (hp != null)
cardHpDrawable = new Drawable(hp+"", 0, 0, toString() + "hp", ONBOARD_ATK_HP_WIDTH, ONBOARD_ATK_HP_HEIGHT, HP_ATK_FONT_SIZE_BOARD,TEXT_ATK_HP_X_RES,TEXT_ATK_HP_Y_RES); cardHpDrawable = new Drawable(hp+"", 0, 0, toString() + "hp", ONBOARD_ATK_HP_WIDTH*ratio, ONBOARD_ATK_HP_HEIGHT*ratio, HP_ATK_FONT_SIZE_BOARD*ratio,TEXT_ATK_HP_X_RES*ratio,TEXT_ATK_HP_Y_RES*ratio);
}else{ }else{
if (atk != null) if (atk != null)
cardAtkDrawable = new Drawable(atk + "", 0, 0, toString() + "atk", OFFBOARD_ATK_HP_WIDTH, OFFBOARD_ATK_HP_HEIGHT, HP_ATK_FONT_SIZE_BIG_CARD,TEXT_ATK_HP_X_RES,TEXT_ATK_HP_Y_RES); cardAtkDrawable = new Drawable(atk + "", 0, 0, toString() + "atk", OFFBOARD_ATK_HP_WIDTH*ratio, OFFBOARD_ATK_HP_HEIGHT*ratio, HP_ATK_FONT_SIZE_BIG_CARD*ratio,TEXT_ATK_HP_X_RES*ratio,TEXT_ATK_HP_Y_RES*ratio);
if (hp != null) if (hp != null)
cardHpDrawable = new Drawable(hp + "", 0, 0, toString() + "hp", OFFBOARD_ATK_HP_WIDTH, OFFBOARD_ATK_HP_HEIGHT, HP_ATK_FONT_SIZE_BIG_CARD,TEXT_ATK_HP_X_RES,TEXT_ATK_HP_Y_RES); cardHpDrawable = new Drawable(hp + "", 0, 0, toString() + "hp", OFFBOARD_ATK_HP_WIDTH*ratio, OFFBOARD_ATK_HP_HEIGHT*ratio, HP_ATK_FONT_SIZE_BIG_CARD*ratio,TEXT_ATK_HP_X_RES*ratio,TEXT_ATK_HP_Y_RES*ratio);
} }
setCoordinates(getX(), getY()); setCoordinates(getX(), getY());
} }
@@ -252,19 +279,19 @@ public class DrawableCard extends Drawable{
super.setCoordinates(x, y); super.setCoordinates(x, y);
if (onBoard) { if (onBoard) {
cardOnBoardDrawable.setCoordinates(x,y); cardOnBoardDrawable.setCoordinates(x,y);
PictureDrawable.setCoordinates(x + ONBOARD_PICTURE_X, y +ONBOARD_PICTURE_Y); PictureDrawable.setCoordinates(x + ONBOARD_PICTURE_X*ratio, y +ONBOARD_PICTURE_Y*ratio);
cardAtkDrawable.setCoordinates(x+ONBOARD_ATK_X,y + ONBOARD_ATK_HP_Y); cardAtkDrawable.setCoordinates(x+ONBOARD_ATK_X*ratio,y + ONBOARD_ATK_HP_Y*ratio);
cardHpDrawable.setCoordinates(x+ONBOARD_HP_X,y + ONBOARD_ATK_HP_Y); cardHpDrawable.setCoordinates(x+ONBOARD_HP_X*ratio,y + ONBOARD_ATK_HP_Y*ratio);
cardTitle.setCoordinates(x+ONBOARD_TITLE_X,y - ONBOARD_TITLE_Y); cardTitle.setCoordinates(x+ONBOARD_TITLE_X*ratio,y - ONBOARD_TITLE_Y*ratio);
}else{ }else{
OpacityRectangleDrawable.setCoordinates(x, y); OpacityRectangleDrawable.setCoordinates(x, y);
PictureDrawable.setCoordinates(x + OFFBOARD_PICTURE_X, y + OFFBOARD_PICTURE_Y); PictureDrawable.setCoordinates(x + OFFBOARD_PICTURE_X*ratio, y + OFFBOARD_PICTURE_Y*ratio);
//les textes ce dessines depuis leur base et non depuis le coin haut gauche //les textes ce dessines depuis leur base et non depuis le coin haut gauche
cardDescription.setCoordinates(x+OFFBOARD_DESCRIPTION_X,y+OFFBOARD_DESCRIPTION_Y); cardDescription.setCoordinates(x+OFFBOARD_DESCRIPTION_X*ratio,y+OFFBOARD_DESCRIPTION_Y*ratio);
cardAtkDrawable.setCoordinates(x + OFFBOARD_ATK_X,y + OFFBOARD_ATK_Y); cardAtkDrawable.setCoordinates(x + OFFBOARD_ATK_X*ratio,y + OFFBOARD_ATK_Y*ratio);
cardHpDrawable.setCoordinates(x + OFFBOARD_HP_X,y +OFFBOARD_HP_Y); cardHpDrawable.setCoordinates(x + OFFBOARD_HP_X*ratio,y +OFFBOARD_HP_Y*ratio);
cardTitle.setCoordinates(x+OFFBOARD_TITLE_X,y - OFFBOARD_TITLE_Y); cardTitle.setCoordinates(x+OFFBOARD_TITLE_X*ratio,y - OFFBOARD_TITLE_Y*ratio);
} }
} }
@@ -291,4 +318,5 @@ public class DrawableCard extends Drawable{
public static int getCardHeight() { public static int getCardHeight() {
return CARD_HEIGHT; return CARD_HEIGHT;
} }
} }
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

+13
View File
@@ -6,4 +6,17 @@
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".Game.HandActivity"> tools:context=".Game.HandActivity">
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="365dp"
android:layout_marginTop="232dp"
android:layout_marginEnd="324dp"
android:layout_marginBottom="160dp"
android:text="HELLO"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="fab_margin">16dp</dimen>
<dimen name="app_bar_height">200dp</dimen>
<dimen name="item_width">200dp</dimen>
<dimen name="text_margin">16dp</dimen>
</resources>
+2
View File
@@ -1,3 +1,5 @@
<resources> <resources>
<string name="app_name">MON JE</string> <string name="app_name">MON JE</string>
<string name="title_item_list">Items</string>
<string name="title_item_detail">Item Detail</string>
</resources> </resources>
+9
View File
@@ -7,4 +7,13 @@
<item name="colorAccent">@color/colorAccent</item> <item name="colorAccent">@color/colorAccent</item>
</style> </style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources> </resources>