preparatif moteur jeu + patch crash + patch couleur + simplification carte
This commit is contained in:
@@ -9,9 +9,27 @@ import android.util.Log;
|
|||||||
import com.iutlaval.myapplication.Game.Board;
|
import com.iutlaval.myapplication.Game.Board;
|
||||||
import com.iutlaval.myapplication.Game.Player.Player;
|
import com.iutlaval.myapplication.Game.Player.Player;
|
||||||
import com.iutlaval.myapplication.R;
|
import com.iutlaval.myapplication.R;
|
||||||
|
import com.iutlaval.myapplication.Video.DrawableCard;
|
||||||
|
|
||||||
public abstract class Card {
|
public abstract class Card {
|
||||||
private static Bitmap frameBitmap = null;
|
private static Bitmap frameBitmap = null;
|
||||||
|
private DrawableCard drawableCard = null;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public Card()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* cree une carte est lui definit un drawable
|
||||||
|
* @param UID
|
||||||
|
* @param c
|
||||||
|
*/
|
||||||
|
public Card(String UID,Context c)
|
||||||
|
{
|
||||||
|
drawableCard = new DrawableCard(this,0,0,UID,c);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* *cette methode est appeler a chaque fois que la carte attaque
|
* *cette methode est appeler a chaque fois que la carte attaque
|
||||||
@@ -111,5 +129,22 @@ public abstract class Card {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public abstract int getHealth();
|
public abstract int getHealth();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* NE PAS TOUCHER CETTE FONCTION SI VOUS N'ÊTES PAS SUR DE CE QUE VOUS FAITES
|
||||||
|
* cette fonction permet de redefinir le drawable de la carte
|
||||||
|
* @param drawableCard
|
||||||
|
*/
|
||||||
|
public void setDrawableCard(DrawableCard drawableCard) {
|
||||||
|
this.drawableCard = drawableCard;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* NE PAS OVERRIDE CETTE FONCTION
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public DrawableCard getDrawableCard() {
|
||||||
|
return drawableCard;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,27 @@
|
|||||||
package com.iutlaval.myapplication.Game.Cards;
|
package com.iutlaval.myapplication.Game.Cards;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
|
|
||||||
import com.iutlaval.myapplication.R;
|
import com.iutlaval.myapplication.R;
|
||||||
|
|
||||||
public class DemoCard extends Card{
|
public class DemoCard extends Card{
|
||||||
|
|
||||||
|
public DemoCard()
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cree une carte est lui definit un drawable
|
||||||
|
*
|
||||||
|
* @param UID
|
||||||
|
* @param c
|
||||||
|
*/
|
||||||
|
public DemoCard(String UID, Context c) {
|
||||||
|
super(UID, c);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getCardPicture() {
|
public int getCardPicture() {
|
||||||
return R.drawable.guerrier_nul;
|
return R.drawable.guerrier_nul;
|
||||||
@@ -15,7 +31,7 @@ public class DemoCard extends Card{
|
|||||||
//#AARRGGBB
|
//#AARRGGBB
|
||||||
@Override
|
@Override
|
||||||
public String getColor() {
|
public String getColor() {
|
||||||
return "#70000000";
|
return "#00000000";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
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 com.iutlaval.myapplication.Game.Cards.Card;
|
||||||
|
import com.iutlaval.myapplication.Game.Cards.DemoCard;
|
||||||
|
import com.iutlaval.myapplication.InvalidDataException;
|
||||||
|
import com.iutlaval.myapplication.R;
|
||||||
|
import com.iutlaval.myapplication.Video.Drawable;
|
||||||
|
import com.iutlaval.myapplication.Video.DrawableCard;
|
||||||
|
import com.iutlaval.myapplication.Video.FpsTime;
|
||||||
|
import com.iutlaval.myapplication.Video.Rectangle;
|
||||||
|
import com.iutlaval.myapplication.Video.Renderer;
|
||||||
|
|
||||||
|
public class GameLogicThread extends Thread{
|
||||||
|
|
||||||
|
Context cont;
|
||||||
|
Renderer renderer;
|
||||||
|
|
||||||
|
public GameLogicThread(Context cont, Renderer renderer)
|
||||||
|
{
|
||||||
|
this.cont = cont;
|
||||||
|
this.renderer = renderer;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
|
||||||
|
Bitmap bm = BitmapFactory.decodeResource(cont.getResources(), R.drawable.debug_card);
|
||||||
|
|
||||||
|
try {
|
||||||
|
renderer.addToDraw(new Drawable(new Rectangle(0,0,100,100),"background", Color.BLUE));
|
||||||
|
//renderer.addToDraw(new Drawable(bm,0.0F,0.0F,"running",8F,16F));
|
||||||
|
//renderer.addToDraw(new DrawableCard(new DemoCard(),0.0F,0.0F,"card2",cont));
|
||||||
|
Card card2 = new DemoCard("card3",cont);
|
||||||
|
if(!renderer.addToDraw(card2.getDrawableCard())) Log.e("F","WTF");
|
||||||
|
Card card1 = new DemoCard("card1",cont);
|
||||||
|
if(!renderer.addToDraw(card1.getDrawableCard())) Log.e("F","WTF");
|
||||||
|
} catch (InvalidDataException e) {
|
||||||
|
//cette erreur est lance si un carre est invalid
|
||||||
|
System.err.println(e.getDetail());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int i=0;
|
||||||
|
int increm = 1;
|
||||||
|
while(true)
|
||||||
|
{
|
||||||
|
if(i < 100)
|
||||||
|
{
|
||||||
|
i+=increm;
|
||||||
|
}else{
|
||||||
|
increm=-increm;
|
||||||
|
i+=increm;
|
||||||
|
}
|
||||||
|
if(i==0)increm=-increm;
|
||||||
|
|
||||||
|
//TODO get x,y coordinate form name
|
||||||
|
//r.moveToDraw(i,i,"card2");
|
||||||
|
renderer.moveToDraw(1,1,"card3");
|
||||||
|
renderer.moveToDraw(20,1,"card1");
|
||||||
|
FpsTime.waitFrameTime();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//placeOnBoard()
|
||||||
|
}
|
||||||
@@ -12,6 +12,7 @@ import android.os.Bundle;
|
|||||||
import android.view.Display;
|
import android.view.Display;
|
||||||
|
|
||||||
import com.iutlaval.myapplication.Game.Cards.DemoCard;
|
import com.iutlaval.myapplication.Game.Cards.DemoCard;
|
||||||
|
import com.iutlaval.myapplication.Game.GameLogicThread;
|
||||||
import com.iutlaval.myapplication.Video.Drawable;
|
import com.iutlaval.myapplication.Video.Drawable;
|
||||||
import com.iutlaval.myapplication.Video.DrawableCard;
|
import com.iutlaval.myapplication.Video.DrawableCard;
|
||||||
import com.iutlaval.myapplication.Video.FpsTime;
|
import com.iutlaval.myapplication.Video.FpsTime;
|
||||||
@@ -40,7 +41,7 @@ public class GameActivity extends Activity {
|
|||||||
Display display = getWindowManager().getDefaultDisplay();
|
Display display = getWindowManager().getDefaultDisplay();
|
||||||
FpsTime.init(display);
|
FpsTime.init(display);
|
||||||
|
|
||||||
Renderer v = new Renderer(getBaseContext());
|
Renderer renderer = new Renderer(getBaseContext());
|
||||||
|
|
||||||
//return portrait mode resolution so we need to flip them
|
//return portrait mode resolution so we need to flip them
|
||||||
Point size = new Point();
|
Point size = new Point();
|
||||||
@@ -54,56 +55,10 @@ public class GameActivity extends Activity {
|
|||||||
screenHeight = size.y;
|
screenHeight = size.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Thread t = new GameLogicThread(this,renderer);
|
||||||
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.debug_card);
|
|
||||||
|
|
||||||
try {
|
|
||||||
v.addToDraw(new Drawable(new Rectangle(0,0,100,100),"background",Color.BLUE));
|
|
||||||
v.addToDraw(new Drawable(bm,0.0F,0.0F,"running",8F,16F));
|
|
||||||
v.addToDraw(new DrawableCard(new DemoCard(),0.0F,0.0F,"card2",this));
|
|
||||||
} catch (InvalidDataException e) {
|
|
||||||
//cette erreur est lance si un carre est invalid
|
|
||||||
System.err.println(e.getDetail());
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
Thread t = new MainThread(v);
|
|
||||||
t.start();
|
t.start();
|
||||||
|
|
||||||
setContentView(v);
|
setContentView(renderer);
|
||||||
}
|
|
||||||
|
|
||||||
//TODO a supprime quand le moteur de jeu pour être utliser a des fin de teste
|
|
||||||
private class MainThread extends Thread
|
|
||||||
{
|
|
||||||
Renderer view;
|
|
||||||
public MainThread(Renderer view)
|
|
||||||
{
|
|
||||||
super();
|
|
||||||
this.view=view;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
int i=0;
|
|
||||||
int increm = 1;
|
|
||||||
while(true)
|
|
||||||
{
|
|
||||||
if(i < 100)
|
|
||||||
{
|
|
||||||
i+=increm;
|
|
||||||
}else{
|
|
||||||
increm=-increm;
|
|
||||||
i+=increm;
|
|
||||||
}
|
|
||||||
if(i==0)increm=-increm;
|
|
||||||
|
|
||||||
//TODO get x,y coordinate form name
|
|
||||||
view.moveToDraw(i,i,"card2");
|
|
||||||
//view.moveToDraw(1,1,"card2");
|
|
||||||
FpsTime.waitFrameTime();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.iutlaval.myapplication.Video;
|
|||||||
|
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
|
import android.graphics.Color;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -85,6 +86,7 @@ public class Drawable {
|
|||||||
|
|
||||||
checkPaint();
|
checkPaint();
|
||||||
p.setTextSize(textSize*2);
|
p.setTextSize(textSize*2);
|
||||||
|
p.setColor(Color.BLACK);
|
||||||
|
|
||||||
Canvas c = new Canvas(bitmap);
|
Canvas c = new Canvas(bitmap);
|
||||||
|
|
||||||
@@ -118,7 +120,7 @@ public class Drawable {
|
|||||||
|
|
||||||
rectangle.scaleRectangleToScreen();
|
rectangle.scaleRectangleToScreen();
|
||||||
Bitmap bitmap = Bitmap.createBitmap((int)rectangle.getWidth(),(int)rectangle.getHeight(), Bitmap.Config.ARGB_8888);
|
Bitmap bitmap = Bitmap.createBitmap((int)rectangle.getWidth(),(int)rectangle.getHeight(), Bitmap.Config.ARGB_8888);
|
||||||
rectangle.bitmapRectangleBuilder(bitmap,color,p);
|
rectangle.bitmapRectangleBuilder(bitmap,color);
|
||||||
|
|
||||||
this.bitmap=bitmap;
|
this.bitmap=bitmap;
|
||||||
}
|
}
|
||||||
@@ -140,7 +142,7 @@ public class Drawable {
|
|||||||
if(rectangle.getHeight() <= 0 || rectangle.getWidth() <=0 || bitmap == null)throw new InvalidDataException(name,rectangle);
|
if(rectangle.getHeight() <= 0 || rectangle.getWidth() <=0 || bitmap == null)throw new InvalidDataException(name,rectangle);
|
||||||
|
|
||||||
rectangle.scaleRectangleToScreen();
|
rectangle.scaleRectangleToScreen();
|
||||||
rectangle.bitmapRectangleBuilder(bitmap,color,p);
|
rectangle.bitmapRectangleBuilder(bitmap,color);
|
||||||
this.bitmap = bitmap;
|
this.bitmap = bitmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ public class DrawableCard extends Drawable{
|
|||||||
|
|
||||||
Paint p = new Paint();
|
Paint p = new Paint();
|
||||||
|
|
||||||
|
//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,CARD_WITH,CARD_HEIGHT/2);
|
Rectangle cardOnBoardFrame = new Rectangle(x,y,CARD_WITH,CARD_HEIGHT/2);
|
||||||
cardOnBoardFrame.scaleRectangleToScreen();
|
cardOnBoardFrame.scaleRectangleToScreen();
|
||||||
@@ -86,11 +86,13 @@ public class DrawableCard extends Drawable{
|
|||||||
Bitmap cardOnBoardBitmap= Bitmap.createBitmap((int)cardOnBoardFrame.getWidth(),(int)cardOnBoardFrame.getHeight(), Bitmap.Config.ARGB_8888);
|
Bitmap cardOnBoardBitmap= Bitmap.createBitmap((int)cardOnBoardFrame.getWidth(),(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())),p);
|
cardOnBoardFrame.bitmapRectangleBuilder(cardOnBoardBitmap,Color.parseColor(removeAlpha(c.getColor())));
|
||||||
cardOnBoardHp.bitmapRectangleBuilder(cardOnBoardBitmap,Color.parseColor("#FF00FF00"),p);
|
cardOnBoardHp.bitmapRectangleBuilder(cardOnBoardBitmap,Color.parseColor("#FF00FF00"));
|
||||||
cardOnBoardAtk.bitmapRectangleBuilder(cardOnBoardBitmap,Color.parseColor("#FFFF0000"),p);
|
cardOnBoardAtk.bitmapRectangleBuilder(cardOnBoardBitmap,Color.parseColor("#FFFF0000"));
|
||||||
|
|
||||||
cardOnBardDrawable = new Drawable(cardOnBoardBitmap,x,y,toString()+"BOARD",CARD_WITH,CARD_HEIGHT*2/3);
|
cardOnBardDrawable = new Drawable(cardOnBoardBitmap,x,y,toString()+"BOARD",CARD_WITH,CARD_HEIGHT*2/3);
|
||||||
|
|
||||||
|
c.setDrawableCard(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import android.graphics.Paint;
|
|||||||
import com.iutlaval.myapplication.GameActivity;
|
import com.iutlaval.myapplication.GameActivity;
|
||||||
|
|
||||||
public class Rectangle {
|
public class Rectangle {
|
||||||
|
public static Paint p;
|
||||||
float positionX,positionY,width,height;
|
float positionX,positionY,width,height;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -72,9 +72,8 @@ public class Rectangle {
|
|||||||
* retourne la bitmap entre mais avec un rectangle dessiner dedans
|
* retourne la bitmap entre mais avec un rectangle dessiner dedans
|
||||||
* @param bitmap la bitmap sur la quelle dessiner
|
* @param bitmap la bitmap sur la quelle dessiner
|
||||||
* @param color la couleur du carre
|
* @param color la couleur du carre
|
||||||
* @param p le pinceau utiliser pour le canevas
|
|
||||||
*/
|
*/
|
||||||
public void bitmapRectangleBuilder(Bitmap bitmap, int color,Paint p)
|
public void bitmapRectangleBuilder(Bitmap bitmap, int color)
|
||||||
{
|
{
|
||||||
RectangleCanevas c = new RectangleCanevas(bitmap);
|
RectangleCanevas c = new RectangleCanevas(bitmap);
|
||||||
if(p==null)p = new Paint();
|
if(p==null)p = new Paint();
|
||||||
|
|||||||
@@ -76,7 +76,8 @@ public class Renderer extends SurfaceView implements SurfaceHolder.Callback {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected void onDraw(Canvas canvas) {
|
protected void onDraw(Canvas canvas) {
|
||||||
for(Drawable d : toDraw)
|
//le to Array patch les crash
|
||||||
|
for(Drawable d : toDraw.toArray(new Drawable[0]))
|
||||||
{
|
{
|
||||||
d.drawOn(canvas,p);
|
d.drawOn(canvas,p);
|
||||||
}
|
}
|
||||||
@@ -121,6 +122,7 @@ public class Renderer extends SurfaceView implements SurfaceHolder.Callback {
|
|||||||
* @return retourne faux si l'element existe deja
|
* @return retourne faux si l'element existe deja
|
||||||
*/
|
*/
|
||||||
public boolean addToDraw(Drawable newElement){
|
public boolean addToDraw(Drawable newElement){
|
||||||
|
if(newElement == null)return false;
|
||||||
for(Drawable d : toDraw)
|
for(Drawable d : toDraw)
|
||||||
{
|
{
|
||||||
if(d.equals(newElement))
|
if(d.equals(newElement))
|
||||||
|
|||||||
Reference in New Issue
Block a user