Creation d'un jeux casse brique en javascript

Fermé
dream - 28 avril 2018 à 16:22
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 28 avril 2018 à 18:58
Bonjour,

je suis L1 Info et je dois rendre un projet pour le cour de algo et prog. Ce dernier consiste à créer un jeu casse brique en javascript. sans utilisé java objet. je n'ai pas pu assisté aux cm pour des raison de santé quelqu'un pour m'aider svp ?

A voir également:

3 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
28 avril 2018 à 16:24
Bonjour,


je n'ai pas pu assisté aux cm pour des raison de santé quelqu'un pour m'aider

Ton prof, tes camarades de classe ..

Sinon, si tu viens avec ce que tu as commencé à coder et que tu nous expliques sur quel point technique tu bloques, nous pourrons essayer de t'aider également.


0
oui, ils sont tous en vacances
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;

public class GameGUI extends JFrame{

 private Color fond;
 private Color[][] g;
 private Graphic p;
 private int bordure = 0,cell = 10;
 private KeyEvent ke;
 private JTextField jtf;

 private class KEDispatcher implements KeyEventDispatcher {
  public boolean dispatchKeyEvent(KeyEvent e) {
   if (e.getID() == KeyEvent.KEY_PRESSED) {
    if(e.getKeyCode() == KeyEvent.VK_RIGHT || e.getKeyCode() == KeyEvent.VK_LEFT || e.getKeyCode() == KeyEvent.VK_DOWN || e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_SPACE) ke = e;
     }
     return false;
   }
 }

 private class Graphic extends JPanel{
  public void paint(Graphics gr){
   gr.setColor(fond);
   gr.fillRect(0,0,this.getWidth(),this.getHeight());
   for(int i=0;i<g.length;i++){
    for(int j=0;j<g[i].length;j++){
     gr.setColor(g[i][j]);
     gr.fillRect(bordure+cell*i,bordure+cell*j,cell,cell);
    }
   }
  }
 }

 public GameGUI(int largeur, int hauteur, Color fond){
  super("Casse Brique");
  this.g = new Color[largeur][hauteur];
  this.fond = fond;
  for(int i=0;i<g.length;i++){
    for(int j=0;j<g[i].length;j++){
     g[i][j] = this.fond;
    }
  }
  this.jtf = new JTextField();
  this.jtf.setBorder(BorderFactory.createLineBorder(Color.BLACK,2));
  this.p = new Graphic();
  this.p.setPreferredSize(new Dimension(2*this.bordure+(this.g.length)*this.cell, 2*this.bordure+(this.g[0].length)*this.cell));
  this.getContentPane().setLayout(new BorderLayout());
  this.getContentPane().add(this.p,BorderLayout.CENTER);
  this.getContentPane().add(this.jtf,BorderLayout.SOUTH);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.pack();
  this.setResizable(false);
  this.setVisible(true);
  KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
  manager.addKeyEventDispatcher(new KEDispatcher());
  this.repaint();
 }

 public void setColor(int x, int y, Color c){
  if(x>-1 && x<this.g.length && y>-1 && y<this.g[0].length){
   this.g[x][y] = c;
   this.repaint();
  }
 }

 public void setText(String s){
  this.jtf.setText(s);
 }

 /** Retourne un entier correspondant a la touche tapee par l'utilisateur :
  0- pas de touche tapee
  1- FLECHE GAUCHE
  2- FLECHE DROITE
  3- FLECHE BAS
  4- FLECHE HAUT
  5- ESPACE */
 public int pressedKey(){
  if(this.ke == null) return 0;
  else{
   int result = 0;
   if(this.ke.getKeyCode() == KeyEvent.VK_RIGHT) result = 2;
   if(this.ke.getKeyCode() == KeyEvent.VK_LEFT) result = 1;
   if(this.ke.getKeyCode() == KeyEvent.VK_DOWN) result = 3;
   if(this.ke.getKeyCode() == KeyEvent.VK_UP) result = 4;
   if(this.ke.getKeyCode() == KeyEvent.VK_SPACE) result = 5;
   this.ke = null;
   return result;
  }
 }

 /** Affiche le message m dans une boite de dialogue. */
 public void display(String m){
  JOptionPane.showMessageDialog(this,m);
 }
}


EDIT : AJOUT DES BALISES DE CODE
0
voici ce que j'ai pour l'interface graphique. je croi que c'est deja pas mal
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > dream
28 avril 2018 à 16:37
Premièrement... lorsqu'on poste du code... on le fait en utilisant la coloration syntaxique ! (j'ai édité ton message pour l'ajouter).
La prochaine fois, fais le toi même :
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Deuxièmement ... ton code .. c'est du JAVA .... pas du JAVASCRIPT.
Je déplace donc ta question dans le BON FORUM.

Troisièmement ... je t'ai demandé de préciser le souci rencontré.
A part ton code (que j'ai la flemme de lire).. je ne vois aucune question.....
Merci d'apporter ces modifications.
0
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 323
28 avril 2018 à 16:25
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
28 avril 2018 à 18:58
Bonjour,

Je ne comprends pas ton code...
Il faut dire, pour répéter ce qui a déjà été remarqué, que sans explication sur le fonctionnement de ton programme, sans question, sans rien finalement, tu ne fais pas grand chose pour que l'on puisse t'aider.

Commençons par le début : lignes 17/18
if (e.getID() == KeyEvent.KEY_PRESSED) {
    if(e.getKeyCode() == KeyEvent.VK_RIGHT || e.getKeyCode() == KeyEvent.VK_LEFT || e.getKeyCode() == KeyEvent.VK_DOWN || e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_SPACE) ke = e;

C'est un code impossible. Tu ne peux pas avoir un KEY_PRESSED, pour satisfaire le premier if, et en même temps une autre valeur VK_RIGHT, VK_LEFT, pour satisfaire le deuxième if.
Soit tu as l'un, soit tu as l'autre, mais pas les deux en même temps.

De toute façon ça te servirait à quoi ? Tu voudrais stocker éventuellement dans la variable ke, qui sera traitée dans la méthode pressedKey()... mais elle n'est jamais appelée... Donc tout cela ne sert à rien.

Idem pour tes autres méthodes setColor et setText, c'est du code mort qui n'est jamais appelé.

Pour l'instant la seule chose qui fonctionne, c'est ton JTextField, on peux donc saisir du texte... Mais à quoi ça sert dans un jeu de casse briques ?
0