Java Mario Bros (débutant)

- - Dernière réponse : Twinuts
Messages postés
5300
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
10 décembre 2018
- 20 juil. 2017 à 11:23
Bonjour,

Pour un projet destiné à mes études, j'ai produit sur Eclipse un jeu Mario Bros en java en suivant le tutoriel de Stephan Maurer sur Youtube.

Tout fonctionne, c'est super mais ce n'est pas assez complet.

Je souhaite rajouter des blocs mystères où lorsque Mario saute dessus, un objet y sort (traditionnellement un champignon).

J'ai réussi à m'occuper du blocmystère en faisant une ArrayList et en rajoutant une méthode permettant de supprimer l'ArrayList blocmystere pour qu'il laisse place à une ArrayList bloc (normal).

Or je n'arrive pas à faire en sorte que les objets (censé être caché dans les blocs) apparaissent lorsque Mario rentre en contact avec le blocmystère.

Autrement dit, je voudrais que les objets censé être cachés dans les blocs mystères soient désactivé de base (pour qu'on ne puisse pas les voir) mais que lorsque Mario rentre en contact avec un bloc mystère, alors l'objet apparait et se mette à bouger pour que Mario puisse le récupérer.

ps: pour ma part ce ne seront pas des objets types champignons mais des photos (cela se justifie pour mes études)

Pour l'instant, j'ai mis dans la classe photos, cette ligne:
public boolean photosactivated (photos photos, blocmystere blocmystere)
{if(Main.scene.mario.contactblocmystere(blocmystere)== true){return true;}else{return false;}}


Or je ne sais pas si cette méthode est correcte et surtout quelle méthode mettre dans la classe Scene pour répondre à mon objectif expliqué plus haut.

J'ai essayé ceci mais ca ne fonctionne pas
	for(int i = 0; i < this.tabblocmystere.size(); i++){
if(this.mario.proche(this.tabblocmystere.get(i))){
if(this.mario.contactblocmystere(this.tabblocmystere.get(i))){
this.photos.photosactivated(photos)(i);}}}


Si besoin voici mon arborescence:
package principal:
Main
Clavier
Scene
chrono
package objet
bloc (ArrayList)
blocmystere (ArrayList)
objet (super class)
package photos
photos (super class et aussi ArrayList)
photos1
photos2
package personnage
personnage (super class)
Mario

Pourriez-vous m'aider s'il vous plait ?
Merci d'avance.
Afficher la suite 

Votre réponse

1 réponse

Messages postés
5300
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
10 décembre 2018
0
Merci
Salut,

Avant tout, je ne connais pas le tuto que tu as utilisé.

Le code suivant est hyper lourd
public boolean photosactivated (photos photos, blocmystere blocmystere)
{
  if(Main.scene.mario.contactblocmystere(blocmystere)== true){
    return true;
  }else{
    return false;}
}

Tu peux le remplacer par:
public boolean photosactivated (photos photos, blocmystere blocmystere)
{
  return Main.scene.mario.contactblocmystere(blocmystere);
}




je voudrais que les objets censé être cachés dans les blocs mystères soient désactivé de base

Tu dessines simplement l'objet avant le cube mystère comme ça il sera au dessus ...
Ensuite quand ton mario arrive au contact du cube mystère il suffit que tu animes l'objet en le faisant monter et se déplacer.


Je ne comprends pas la logique ici.
for(int i = 0; i < this.tabblocmystere.size(); i++){				
  if(this.mario.proche(this.tabblocmystere.get(i))){
    if(this.mario.contactblocmystere(this.tabblocmystere.get(i))){
      this.photos.photosactivated(photos)(i);
    }
  }
}

Si la méthode photosactivated appelée ici est bien celle qui retourne un boolean, l'appel ici est inutile.

Ne connaissant pas le reste du code, je ne peux pas t'en dire plus.


Commenter la réponse de Twinuts

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.