package fight3D;
import java.awt.Color;
import java.awt.Font;
import java.awt.GraphicsConfiguration;
import framework.RWT.RWTCanvas3D;
import framework.RWT.RWTLabel;
public class FightCanvas3D extends RWTCanvas3D implements FightListener{
Game game;
double distance;
RWTLabel player[] = new RWTLabel[6];
float showY = 0.8f;
float showX[];
static final double POINT_SPACE = 0.075;
double Point_distance = 0;
RWTLabel TP[] = new RWTLabel[6];
static final float TP_showY = 0.85f;
float TP_showX[];
RWTLabel HP[] = new RWTLabel[6];
static final float HP_showY = 0.9f;
float HP_showX[];
RWTLabel GP[] = new RWTLabel[6];
static final float GP_showY = 0.95f;
float GP_showX[];
int playerNum;
RWTLabel TIMER_Minute = new RWTLabel();
RWTLabel kolon = new RWTLabel();
RWTLabel TIMER_Second = new RWTLabel();
public void update(Fight f){
//各種ポイントの表示
for(int i = 0; i < f.getPlayerList().size(); i++){
TP_showX = new float[playerNum];
HP_showX = new float[playerNum];
String T_P = Integer.toString(f.getPlayerList().get(i).getTp());
String H_P = Integer.toString(f.getPlayerList().get(i).getHp());
String G_P = Integer.toString(f.getPlayerList().get(i).getGp());
TP[i].setString("TP : " + T_P);
HP[i].setString("HP : " + H_P);
GP[i].setString("GP : " + G_P);
TP_showX[i] = (float) ((POINT_SPACE - 0.05) + Point_distance * i);
HP_showX[i] = (float) ((POINT_SPACE - 0.05) + Point_distance * i);
GP_showX[i] = (float) ((POINT_SPACE - 0.05) + Point_distance * i);
TP[i].setRelativePosition((float)(TP_showX[i] + POINT_SPACE),TP_showY, RWTLabel.DRAW_RIGHT);
HP[i].setRelativePosition((float)(HP_showX[i] + POINT_SPACE),HP_showY, RWTLabel.DRAW_RIGHT);
GP[i].setRelativePosition((float)(HP_showX[i] + POINT_SPACE),GP_showY, RWTLabel.DRAW_RIGHT);
}
//タイマー表示
String.valueOf(f.getRemnantMinute());
String.valueOf(f.getRemnantSecond());
String TIMER_M = Integer.toString(f.getRemnantMinute());
String TIMER_S = Integer.toString(f.getRemnantSecond());
if(TIMER_S.length() == 1){
TIMER_S = "0" + TIMER_S;
}
TIMER_Minute.setString(TIMER_M);
kolon.setString(":");
TIMER_Second.setString(TIMER_S);
if(f.checkEnd() == true){
game.setRank(f.getRank());
game.setTp(f.getTp());
game.setDefeated(f.getDefeated());
game.setDefeat(f.getDefeat());
game.goNextGameState();
}
}
////////////////////////////////////////////////////////////////////////////////////
public FightCanvas3D(GraphicsConfiguration gc, Game g, int playerNum) {
super(gc);
init(g, playerNum);
}
public FightCanvas3D(Game g, int playerNum) {
init(g, playerNum);
}
public void init(Game g, int playerNum) {
game = g;
this.playerNum = playerNum;
//プレイヤー
double space = 0.075;
distance = (1.0 - space * 2) / (double)playerNum;
showX = new float[playerNum];
for(int i = 0; i < playerNum; i++){
player[i] = new RWTLabel();
String name = Integer.toString(i+1);
name = name + "P";
player[i].setString(name);
player[i].setColor(Color.GREEN);
showX[i] = (float) (distance * i);
player[i].setRelativePosition((float)(showX[i] + space),showY);
Font p = new Font("",Font.PLAIN,20);
player[i].setFont(p);
addWidget(player[i]);
}
//トータルポイント
double Point_space = 0.075;
Point_distance = (1.0 - Point_space * 2) / (double)playerNum;
TP_showX = new float[playerNum];
for(int i = 0; i < playerNum; i++){
TP[i] = new RWTLabel();
String name = "TP:";
TP[i].setString(name);
TP[i].setColor(Color.RED);
TP_showX[i] = (float) ((Point_space - 0.06) + Point_distance * i);
TP[i].setRelativePosition((float)(TP_showX[i] + Point_space),TP_showY, RWTLabel.DRAW_LEFT);
Font tp = new Font("",Font.PLAIN,10);
TP[i].setFont(tp);
addWidget(TP[i]);
}
//ヒットポイント
HP_showX = new float[playerNum];
for(int i = 0; i < playerNum; i++){
HP[i] = new RWTLabel();
String name = "HP:";
HP[i].setString(name);
HP[i].setColor(Color.BLUE);
HP_showX[i] = (float) ((Point_space - 0.06)+ Point_distance * i);
HP[i].setRelativePosition((float)(HP_showX[i] + Point_space),HP_showY, RWTLabel.DRAW_LEFT);
Font hp = new Font("",Font.PLAIN,10);
HP[i].setFont(hp);
addWidget(HP[i]);
}
//ガードポイント
GP_showX = new float[playerNum];
for(int i = 0; i < playerNum; i++){
GP[i] = new RWTLabel();
String name = "GP:";
GP[i].setString(name);
GP[i].setColor(Color.YELLOW);
GP_showX[i] = (float) ((Point_space - 0.06) + Point_distance * i);
GP[i].setRelativePosition((float)(GP_showX[i] + Point_space),GP_showY, RWTLabel.DRAW_LEFT);
Font gp = new Font("",Font.PLAIN,10);
GP[i].setFont(gp);
addWidget(GP[i]);
}
TIMER_Minute.setColor(Color.WHITE);
kolon.setColor(Color.WHITE);
TIMER_Second.setColor(Color.WHITE);
TIMER_Minute.setRelativePosition(0.8f, 0.1f);
kolon.setRelativePosition(0.86f, 0.1f);
TIMER_Second.setRelativePosition(0.9f, 0.1f);
Font t1 = new Font("",Font.PLAIN,40);
Font k = new Font("",Font.PLAIN,40);
Font t2 = new Font("",Font.PLAIN,40);
TIMER_Minute.setFont(t1);
kolon.setFont(k);
TIMER_Second.setFont(t2);
addWidget(TIMER_Minute);
addWidget(kolon);
addWidget(TIMER_Second);
Point_distance = (1.0 - POINT_SPACE * 2) / (double)playerNum;
}
}