Du libre, du code, des idées, du mélange d’ArraKISS…

De l’épice pour la pensée

Si votre jeu phaser contient de nombreuses images et des musiques à charger, il peut être un peu lent à démarrer. Afin d'éviter de laisser un carré noir qui ne veut rien dire, on peut afficher la progression du chargement grâce à ces quelques lignes qui sont à ajouter dans la fonction preload :

function preload(game) {
    game.load.audio('ga', 'assets/explosion.mp3');
[...]

var loadingText = game.add.text(200, 270, 'loading... 0%', { fill: '#ffffff' });
	var progressDisplay = 0;
	var timerEvt = game.time.events.loop(100, function (){
		if(progressDisplay < 100){
			if(progressDisplay < game.load.progress){
				loadingText.text = 'Chargement... '+(++progressDisplay)+'%';
			}
		}
		else{
			loadingText.text = 'Ready, Go!';
			game.time.events.remove(timerEvt);
		}
	}, this);
}

C'est l'ami Péhä qui me l'a suggéré, puis ma curiosité a été piquée par la conception de jeux en html5. Le principal intérêt est de pouvoir y jouer dans un navigateur sans avoir besoin du fuck%#! flash. Ça fonctionne donc partout, tant que le navigateur est récent et fiable : lisez firefox ici.

Comme je ne suis pas développeur, que je suis plutôt habitué au langage python et non au javascript, j'ai cherché un framework. Autrement dit, il me fallait un truc qui fait que ça marche sans trop me prendre la tête. C'est là qu'intervient phaser.

J'ai choisi phaser car :

  • C'est un simple fichier javascript à importer dans sa page web où on veut faire le jeu :
    <script type="text/javascript" src="js/phaser.min.js"></script>
    .
  • Il est sous licence libre (MIT)
  • Il propose un tas de petites fonctions qui permettent de faire un jeu facilement : gestion de la physique, des collisions, des armes...
  • Il est très facile à prendre en main. Pour moi qui ne connais pas le javascript, je me suis vite repéré.
  • Il s'apprend au travers d'exemples, ce qui me convient parfaitement.
  • Le petit bonhomme a une bonne tête :
alt

Avant de me lancer dans la conception de jeux complets et funs que j'ai en tête, je vois avec phaser l'occasion de créer des activités et simulations pédagogiques. C'est ma maîtresse favorite qui m'a mis au défi de faire un petit jeu de géographie pour ses élèves. C'est juste des fleuves et massifs montagneux à placer : https://yeuxdelibad.net/Programmation/Jeux/geotest/ .

Ça ne paie pas de mine, mais ça m'a bien amusé :)

Vous pouvez voir les sources du jeu en affichant le code source de la page : view-source:https://yeuxdelibad.net/Programmation/Jeux/geotest/ .

À l'avenir, je vais tenter de rassembler les petites fonctions qui m'ont permis de faire certaines choses, comme le chargement au départ ou la gestion des scores.
À suivre :)