IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Jeu du bétonneur


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Par défaut Jeu du bétonneur
    Bonjour!

    J'ai un projet d'informatique à réaliser dans le cadre de mon cursus scolaire.

    Je dois créer un jeu qui est assez simple. Une machine capable de déposer des blocs de béton se promène dans un espace symbolisé par un tableau carré de 40x40 muni d'une sortie.

    La machine occupe la taille d'une case, tout comme un bloc de béton.
    La machine lancée dans une direction (N,S,E,O) ne dévie pas de sa trajectoire jusqu'à rencontrer un bloc de béton ou le bord de l'espace. Dans ce cas elle repart aléatoirement dans une nouvelle direction.
    L'utilisateur peut en laissant enfoncé le bouton de la souris créer des blocs de béton dans les cases immédiatement derrière le bétonneur.

    Le but du jeu est de poser judicieusement les blocs de béton pour prendre la sortie.

    Voilà , j'essaie donc de me dépatouiller avec cela mais je galère un peu. Pour l'instant j'ai juste créé la fenêtre comprenant la zone de jeu et le bouton recommencer. Seul souci, je n'arrive pas à dessiner le quadrillage sur la zone de jeu...

    Voici mon code :

    Le corps du jeu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    import java.awt.*;
     
    public class Betonneur {
        // Déclaration des attributs graphiques:
        private Frame fenetreEnglobante;
        private Button recommencer;
        private Decor decor;
     
        // Programme principal:
        public static void main(String args[]) {
            Betonneur bet= new Betonneur();
            bet.affiche();
        }
     
        // Constructeur:
        public Betonneur(){
            //Création des composants graphiques:
            fenetreEnglobante = new Frame();
            recommencer=new Button("Recommencer");
            decor= new Decor(40,40);
            fenetreEnglobante.setLayout(new GridLayout(2,1));
            fenetreEnglobante.add(decor);
            fenetreEnglobante.add(recommencer);
     
            fenetreEnglobante.addWindowListener(new EcouteurFenetre(fenetreEnglobante));
        }
     
        // Dimensionnement, affichage et positionnement de la fenêtre:
        public void affiche() {
            fenetreEnglobante.setTitle("Jeu du bétonneur");
            fenetreEnglobante.setSize(800, 800);
            fenetreEnglobante.setLocation(200, 200);
            fenetreEnglobante.pack();
            fenetreEnglobante.setVisible(true);
        }
     
         public void paint(Graphics g){
            (this.decor).paintComponent(g);
         }
    }
    La classe servant à faire le décor du jeu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    import java.awt.*;
     
    public class Decor extends Panel {
     
        private int larg;
        private int haut;
     
         public Decor(int largeur, int hauteur){
             larg = largeur;
             haut = hauteur;
        }
     
         public void paintComponent(Graphics g){
            g.drawLine(0,0, this.getWidth(), this.getHeight() - 1);
             g.drawLine(0, this.getHeight() - 1, this.getWidth(), 0);
         }
    }
    Je ne comprends pas pourquoi même avec ce que j'ai mis dans la classe Decor, il ne me dessine toujours pas le quadrillage...

    Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Si tu veux qu'un panel s'affiche, tu l'ajoute à son conteneur (ici la Frame). Tu ne bidouille pas avec des trucs comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         public void paint(Graphics g){
            (this.decor).paintComponent(g);
         }
    Ensuite, si ton quadrillage ne se dessine pas, c'est pour deux raisons

    1) tu ne dessine pas un quadrillage, mais 2 lignes en croix
    2) ton panel à un taille null par défaut. Comme tu étends un JPanel et que tu ne lui a pas fixé de taille minimum, quand le conteneur lui demande combien il a besoin de place, il répond 0 et le conteneur lui donne 0 (pourquoi gaspille hein).

    Tu dois dois rajouter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
         public Decor(int largeur, int hauteur){
             larg = largeur;
             haut = hauteur;
             setMinimumSize(new Dimenstion(largeur,hauteur));
             setPreferedSize(new Dimenstion(largeur,hauteur));
             setMaximumSize(new Dimenstion(largeur,hauteur));
        }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel style de DirectX pour un jeu 2D ?
    Par delire8 dans le forum DirectX
    Réponses: 34
    Dernier message: 31/07/2003, 00h47
  2. Réponses: 7
    Dernier message: 18/06/2003, 15h20
  3. [socket][tcp] jeu en reseau
    Par souris_sonic dans le forum Développement
    Réponses: 2
    Dernier message: 30/05/2003, 07h31
  4. [C réseau débutant] jeu
    Par Heimdall dans le forum Développement
    Réponses: 6
    Dernier message: 22/05/2003, 13h58
  5. Une déclaration pour la survie du jeu vidéo en France
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 30/10/2002, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo