CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[JAVA] Affecter un objet à une couleur.

ZadreK
ZadreK
Niveau 5
04 avril 2015 à 20:12:14

Bonsoir à tous,
Nous souhaitons développer un jeu se déroulant dans plusieurs labyrinthes, seulement pour éviter de créer 65 murs on voudrait associer chaque couleur du labyrinthe à une zone clé.
C'est-à-dire:
Noir = Mur
Jaune = Spawn
Vert = Objectif
Nous voulons savoir si une méthode pour effectuer cela existe et si possible un peu d'aide pour l'appliquer.
Merci beaucoup! :ok:

Pseudo supprimé
Pseudo supprimé 04 avril 2015 à 21:21:31

Et vous utilisez quelle librairie du coup ?

ZadreK
ZadreK
Niveau 5
05 avril 2015 à 15:16:00

java.awt.Color
java.awt.Font
java.awt.Graphics
java.awt.Image
java.awt.Toolkit
Je sais pas si ça peut aider..

EventListener
EventListener
Niveau 9
05 avril 2015 à 15:21:58

Je pense que tu veux plutôt affecter une couleur à un objet.

Tu met un attribut color sur tes objets et au moment de faire le rendu graphique bah tu inspecte le champ color de ton objet pour récupérer la couleur associé à celui-ci. :(

ZadreK
ZadreK
Niveau 5
05 avril 2015 à 16:14:28

J'espère que c'est relativement simple à faire, nous sommes débutants :sarcastic: .

Kwaki-crap
Kwaki-crap
Niveau 10
05 avril 2015 à 16:40:42

J'ai pas vraiment compris ce que vous vouliez faire avec les couleurs :doute:

Pourquoi tu parle de couleur de labyrinthe et d'éviter de créer 65 murs ?

ZadreK
ZadreK
Niveau 5
05 avril 2015 à 17:14:39

Non c'est juste comment inspecter la couleur que nous cherchons à faire.
Une fois qu'il a détecté toutes les couleurs on veut par exemple que si il tombe sur un pixel noir, il l'attribut à un objet que l'on nommera "mur" et qui empêchera le joueur d'avancer. :ok:

ZadreK
ZadreK
Niveau 5
05 avril 2015 à 17:16:55

https://image.noelshack.com/fichiers/2015/14/1428246927-labyrinthe.png
On voit que dalle sur cette image mais c'est pour donner une idée, on aura max 5 couleurs dans notre jeu.

Bunyan
Bunyan
Niveau 17
05 avril 2015 à 17:57:52

Donc, si je saisi : vous dessinez le labyrinthe, ensuite vous laissez le joueur faire.
Pour savoir s'il peut avancer ou non, vous regardez la couleur de la case et celle-ci vous donne son type.

C'est ça ?

Si oui, pourquoi ne pas créer un objet "Case" dont hérite "Mur", "Start" et "Goal" ?
Ces objets sauront eux-même se dessiner, connaîtront leurs coordonnées et pourront ensuite gentiment dire s'ils sont praticables ou non.
De mon point de vue, vous raisonnez à l'inverse. Il ne faut pas partir du graphique pour déduire les informations, mais partir des informations directement.

ZadreK
ZadreK
Niveau 5
05 avril 2015 à 18:38:58

Oui c'est ça, désolé mais c'est notre premier projet, c'était peut-être évident comme méthode.
Et quelles instructions peut-on donner pour qu'il puisse reconnaître la couleur?

sg-5
sg-5
Niveau 12
05 avril 2015 à 18:47:31

Il faut que chaque objet case ait une methode pour récupérer sa couleur (on appelle ça un "getter")

Par exemple chaque case aura une méthode getColor() qui retournera la valeur de l'attribut 'color'.

Bref à mon avis t'es pas encore assez équipé pour partir sur un projet perso, fais d'abord des exercices.

Hamsterloulo
Hamsterloulo
Niveau 9
05 avril 2015 à 18:51:15

Le truc qu'a essayé de t'expliquer Bunyan c'est que c'est plus simple que le logiciel reconnaisse l'objet pas la couleur , la couleur n'est que le rendu graphique . Comment t'expliquer , si tu as une class Mur , dans les attributs il y aura la couleur donc le logi va la dessiner mais c'est tout , le logiciel a pas s'appuyer sur la couleur après dans ta class il y aura aussi les coordonnés du mur par exemple et c'est sur ça que le logiciel va s'appuyer en gros c'est : si le perso est au coordonnés du mur alors le personnage ne peut plus avancer.
J'espère avoir été clair je peux ré-expliquer si besoin.

ZadreK
ZadreK
Niveau 5
05 avril 2015 à 19:31:49

Oui, je n'ai peut-être pas très bien compris, mais on a réussit à créer un mur capable de gérer les collisions avec le personnage que l'on a également créé. Seulement pour chaque mur ça demandait une ligne de code et du temps pour la placer avec précision.et on a supposé qu'il existerait une méthode permettant de reconnaitre les éléments du décor en fonction de sa couleur.
Après ça n'est qu'un projet d'ISN (spécialité de terminale) qui est trop ambitieux par rapport à nos connaissances. Malgré tout je vais essayer de poursuivre avec vos pistes.
Merci pour vos conseils :ok:

Hamsterloulo
Hamsterloulo
Niveau 9
05 avril 2015 à 20:22:21

Si tu veux il y a une api qui gère les collisions mais il faut la telelecharger , ça s'appelle Box2D après si tu veux je peux vous aider

Hamsterloulo
Hamsterloulo
Niveau 9
05 avril 2015 à 21:44:44

Je t'ai mp l'auteur

ZadreK
ZadreK
Niveau 5
05 avril 2015 à 23:55:02

C'est pas de refus :merci: !
Par contre pour ce projet on est censé utiliser uniquement les librairies java donc.. :S

Bunyan
Bunyan
Niveau 17
06 avril 2015 à 00:04:51

Vous appréhendez le logiciel comme s'il avait une pensée humaine. Ce n'est pas le cas :)
Il est bête et méchant et ne fait que ce que vous lui demandez, rien de plus et rien de moins.

Sans connaître le code ou l'architecture, il est difficile de réellement conseiller, mais là, j'ai l'impression que :
- vous créez manuellement chacune des cases
- vous les placez manuellement en valeur absolu
- vous les dessinez

Une fois le dessin fait, vous "passez" sur le plateau de jeu pour savoir si, selon la couleur, la case est un mur, le départ ou l'arrivée.

Dans ma tête, il devrait y avoir un plateau constitué de X cases. Chacune de ces cases connaît son type et son emplacement et sait comment se dessiner.
Sur ce plateau existe une entité spéciale, qui est le "joueur". Lorsque celui-ci veut se déplacer, il demande au plateau "sur quelle case arriverai-je si je vais par là ?", le plateau constate la position du joueur puis regarde dans cette direction. Il interroge la case cible pour savoir si elle est praticable. Si elle l'est, le plateau déplace le joueur dessus. Ensuite, le joueur demande au plateau de vérifier si la case est une arrivée.

Pour l'affichage, à chaque déplacement (et au début), il est demandé au plateau de se redessiner. Celui-ci parcours donc chacune des cases et leur demande gentiment "peux-tu te dessiner s'il te plaît ?" pour que celle-ci s'exécute.
Pour l'initialisation, le plateau pose l'entité "joueur" sur la case spéciale "départ".

L'ordinateur ne connaît que des données. Celles-ci n'ont pour représentation graphique que ce que nous définissons en tant que développeur.

De mon point de vue, votre projet est ambitieux si vous partez sur une génération automatique de labyrinthe (parfait ou imparfait) avec système de jeu et prise en compte de dimensions multiples, voire un système de création de labyrinthe via fichiers.

ZadreK
ZadreK
Niveau 5
06 avril 2015 à 10:03:40

T'es matinale Bunyan :fete: !
En tout cas, merci pour ton aide, c'est ce que nous aurions dût faire plus tôt.
Je vois parfaitement ce que tu veux dire par le plateau à X cases.
Va falloir reprendre le projet à 0..
Après la génération automatique de labyrinthe ça nous semble assez compliqué mais on va se pencher là-dessus.
:merci:

Hamsterloulo
Hamsterloulo
Niveau 9
06 avril 2015 à 10:38:21

Zadrek je suis entrain de coder un labyrinthe de mon côté pour pouvoir mieux vous aider ^.^

Bunyan
Bunyan
Niveau 17
06 avril 2015 à 13:07:22

Allez-y par palier :)

Je pense, par exemple, à ce genre de plan :
- Premier pas : faire un labyrinthe avec une architecture logicielle cohérente
- Deuxième pas : réaliser la mécanique du joueur (début et déplacements)
- Troisième pas : réaliser la mécanique du jeu (succès sur case "fin")
- Quatrième pas : génération automatique de labyrinthe parfait à taille fixe
- Cinquième pas : faire en sorte que la case de "fin" ne soit pas "à côté" de la case de départ
- Sixième pas : génération automatique de labyrinthe imparfait à taille fixe
- Septième pas : réaliser des labyrinthes de tailles aléatoires
- Huitième pas : demander à l'utilisateur la taille du labyrinthe et génération selon ses desiderata

Allez-y de manière incrémentale, petit à petit. Pensez à ce que vous ferez après, mais surtout, ne tentez pas de tout faire en un coup, c'est le meilleur moyen d'être frustré et démotivé et de n'avoir aucune réalisation à la fin.
Allez-y par petit pas, en ne cherchant pas à rajouter des briques trop grosses à chaque fois :)

Si vous arrivez déjà à réaliser les 3 premiers paliers de mon exemple de plan, ce sera déjà pas mal, je pense.
Bien entendu, vous n'êtes absolument pas obligé de le suivre, ce n'est qu'un exemple :p

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment