Forum Clubic

Un p'tit bomberman en java, c'est sympa mais

Bonjour :stuck_out_tongue:

En fait, j’ai un projet java a faire en deux mois a peu prés.
L’énoncé était simple : programmer un jeu quelconque en java.
Etant fan de bomberman depuis que je suis tout petit, j’ai décidé de développer ce jeu. J’ai actuellement une version d’eclipse mais je ne suis pas du tout doué ne serait ce que pour commencer.

Je n’attends pas que quiconque fasse ce projet a ma place, mais je demande dans un premier temps si il y a quelqu’un qui semble disposé a m’aider dans la continuation de ce projet.
Je précise que je connais quelques bases de la programmation (pas des masses hein, mais bon…), donc j’espère pouvoir mener a bien ce projet.

Dans un premier temps, là ou je coince actuellement, c’estde réussir a afficher un objet gif sur ma form actuelle. Quelqu’un pour m’aider?

Merci beaucoup d’avance :jap:

Mais avant de commencer à implémanter ton jeu, as tu déjà élaborer un dragramme de classes ? C’est ce qui va te permettre de définir la structure de ton jeu, si tu débutes dans la programmation orienté objet, il est nécessaire de passer par cette étape si tu ne veux pas voir des problèmes de codage par la suite…

Sinon l’année passée, j’ai du faire un Bomberman en java :slight_smile:

:stuck_out_tongue:

vassago974 > juste un petit truc, edite ton topic et rajoute le langage dans le titre commme tous les autres topics de ce forum :jap:

bah voilà, envoie lui tes sources :stuck_out_tongue:

Il existe de petites librairies pour simplifier le développement de petits jeux en java, comme JADE ou JIGA… As-tu le droit d’utiliser des trucs comme ça?

sino y a le pile ou face qui est pas mal a programmer…

moi j’avais fait un mini golf

Bah j’ai le droit d’utiliser tout ce que je veux comme librairie a priori :whistle:

Sinon, oui, j’ai déja fait un diagramme UML de mon projet, diagramme qui est certainement incomplet car je débute en java, mais qui me semble suffisant de mon point de vue. :ange:

Pour l’edit du sujet… euh… j’ai essayé d’éditer le premier post, mais y’avait pas la possibilité a premiere vue de le changer, dsl :sweat:

edit : trouvéééééééééé [:eikichi_onizuk@]

Ton diagramme UML est incomplet car tu débutes en Java? Intéressant…

Sinon, je pense que JADE devrait t’aider… http://jade.pautrot.com

Merci beaucoup pour ce site qui m’a l’air bien fait :jap: , quant au logiciel lui meme, je sais pas trop, j’ai pas encore eu le temps de regarder.

Pour le diagramme UML, je tiens a preciser qu’a la fac, j’ai juste eu droit a 6 heures de cours dessus, ce qui est loin d’etre suffisant a mon gout pour arriver a dire : “mon diagramme est clairement suffisant”. :sweat:

Ben tu peux peut-être le montrer, qu’on puisse faire des commentaires dessus… car si tu pars avec un diagramme complètement foireux dès le départ ça va être galère pour la suite :frowning:

Bon, mise à jour :

J’ai réussi a insérer dans ma fenetre un gif animé, en le posant dans une sous classe de la classe Canvas. Le problème, c’est que j’aimerais pouvoir le déplacer, mais que ca me plante méchamment dans la gueule, je m’explique :

Voici le code source de ma sous classe Dessin :

public class Dessin extends Canvas
{
Toolkit tk = Toolkit.getDefaultToolkit();
Image uneImage = tk.getImage(“banane.gif”);
static int positionx = 20,positiony = 20,vitesse = 5;

public Dessin()
{
	repaint();
}

public static void deplacer(int direction)
{
	switch (direction)
	{
		case 1 :
			if (!(positiony == 0))
				positiony = positiony + vitesse;
			break;
		case 2 :
			if (!(positiony == Dessin.HEIGHT))
				positiony = positiony - vitesse;
			break;
		case 3 :
			if (!(positionx == 0))
				positionx = positionx + vitesse;
			break;
		case 4 : 
			if (!(positionx == Dessin.WIDTH))
				positionx = positionx - vitesse;
			break;
	}	
}	

public void paint(Graphics g)
{
	g.drawImage(uneImage,positionx,positiony,this);
}

public void paint(Graphics g,int x, int y)
{
	g.drawImage(uneImage,x,y,this);
}

}

Le problème est je pense que comme je fais appel a ma fonction deplacer depuis une autre classe, il ne met pas a jour les informations de position de l’image, donc ne la “déplace” pas…

Vous sauriez comment faire?

edit : le bout de code de l’autre classe :
class KL implements KeyListener
{
public void keyPressed(KeyEvent e)
{
if (e.getKeyChar() == Event.LEFT)
Dessin.deplacer(4);
if (e.getKeyChar() == Event.UP)
Dessin.deplacer(1);
if (e.getKeyChar() == Event.DOWN)
Dessin.deplacer(2);
if (e.getKeyChar() == Event.RIGHT)
Dessin.deplacer(3);
}
public void keyTyped(KeyEvent e){}
public void keyReleased(KeyEvent e){ }
}

un repaint() à la fin de ta fonction déplacer?

J’espère que tu as bien suivi le cours sur les Threads, tu risques d’en avoir besoin très vite

Une gif animée n’est pas la vraiment solution

Et vire les static

Penches toi sur le Double Buffering …

un repaint() à la fin de ta fonction déplacer? => bah si seulement, non non, il me met une erreur si j’essaie de faire ca

Et vire les static => je peux pas non plus, d’ailleurs de base, je les avais pas mis en static, mais java le réclame :’(

Penches toi sur le Double Buffering … => déja entendu parlé, mais il me semble qu’il n’est nécessaire que pour les frames de la libraire awt non? Car là, je suis en swing, enfin… j’essaie d’etre en swing

Merci déja pour ces réponses

A quel moment instancies-tu ton objet Dessin???

en fait, je l’instancie lors de la création de ma frame.

Si tu utilisais réellement ton objet, tu n’aurais pas besoin que les méthodes soit statitques -> Tu appelles directement les méthodes de la classe Dessin.deplacer() au lieu de monObjet.deplacer()

Ce qui explique que :

  • Tu es obligé de mettre “static”
  • Tu ne peux pas faire d’appel à repaint ; impossible d’appeler une méthode non statique depuis une méthode statique

Résultat : Tu ne dois pas voir grand chose bouger?

Bon, mise à jour du problème :

Mon p’tit bebette bouge (c pas fluide du tout, vu que c par a coup, mais au moins il bouge), j’ai fait la gestion des collisions avec les murs, il peux poser des bombes mais… le plus marrant, c’est que je n’arrive pas a faire exploser les bombes toutes seules au bout d’un certain temps [:vienne86]

J’ai pensé a pleins de solutions, mais euh… j’arrive a implémenter aucune d’entres elles. Quelqu’un pourrait m’aider svp?

PS : j’ai pensé aux threads, mais je ne sais pas du tout les faire