Casse brique en j2me

Soyez le premier à donner votre avis sur cette source.

Vue 17 855 fois - Téléchargée 1 337 fois

Description

Bonjour à tous :)
Bon voila, pour des besoins scolaires, j'ai du faire un petit jeu en J2ME.
Je me suis amusé comme un fou sur la Poo (je ne dit pas que c'est parfait, j'ai juste fait de mon mieux) et j'ai pensé présenter cette source car quand je l'ai commencé, je n'ai pas trouvé beaucoup de sources en J2ME ici, donc voila :)

Pour information c'est un simple casse brique avec 5 niveaux de difficulté. Vous avez plusieurs couleurs possibles pour des briques et chaque couleur est représentée par une classe.
Vous avez ensuite une classe Brique qui genere une brique en fonction de sa couleur (instance d'une classe couleur de brique) de sa position, de sa résistance et du gain qu'elle apportera au jour qui brise la brique.

J'ai implémenté quelques designs patterns, SingleTon, Factory et Observer (le dernier à ma facon :p)

Je vous laisse découvrir le code, dites moi ce que vous en pensez

Source / Exemple :


/**

  • Voici le code source de la classe Main, la classe de base à l'application
  • /
package myCasseBrique.Main; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.StringItem; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; /**
  • @package myCasseBrique.Main
  • @name MainCasseBrique extends MIDlet implements CommandListener
  • @filesource MainCasseBrique.java
  • @author Cyril Nicodème
  • @license Gnu/Gpl
  • /
public class MainCasseBrique extends MIDlet implements CommandListener { /**
  • @var Display _display
  • Instance of Display
  • /
private Display _display; /**
  • @var Form _form
  • Instance of Form
  • /
private Form _form; /**
  • @var StringItem _welcomeStr
  • Instance of StringItem
  • /
private StringItem _welcomeStr; /**
  • @var Command _exitC
  • Instance of Command
  • /
private Command _exitC; /**
  • @var Command _startC
  • Instance of Command
  • /
private Command _startC; /**
  • @var BaseCasseBrique _baseCasseBrique
  • Instance of BaseCasseBrique
  • /
private BaseCasseBrique _baseCasseBrique; /**
  • @name public MainCasseBrique
  • Constructor
  • Set the base game
  • /
public MainCasseBrique () { this._display = Display.getDisplay(this); this._form = new Form("Casse Brique"); this._welcomeStr = new StringItem ("","Bienvenue dans le jeu du Casse Brique.\nVous pouvez déplacer la barre en cliquant sur les touche 4 et 6.\nBon courage ! :)"); this._exitC = new Command("Exit",Command.EXIT,1); this._startC = new Command("Start",Command.OK,2); this._form.append(this._welcomeStr); this._form.addCommand(this._exitC); this._form.addCommand(this._startC); this._form.setCommandListener(this); } /**
  • @name protected void destroyApp
  • Destroy (end) the application
  • @param boolean arg0
  • @return void
  • /
protected void destroyApp (boolean arg0) throws MIDletStateChangeException { notifyDestroyed(); } /**
  • protected void pauseApp
  • Set the game into pause mod
  • @return void
  • /
protected void pauseApp () { // Nothing to do } /**
  • protected void startApp
  • Start the application (set the current Form)
  • @return void
  • /
protected void startApp () throws MIDletStateChangeException { this._display.setCurrent(this._form); } /**
  • @name public void commandAction
  • Set the view (Form or Canvas)
  • And Manage the Commands pressed (Start, Exit)
  • @param Command cmd
  • @param Displayable curDisplay
  • /
public void commandAction (Command cmd, Displayable curDisplay) { if (curDisplay == this._baseCasseBrique) { if (cmd == this._exitC) { this._baseCasseBrique = null; this._display.setCurrent (this._form); } } else { if (cmd == this._startC) { this._baseCasseBrique = new BaseCasseBrique (); this._baseCasseBrique.addCommand(this._exitC); this._baseCasseBrique.setCommandListener(this); this._display.setCurrent(this._baseCasseBrique); this._baseCasseBrique.repaint (); } else if (cmd == this._exitC) { try { this.destroyApp(true); } catch (MIDletStateChangeException mSCE) { System.out.println("Une erreur s'est produite : "+mSCE.getMessage ()); } } } } }

Conclusion :


A ce jour j'ai trouvé un bug, mais je n'arrive pas à le corriger :
Quand vous touchez un angle avec la boulle, elle réagit bizzarement, en dehors de toute normalité.
Je vous laisse tester, vous lancez le jeu, et vous appuyez sur 5 ou sur le bouton ok, vous verrez bien :)

Voici les touches utilisables :
4 ou Gauche : Déplacer la raquette à gauche
6 ou Droite : Déplacer la raquette à droite
5 ou Ok : Lancer la balle.

J'attends vos remarques/avis/conseils/... :)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
8
Date d'inscription
dimanche 18 novembre 2007
Statut
Membre
Dernière intervention
31 mai 2011

bon travail ça marche normal ché moi sur la plate forme JavaME SDK et je peux jouer aussi merci bien pour ce magnifique travail je vous encourage bien à continuer dans ce domaine
Messages postés
1
Date d'inscription
vendredi 9 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2011

ça marche pa il me retourne ce messege quand je lance Toolkit:
com.sun.kvem.midletsuite.InvalidJadException: Reason = 22
The manifest or the application descriptor MUST contain the attribute: MIDlet-1

Merci de me repondre
Messages postés
2
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
5 janvier 2010

Good job ....jolie application
Messages postés
3
Date d'inscription
lundi 28 juillet 2008
Statut
Membre
Dernière intervention
26 novembre 2008

voici ce qu'il retourne à la compilation:
Exception in thread "main" java.lang.UnsatisfiedLinkError: com.sun.midp.main.Configuration.getProperty0(Ljava/lang/String;)Ljava/lang/String;
at com.sun.midp.main.Configuration.getProperty0(Native Method)
at com.sun.midp.main.Configuration.getProperty(Configuration.java:32)
at com.sun.midp.lcdui.Resource.<clinit>(Resource.java:30)
at com.sun.midp.main.Main.initSystemLabels(Main.java:694)
at com.sun.midp.main.Main.main(Main.java:104)
Messages postés
1127
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
Mais il te retourne une erreur ?, un message ?, il plante ?
Afficher les 9 commentaires

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.