Skip to content
Snippets Groups Projects
Commit f53b19e2 authored by Azurlors's avatar Azurlors
Browse files

Changement des commandes, faut vérifier dans evolve mais sinon c'est bon.

parent 54fd3cff
No related branches found
No related tags found
No related merge requests found
package engine;
/**
* @author Horatiu Cirstea
*
*/
public enum Cmd {
LEFT,RIGHT,JUMP,IDLE;
}
package engine;
import java.util.ArrayList;
/**
* @author Horatiu Cirstea, Vincent Thomas
*
......@@ -14,7 +16,7 @@ public interface Game {
* @param userCmd
* commande utilisateur
*/
public void evolve(Cmd userCmd);
public void evolve(ArrayList userCmd);
/**
* @return true si et seulement si le jeu est fini
......
package engine;
import java.awt.event.KeyListener;
import java.util.ArrayList;
/**
* @author Horatiu Cirstea
......@@ -13,9 +14,9 @@ public interface GameController extends KeyListener {
/**
* quand on demande les commandes, le controleur retourne la commande en
* cours
*
*
* @return commande faite par le joueur
*/
public Cmd getCommand();
public ArrayList getCommand();
}
package engine;
import java.util.ArrayList;
/**
* @author Horatiu Cirstea, Vincent Thomas
*
......@@ -59,9 +61,9 @@ public class GameEngineGraphical {
// boucle de game
while (!this.game.isFinished()) {
// demande controle utilisateur
Cmd c = this.gameController.getCommand();
ArrayList a = this.gameController.getCommand(); //
// fait evoluer le game
this.game.evolve(c);
this.game.evolve(a);
// affiche le game
this.gui.paint();
// met en attente
......
package jeu;
import engine.Cmd;
import engine.GameController;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
public class Controller implements GameController{
private boolean isRightPressed, isLeftPressed, isSpacePressed;
/*
* commande en cours
*/
private Cmd commandeEnCours;
/*
* construction du controleur par defaut le controleur n'a pas de commande
*/
public Controller() {
this.commandeEnCours = Cmd.IDLE;
isRightPressed = false; isLeftPressed = false; isSpacePressed = false;
}
public Cmd getCommand() {
return this.commandeEnCours;
/**
* getCommand retourne une list de booleans sous la forme [isRightPressed, isLeftPressed, isSpacePressed]
*/
@Override
public ArrayList getCommand() {
ArrayList a = new ArrayList<Boolean>();
a.add(isRightPressed);
a.add(isLeftPressed);
a.add(isSpacePressed);
return a;
}
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyChar()) {
// si on appuie sur 'q',commande joueur est gauche
case 'q':
case 'Q':
this.commandeEnCours = Cmd.LEFT;
break;
case 'd':
case 'D':
this.commandeEnCours = Cmd.RIGHT;
break;
case ' ':
this.commandeEnCours = Cmd.JUMP;
break;
switch (e.getKeyCode()) {
// si on appuie sur une touche ci dessous le boolean devient vraie.
case KeyEvent.VK_RIGHT: isRightPressed = true; break;
case KeyEvent.VK_LEFT: isLeftPressed = true; break;
case KeyEvent.VK_SPACE: isSpacePressed = true; break;
}
}
@Override
public void keyReleased(KeyEvent e) {
this.commandeEnCours = Cmd.IDLE;
switch(e.getKeyCode()) {
case KeyEvent.VK_RIGHT:
isRightPressed = false;
break;
case KeyEvent.VK_LEFT:
isLeftPressed = false;
break;
case KeyEvent.VK_SPACE:
isSpacePressed = false;
break;
}
}
@Override
......
package jeu;
import engine.Cmd;
import engine.Game;
import environnement.Physique;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import static jeu.Painter.charac;
public class Jeu implements Game{
......@@ -31,36 +32,38 @@ public class Jeu implements Game{
}
@Override
public void evolve(Cmd commande) {
System.out.println("Execute "+commande);
public void evolve(ArrayList command) { // command est sous la forme list de Boolean qui représente les touches préssées. Voir Controller pour la compositions de cet list.
System.out.println("Execute "+command);
System.out.println(charac.getCoord().getX());
System.out.println(charac.getCoord().getZ());
double comX,comZ;
int a = 1;
comX = 0;
comZ = 0;
boolean Right = (boolean) command.get(0);
boolean Left = (boolean) command.get(0);
boolean Jump = (boolean) command.get(0);
switch (commande) {
case LEFT:
comX = -charac.getVitesseMax()*Physique.lambda;
break;
case RIGHT:
comX = charac.getVitesseMax()*Physique.lambda;
break;
case JUMP:
if (charac.getCoord().getZ() < 80)a = 0;
else comZ = 30000*charac.getVitesseMax()*charac.getM();
break;
case IDLE:
if (charac.getCoord().getZ() >= 80){ //a retoucher, j'ai besoin d'autres choses pour avancer
a = 1;
}
if (Right) {
comX = -charac.getVitesseMax()*Physique.lambda;
}
if (Left) {
comX = charac.getVitesseMax() * Physique.lambda;
}
if (Jump) {
if (charac.getCoord().getZ() < 80) a = 0;
else comZ = 30000 * charac.getVitesseMax() * charac.getM();
}
else {
if (charac.getCoord().getZ() >= 80) { //a retoucher, j'ai besoin d'autres choses pour avancer
a = 1;
}
/*else{
a = 1;
}*/
break;
}
charac.deplacements(comX, comZ, a);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment