1
0
mirror of https://github.com/Klagarge/PokeHES.git synced 2024-11-22 17:33:27 +00:00

with row done

This commit is contained in:
Rémi Heredero 2022-06-19 23:14:15 +02:00
parent 9fd232ab12
commit c6b854948d
5 changed files with 47 additions and 27 deletions

View File

@ -1,5 +1,7 @@
package Control;
import com.badlogic.gdx.Input;
import Screen.ScreenPlayer;
/**
@ -10,9 +12,11 @@ import Screen.ScreenPlayer;
*/
public class Keyboard {
public void keyDown(int keycode, ScreenPlayer sp, Controller c) {
if (keycode == Input.Keys.SPACE) c.keyStatus.put(Input.Keys.A, true);
c.keyStatus.put(keycode, true);
}
public void onKeyUp(int keycode, ScreenPlayer sp, Controller c) {
if (keycode == Input.Keys.SPACE) c.keyStatus.put(Input.Keys.A, false);
c.keyStatus.put(keycode, false);
}
}

View File

@ -33,17 +33,13 @@ public class Battle {
public void readNextLine(){
//change line
System.out.println(textEnemy.lines.size());
//System.out.println(textEnemy.lines.size());
if(lineSpeech < 5){
lineSpeech++;
}
}
public void action(int answer){
System.out.println("pv enemy : " +pvEnemy);
System.out.println("xp player : " + xpPlayer);
System.out.println("xp win " + newXp);
//the player is at the last question, the finish text must be displayed
if(getLineSpeech() == 4){
@ -98,10 +94,10 @@ public class Battle {
public void updatePlayerEnemy(int xp){
//add xp for the player
xpPlayer += xp;
if(xpPlayer>6000) xpPlayer = 6000;
//remove pv enemy
pvEnemy -= xp;
if(pvEnemy<0) pvEnemy =0;
}
public void finishSpeech(){
@ -158,4 +154,8 @@ public class Battle {
public void setPlayer(Player p){
this.player = p;
}
public void updateText(){
if(e != null) textEnemy.generateText(cursor);
}
}

View File

@ -2,6 +2,8 @@ package Main;
import java.util.Vector;
import com.badlogic.gdx.Input;
import Control.Controller;
import Entity.Enemy;
import Entity.Entity;
@ -21,7 +23,6 @@ public class PokeHES extends PortableApplication {
private static Vector<Entity> entities = new Vector<>();
private long beginTime;
private long lastMesure;
private long stairTime;
public static boolean risingFront = false;
@ -146,14 +147,16 @@ public class PokeHES extends PortableApplication {
public void onKeyDown(int keycode) {
super.onKeyDown(keycode);
risingFront = true;
if (keycode == Input.Keys.SPACE) controller.keyStatus.put(Input.Keys.A, true);
if (keycode == Input.Keys.ENTER) controller.keyStatus.put(Input.Keys.A, true);
controller.keyStatus.put(keycode, true);
sp.screenManager.getActiveScreen().onKeyUp(keycode);
}
@Override
public void onKeyUp(int keycode) {
super.onKeyUp(keycode);
risingFront = false;
if (keycode == Input.Keys.SPACE) controller.keyStatus.put(Input.Keys.A, false);
if (keycode == Input.Keys.ENTER) controller.keyStatus.put(Input.Keys.A, false);
controller.keyStatus.put(keycode, false);
sp.screenManager.getActiveScreen().onKeyDown(keycode);
}
}

View File

@ -28,7 +28,7 @@ public class ScreenBattle extends RenderingScreen{
private BitmapImage enemyImg;
private BitmapImage playerImg;
private Battle b = null;
public Battle b = null;
@Override
@ -109,40 +109,46 @@ public class ScreenBattle extends RenderingScreen{
public void manage(Controller c, Battle battle){
//add a rising front to have one impulsion
if(PokeHES.risingFront){
if (c.keyStatus.get(Input.Keys.DOWN)){
battle.cursor++;
}
else if (c.keyStatus.get(Input.Keys.UP)){
battle.cursor--;
}
if (battle.cursor > 3) battle.cursor = 0;
if (battle.cursor < 0) battle.cursor = 3;
//the enemy is attacking
if( battle.getAttackOn() == false){
if (c.keyStatus.get(Input.Keys.SPACE) || c.keyStatus.get(Input.Keys.A)){
battle.action(-1);
}
}
if (c.keyStatus.get(Input.Keys.DOWN)){
b.cursor++;
}
else if (c.keyStatus.get(Input.Keys.UP)){
b.cursor--;
}
if (b.cursor>3)b.cursor =0;
if (b.cursor<0)b.cursor =3;
System.out.println("" + b.cursor);
//the enemy is speaking
if(battle.getAttackOn() == true){
if (c.keyStatus.get(Input.Keys.NUM_1) || c.keyStatus.get(Input.Keys.A) && b.cursor == 0){
battle.action(1);
battle.cursor = 0;
}
else if (c.keyStatus.get(Input.Keys.NUM_2) || c.keyStatus.get(Input.Keys.A) && b.cursor == 1){
battle.action(2);
battle.cursor = 0;
}
else if (c.keyStatus.get(Input.Keys.NUM_3) || c.keyStatus.get(Input.Keys.A) && b.cursor == 2){
battle.action(3);
battle.cursor = 0;
}
else if (c.keyStatus.get(Input.Keys.NUM_4) || c.keyStatus.get(Input.Keys.A) && b.cursor == 3){
battle.action(4);
battle.cursor = 0;
}
}
b.updateText();
//mettre le front à false jusqu'à ce que le bouton soit relâché
PokeHES.risingFront = false;
}

View File

@ -2,7 +2,6 @@ package Text;
import Entity.Enemy;
import java.util.Vector;
import java.text.Normalizer;
import java.util.Arrays;
import java.util.Random;
@ -30,6 +29,11 @@ public class TextEnemy {
//save random data (attack and answer) : attack, answer 1, answer 2 answer 3, answer 4
currentData = new Vector<int[]>();
orderAttack = randomGenerate(0, fightData.nbr_line-1, 4);
//generate a random array to determine the order of the answer
orderAnswer = randomGenerate(0, 3, 4);
}
public static int[] randomGenerate( int min, int max, int nbrRandom){
@ -68,20 +72,21 @@ public class TextEnemy {
//generate the text who is displays in battle screen
public void generateText(int cursor){
lines.clear();
int i =1;
//introduction line
String introduction = formatLine(speechData.getSpeechs(0), CUT);
lines.add(new Line(introduction, false));
orderAttack = randomGenerate(0, fightData.nbr_line-1, 4);
//orderAttack = randomGenerate(0, fightData.nbr_line-1, 4);
for(int j=0; j<4;j++){
int[] currentRandom = new int[5];
currentRandom[0] = orderAttack[j];
//generate a random array to determine the order of the answer
orderAnswer = randomGenerate(0, 3, 4);
//orderAnswer = randomGenerate(0, 3, 4);
//save the order of answer and attack
for(int k=1;k<5;k++){
@ -90,7 +95,7 @@ public class TextEnemy {
//Format the line
String[] row = new String[4];
row[0] = row[1] = row[2] = row[3] = "";
row[0] = row[1] = row[2] = row[3] = " ";
row[cursor] = "->";
String attack = formatLine(speechData.getSpeechs(i++) + fightData.getAttack(orderAttack[j]).attack + " ("+fightData.getAttack(orderAttack[j]).getXp()+ ") ", CUT);
String answer1 = formatLine(row[0] + " " + fightData.getAttack(orderAttack[j]).getAnswer(orderAnswer[0]) , CUT);
@ -106,9 +111,11 @@ public class TextEnemy {
}
//display answer
/*
for(int[] a : currentData){
System.out.println(Arrays.toString(a));
}
*/
//finish (win and death)