1
0
mirror of https://github.com/Klagarge/PokeHES.git synced 2024-11-26 19:13:27 +00:00

Merge pull request #45 from Klagarge:Commentaire-yann

ok
This commit is contained in:
Fastium 2022-06-16 23:30:01 +02:00 committed by GitHub
commit 8d074674da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 51 additions and 178 deletions

View File

@ -23,7 +23,7 @@ public class PokeMudry extends PortableApplication {
private long beginTime; private long beginTime;
private long lastMesure; private long lastMesure;
public static boolean front_montant = false; public static boolean risingFront = false;
public static void main(String[] args) { public static void main(String[] args) {
@ -138,14 +138,14 @@ public class PokeMudry extends PortableApplication {
@Override @Override
public void onKeyDown(int keycode) { public void onKeyDown(int keycode) {
super.onKeyDown(keycode); super.onKeyDown(keycode);
front_montant = true; risingFront = true;
controller.keyStatus.put(keycode, true); controller.keyStatus.put(keycode, true);
sp.screenManager.getActiveScreen().onKeyUp(keycode); sp.screenManager.getActiveScreen().onKeyUp(keycode);
} }
@Override @Override
public void onKeyUp(int keycode) { public void onKeyUp(int keycode) {
super.onKeyUp(keycode); super.onKeyUp(keycode);
front_montant = false; risingFront = false;
controller.keyStatus.put(keycode, false); controller.keyStatus.put(keycode, false);
sp.screenManager.getActiveScreen().onKeyDown(keycode); sp.screenManager.getActiveScreen().onKeyDown(keycode);
} }

View File

@ -33,7 +33,7 @@ public class ScreenBattle extends RenderingScreen{
@Override @Override
public void onInit() { public void onInit() {
//display the question //generate the fonts
unbuntuRegularBlack = generateFont("./Data/font/Ubuntu-Regular.ttf", 30, Color.BLACK); unbuntuRegularBlack = generateFont("./Data/font/Ubuntu-Regular.ttf", 30, Color.BLACK);
unbuntuRegularWhite = generateFont("./Data/font/Ubuntu-Regular.ttf", 45, Color.WHITE); unbuntuRegularWhite = generateFont("./Data/font/Ubuntu-Regular.ttf", 45, Color.WHITE);
} }
@ -41,7 +41,9 @@ public class ScreenBattle extends RenderingScreen{
@Override @Override
public void onGraphicRender(GdxGraphics g) { public void onGraphicRender(GdxGraphics g) {
//color the background in black
g.clear(Color.BLACK); g.clear(Color.BLACK);
//display the dialog, theenemy and the player
displayDialog(g); displayDialog(g);
displayEnemy(g); displayEnemy(g);
displayPlayer(g); displayPlayer(g);
@ -53,16 +55,18 @@ public class ScreenBattle extends RenderingScreen{
unbuntuRegularWhite.dispose(); unbuntuRegularWhite.dispose();
} }
//set the images for the player and the enemy
public void setImg(){ public void setImg(){
enemyImg = new BitmapImage(b.e.getImgBattle()); //width : 192, height : 240 enemyImg = new BitmapImage(b.e.getImgBattle()); //width : 192, height : 240
playerImg = new BitmapImage(b.player.getImgBattle()); playerImg = new BitmapImage(b.player.getImgBattle()); //width : 192, height : 240
} }
//set the battle
public void setBattle(Battle battle) { public void setBattle(Battle battle) {
this.b = battle; this.b = battle;
} }
//create a font with a file .ttf , a height and a color
public BitmapFont generateFont(String file, int height, Color c ){ public BitmapFont generateFont(String file, int height, Color c ){
//Generate font with the file .ttf //Generate font with the file .ttf
BitmapFont font; BitmapFont font;
@ -78,48 +82,38 @@ public class ScreenBattle extends RenderingScreen{
} }
public void displayDialog(GdxGraphics g){ public void displayDialog(GdxGraphics g){
//dialog background //draw the background
g.drawFilledRectangle(Settings.SIDE/2, HEIGHT_DIALOG/2 + EDGE, WIDTH_DIALOG, HEIGHT_DIALOG, 0); g.drawFilledRectangle(Settings.SIDE/2, HEIGHT_DIALOG/2 + EDGE, WIDTH_DIALOG, HEIGHT_DIALOG, 0);
//draw the dialog
//dialog
if(b == null) return; if(b == null) return;
if(b.getLine() == null) return; if(b.getLine() == null) return;
g.drawString(15, 260, b.getLine(), unbuntuRegularBlack); g.drawString(15, 260, b.getLine(), unbuntuRegularBlack);
} }
public void displayEnemy(GdxGraphics g){ public void displayEnemy(GdxGraphics g){
//draw image //draw image
g.drawPicture(Settings.SIDE - (192/2), Settings.SIDE-240/2, enemyImg); g.drawPicture(Settings.SIDE - (192/2), Settings.SIDE-240/2, enemyImg);
//draw pv //draw pv
g.drawString(300, Settings.SIDE - 15 , "PV : " + b.pvEnemy + " / " + b.e.getPvInit(), unbuntuRegularWhite); g.drawString(300, Settings.SIDE - 15 , "PV : " + b.pvEnemy + " / " + b.e.getPvInit(), unbuntuRegularWhite);
} }
public void displayPlayer(GdxGraphics g){ public void displayPlayer(GdxGraphics g){
//draw image //draw image
g.drawPicture((192/2), HEIGHT_DIALOG + 10 + 240/2, playerImg); g.drawPicture((192/2), HEIGHT_DIALOG + 10 + 240/2, playerImg);
//draw pv //draw pv and xp
g.drawString(255, HEIGHT_DIALOG + 100 , "XP : " + b.xpPlayer + " / " + b.player.getXpMax() + "\nPV : " + b.player.getPv() + " / " + Settings.TIME*60, unbuntuRegularWhite); g.drawString(255, HEIGHT_DIALOG + 100 , "XP : " + b.xpPlayer + " / " + b.player.getXpMax() + "\nPV : " + b.player.getPv() + " / " + Settings.TIME*60, unbuntuRegularWhite);
} }
public void manage(Controller c, Battle battle){ public void manage(Controller c, Battle battle){
if(PokeMudry.front_montant){ //add a rising front to have one impulsion
if(PokeMudry.risingFront){
//the enemi is attacking
if( battle.getAttackOn() == false){ if( battle.getAttackOn() == false){
if (c.keyStatus.get(Input.Keys.SPACE)){ if (c.keyStatus.get(Input.Keys.SPACE)){
battle.action(-1); battle.action(-1);
} }
if (c.keyStatus.get(Input.Keys.ENTER)){
battle.screenBattleOn = battle.screenBattleOn;
} }
} //the enemi is speaking
if(battle.getAttackOn() == true){ if(battle.getAttackOn() == true){
if (c.keyStatus.get(Input.Keys.NUM_1)){ if (c.keyStatus.get(Input.Keys.NUM_1)){
battle.action(1); battle.action(1);
@ -132,17 +126,10 @@ public class ScreenBattle extends RenderingScreen{
} }
else if (c.keyStatus.get(Input.Keys.NUM_4)){ else if (c.keyStatus.get(Input.Keys.NUM_4)){
battle.action(4); battle.action(4);
} }
} }
//mettre le front à false jusqu'à ce que le bouton soit relâché //mettre le front à false jusqu'à ce que le bouton soit relâché
PokeMudry.front_montant = false; PokeMudry.risingFront = false;
} }
} }
} }

View File

@ -1,20 +1,15 @@
package Screen; package Screen;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input;
import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator; import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator;
import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.FreeTypeFontParameter; import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.FreeTypeFontParameter;
import Control.Controller;
import Entity.Player; import Entity.Player;
import Game.Battle;
import Main.PokeMudry;
import Main.Settings; import Main.Settings;
import ch.hevs.gdx2d.components.bitmaps.BitmapImage;
import ch.hevs.gdx2d.components.screen_management.RenderingScreen; import ch.hevs.gdx2d.components.screen_management.RenderingScreen;
import ch.hevs.gdx2d.lib.GdxGraphics; import ch.hevs.gdx2d.lib.GdxGraphics;
@ -23,16 +18,19 @@ public class ScreenEnd extends RenderingScreen{
private String textEnd = null; private String textEnd = null;
private BitmapFont unbuntuRegularWhite; private BitmapFont unbuntuRegularWhite;
@Override @Override
public void onInit() { public void onInit() {
//generate a new font
unbuntuRegularWhite = generateFont("./Data/font/Ubuntu-Regular.ttf", 30, Color.WHITE); unbuntuRegularWhite = generateFont("./Data/font/Ubuntu-Regular.ttf", 30, Color.WHITE);
} }
@Override @Override
protected void onGraphicRender(GdxGraphics g) { protected void onGraphicRender(GdxGraphics g) {
//color the background in black
g.clear(Color.BLACK); g.clear(Color.BLACK);
//display the text
if(textEnd != null) g.drawStringCentered(Settings.SIDE/2, textEnd, unbuntuRegularWhite); if(textEnd != null) g.drawStringCentered(Settings.SIDE/2, textEnd, unbuntuRegularWhite);
} }
@ -42,6 +40,7 @@ public class ScreenEnd extends RenderingScreen{
unbuntuRegularWhite.dispose(); unbuntuRegularWhite.dispose();
} }
//set a different text if the player win or loose
public void setText(Player p){ public void setText(Player p){
if(p.getXp() >= p.getXpMax()){ if(p.getXp() >= p.getXpMax()){
textEnd = "Bravo, tu as réussi ton année avec " + p.getXp()/100.0 + " crédits en " + (Settings.TIME*60-p.getPv()) + " secondes.\n\nMais, seras-tu près pour le prochain...."; textEnd = "Bravo, tu as réussi ton année avec " + p.getXp()/100.0 + " crédits en " + (Settings.TIME*60-p.getPv()) + " secondes.\n\nMais, seras-tu près pour le prochain....";
@ -51,7 +50,7 @@ public class ScreenEnd extends RenderingScreen{
} }
} }
//create a font with a file .ttf , a height and a color
public BitmapFont generateFont(String file, int height, Color c ){ public BitmapFont generateFont(String file, int height, Color c ){
//Generate font with the file .ttf //Generate font with the file .ttf
BitmapFont font; BitmapFont font;

View File

@ -30,10 +30,12 @@ public class Attack {
return attack+ " " + answer1+ " " + answer2+ " " + answer3+ " " + answer4+ " " + xp; return attack+ " " + answer1+ " " + answer2+ " " + answer3+ " " + answer4+ " " + xp;
} }
//return the answer with teh number i in the array s
public String getAnswer(int i){ public String getAnswer(int i){
return s[i]; return s[i];
} }
//return the true answer to verify the answer of the player
public String getTrueAnswer(){ public String getTrueAnswer(){
return answer1; return answer1;
} }

View File

@ -12,13 +12,10 @@ public class FightData {
private File file; private File file;
private static String regex = ";"; private static String regex = ";";
public int nbre_line =0; public int nbre_line =0;
public FightData(String branch) { public FightData(String branch) {
file = new File("./Data/Battle/Fight/" + branch + ".csv"); file = new File("./Data/Battle/Fight/" + branch + ".csv");
} }
public void readFile() { public void readFile() {
@ -54,7 +51,7 @@ public class FightData {
return attacks; return attacks;
} }
//return the vector with one attak //return the vector with one attack
public Attack getAttack(int a){ public Attack getAttack(int a){
return attacks.get(a); return attacks.get(a);
} }

View File

@ -4,6 +4,7 @@ public class Line {
public String line; public String line;
public boolean attackOn; public boolean attackOn;
//in the battle screen the line is played and attack on is used by the button
Line( String line, boolean attackOn){ Line( String line, boolean attackOn){
this.line = line; this.line = line;
this.attackOn = attackOn; this.attackOn = attackOn;

View File

@ -11,22 +11,21 @@ public class SpeechData {
Vector<String> speechs = new Vector<String>(); Vector<String> speechs = new Vector<String>();
File file; File file;
public SpeechData(String name){ public SpeechData(String name){
file = new File("./Data/Battle/Speech/" + name + ".txt"); file = new File("./Data/Battle/Speech/" + name + ".txt");
} }
public void readFile() { public void readFile() {
String line = ""; String line = "";
// try to read the file of the speech of the enemy
try { try {
FileReader f = new FileReader(file, StandardCharsets.UTF_8); FileReader f = new FileReader(file, StandardCharsets.UTF_8);
BufferedReader bf = new BufferedReader(f); BufferedReader bf = new BufferedReader(f);
//read and add a new line in the vector speechs
line = bf.readLine(); line = bf.readLine();
while(line != null){ while(line != null){
speechs.add(line); speechs.add(line);
line = bf.readLine(); line = bf.readLine();
} }
@ -37,6 +36,7 @@ public class SpeechData {
} }
} }
//return the element i an teh vector speechs
public String getSpeechs(int i) { public String getSpeechs(int i) {
return speechs.elementAt(i); return speechs.elementAt(i);
} }

View File

@ -1,12 +1,8 @@
package Text; package Text;
import java.util.Vector;
import Entity.Enemy; import Entity.Enemy;
import Entity.Character.Direction;
import java.text.Normalizer; import java.util.Vector;
import java.util.Arrays;
import java.util.Random; import java.util.Random;
public class TextEnemy { public class TextEnemy {
@ -21,16 +17,6 @@ public class TextEnemy {
private Vector<int[]> currentData; private Vector<int[]> currentData;
public static void main(String[] args) {
TextEnemy t = new TextEnemy(new Enemy("Mudry", 10, 15, "lumberjack_sheet32", "desert", 25, "informatique", Direction.NULL));
t.generateText();
for(Line l : t.lines) {
System.out.println(l.line);
}
}
public TextEnemy(Enemy e){ public TextEnemy(Enemy e){
//generate the vector of fight //generate the vector of fight
fightData = new FightData(e.getBranch()); fightData = new FightData(e.getBranch());
@ -45,6 +31,7 @@ public class TextEnemy {
} }
//generate a random array width different number
public static int[] randomGenerate( int min, int max, int nbreRandom){ public static int[] randomGenerate( int min, int max, int nbreRandom){
//create an array with all the number I need //create an array with all the number I need
int[] a = new int[max-min+1]; int[] a = new int[max-min+1];
@ -79,21 +66,23 @@ public class TextEnemy {
} }
//generate the text who is displays in battle screen
public void generateText(){ public void generateText(){
int i =1; int i =1;
//introduction line //introduction line
String introduction = formatLine(speechData.getSpeechs(0), CUT); String introduction = formatLine(speechData.getSpeechs(0), CUT);
lines.add(new Line(introduction, false)); lines.add(new Line(introduction, false));
//generate a random array for determin the order of the attack
orderAttack = randomGenerate(0, fightData.nbre_line-1, 4); orderAttack = randomGenerate(0, fightData.nbre_line-1, 4);
//go trough which attack
for(int j=0; j<4;j++){ for(int j=0; j<4;j++){
int[] currentRandom = new int[5]; int[] currentRandom = new int[5];
currentRandom[0] = orderAttack[j]; currentRandom[0] = orderAttack[j];
//generate the order of the answer //generate a random array to determin the order of the answer
orderAnswer = randomGenerate(0, 3, 4); orderAnswer = randomGenerate(0, 3, 4);
//save the order of answer and attack //save the order of answer and attack
@ -111,13 +100,15 @@ public class TextEnemy {
//attack and answer (number on vector : 1-4) //attack and answer (number on vector : 1-4)
lines.add(new Line(attack + "\n" +answer1 + "\n" + answer2 + "\n" + answer3 + "\n" + answer4, true)); lines.add(new Line(attack + "\n" +answer1 + "\n" + answer2 + "\n" + answer3 + "\n" + answer4, true));
//save the order of the answer
currentData.add(currentRandom); currentData.add(currentRandom);
} }
/*
for(int[] a : currentData){ for(int[] a : currentData){
System.out.println(Arrays.toString(a)); System.out.println(Arrays.toString(a));
} }
*/
//finish (win and death) //finish (win and death)
String dead = formatLine(speechData.getSpeechs(5),CUT); String dead = formatLine(speechData.getSpeechs(5),CUT);
@ -126,11 +117,12 @@ public class TextEnemy {
lines.add(new Line(alive, false)); lines.add(new Line(alive, false));
} }
//get the saved order of the attacks and answer
public Vector<int[]> getCurrentData() { public Vector<int[]> getCurrentData() {
return currentData; return currentData;
} }
//format a String with a specific length of char
public String formatLine(String line, int cut){ public String formatLine(String line, int cut){
String cutLine = ""; String cutLine = "";
@ -139,20 +131,20 @@ public class TextEnemy {
int startC = 0; int startC = 0;
int stoppC = cut; int stoppC = cut;
//check if the line is shorter than the character limit
if(cut>line.length()-1){ if(cut>line.length()-1){
newLine =line; newLine =line;
} }
else{ else{
//create a array with the line
char[] c = new char[line.length()]; char[] c = new char[line.length()];
for(int i=0; i<c.length;i++){ for(int i=0; i<c.length;i++){
c[i] = line.charAt(i); c[i] = line.charAt(i);
} }
while(true){ while(true){
//cut the line only if there is a space
for(int i =stoppC; i>=startC; i--){ for(int i =stoppC; i>=startC; i--){
if(c[i] == ' '){ if(c[i] == ' '){
stoppC = i; stoppC = i;
@ -163,17 +155,19 @@ public class TextEnemy {
} }
} }
//découper le mot //cut the line
for(int i=startC;i<=stoppC;i++){ for(int i=startC;i<=stoppC;i++){
cutLine += c[i]; cutLine += c[i];
} }
//rebuild the line with the line breaks
newLine += cutLine+"\n"; newLine += cutLine+"\n";
cutLine = ""; cutLine = "";
//increase the start of the cut
startC = stoppC + 1; startC = stoppC + 1;
//check if we can cut with the number specific or if it is shorter or it is finished
if(c.length-1-stoppC <=0){ if(c.length-1-stoppC <=0){
break; break;
} }

View File

@ -1,107 +0,0 @@
import Text.*;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.ListIterator;
import java.util.Random;
import java.util.RandomAccess;
class testYann{
public static void main(String[] args) {
String text = "aaaaaa aaaaaa\naaaaaa aaaaaa";
String newText ="";
String cutLine = "";
String newLine = "";
int cut = 6;
int startC = 0;
int stoppC = cut;
String[] s = text.split("\n");
for(String line : s){
System.out.println(line);
if(cut>line.length()-1){
newLine =line;
}
else{
char[] c = new char[line.length()];
for(int i=0; i<c.length;i++){
c[i] = line.charAt(i);
}
while(true){
for(int i =stoppC; i>=startC; i--){
if(c[i] == ' '){
stoppC = i;
break;
}
else if(stoppC == c.length-1){
break;
}
}
//découper le mot
for(int i=startC;i<=stoppC;i++){
cutLine += c[i];
}
newLine += cutLine+"\n";
cutLine = "";
startC = stoppC + 1;
if(c.length-1-stoppC <=0){
break;
}
else if(c.length-1-stoppC <= cut){
stoppC = c.length-1;
}
else{
stoppC += cut;
}
}
}
newText += newLine + "\n";
}
System.out.println(newText);
}
}