ajout d'indication de placement des cartes

This commit is contained in:
marc barbier
2020-10-28 19:24:22 +01:00
parent 1b19265d4a
commit 244c689606
5 changed files with 95 additions and 21 deletions
@@ -1,4 +1,61 @@
package com.iutlaval.myapplication.Game;
import android.graphics.Color;
import com.iutlaval.myapplication.Game.Cards.Card;
import com.iutlaval.myapplication.InvalidDataException;
import com.iutlaval.myapplication.Video.Drawables.Drawable;
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.ArrayList;
import java.util.List;
public class PlayableZonesHandler {
//90F au lieu de 100F car on n'a pas la pioche
private static final float CARD_SPACING = 90F / Board.MAX_CARD_ON_BOARD;
private List<Drawable> playableZones;
private Board board;
public PlayableZonesHandler(Board board)
{
playableZones=new ArrayList<>();
this.board=board;
}
public void displayPlayableZones(Renderer renderer)
{
Card[] cardsOnBoard = board.getPlayerCardsOnBoard();
for(int i=0 ; i < cardsOnBoard.length ;i++)
{
if(cardsOnBoard[i] == null)
{
displayPlayableZoneOn(i,renderer);
}
}
}
private void displayPlayableZoneOn(int i,Renderer renderer) {
Rectangle pos = new Rectangle((DrawableCard.getCardWith()+1)*i,50F,DrawableCard.getCardWith(),DrawableCard.getCardHeight());
try {
Drawable zone = new DrawableRectangle(pos,"greySpace"+i, Color.LTGRAY);
playableZones.add(zone);
renderer.addToDrawWithoutUpdate(zone);
} catch (InvalidDataException e) {
e.printStackTrace();
}
}
public void HidePlayableZones(Renderer renderer)
{
for(Drawable d : playableZones)
{
renderer.removeToDraw(d);
}
playableZones.clear();
}
}