un compteur pour votre site
Licence Creative Commons
Moteurs cases à cocher de Spring Up est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale 3.0 France.

Moteurs cases à cocher

Sur ce blog transformé en site, vous trouverez principalement des fichiers mfa, pour TGF 2, MMF 2, CTF 2.5.

lundi 6 août 2018

Comment faire un Sokoban avec Clickteam Fusion (Gratuit)?

Salut à tous et à toute!

Comment faire un Sokoban avec Clickteam Fusion version gratuite?

Étant capable de "Klik" programmer un Sokoban qui sort de l'ordinaire en moins de 15 lignes,

je vous conseille, humblement, de suivre la méthodologie proposée.

Carré d'as (car hélas), sans mes explications, mes exemples ne valent pas un clou.

Klik coding et Klik spriting sont indissociables, néanmoins la première chose à faire est de déplacer

un personnage joueur case par case de façon fluide.

1) Le moteur de déplacement case par case (un classique).

Pixel artiste vite un PJ!

Oh! Il n'y a pas le feu au lac!


Comment déplacer le sprite (PJ ou PNJ)?

On a besoin de l'éditeur d'animation et de 4 directions (numéro 0, 8, 16 et 24).

Variable C = 100 >> Le PJ attend sagement que le joueur tape sur une touche.

Le joueur tape sur la touche droite. >> Variable C = 0. >> Le PJ se déplace de plus 2 pixels sur l'axe X.

Le joueur tape sur la touche gauche. >> Variable C = 16. >> Le PJ se déplace de moins 2 pixels sur l'axe X.

Le joueur tape sur la touche haut. >> Variable C = 8. >> Le PJ se déplace de moins 2 pixels sur l'axe Y.

Le joueur tape sur la touche bas. >> Variable C = 24. >> Le PJ se déplace de plus 2 pixels sur l'axe Y.

Comment arrêter le PJ?

Il suffit de compter les pas du PJ bien sûr, un pas fait 2 pixels, donc pour déplacer le PJ case par case de 32 pixels en 32 pixels, on place un compteur dans la scène, à chaque pas on ajoute 1 au compteur, le compteur est supérieur à 15 (ou =16), alors variable C = 100.

Variable C = 100 >> Le PJ attend sagement que le joueur tape sur une touche.

Saperlipopette! On vient de réaliser un truc qui ressemble fort à une boucle.

Le klik coding consiste à atteindre des objectifs prédéfinis, à remplir un cahier des charges, pas de se

balader sur le forum officiel, en espérant acquérir des notions de programmation par procuration.

Un auto move case par case de façon fluide, avec un PNJ et ses animations.


Principe du PNJ auto move case par case, CTF 2.5 fixe une direction au hasard (0/8/16/24), soit random (4).

Variable C = 100 >> PJ stop.

Variable C = 0 >> PJ +2 pixels sur l'axe X.

Variable C = 1 >> PJ -2 pixels sur l'axe X.

Variable C = 2 >> PJ -2 pixels sur l'axe Y.

Variable C = 3 >> PJ +2 pixels sur l'axe Y.

Puisque le moteur de déplacement est fiable, la caisse se déplacera avec le même principe.

Pour se faire copier, coller, le groupe d'événements concernant le déplacement case par case, faire les

modifications pour la caisse et un nouveau compteur et voili, voilou, le tour et joué. 

Normalement, jusqu'ici, tout à chacun peut comprendre le déplacement d'un sprite sur l'écran.

Les détails se trouvent dans les exemples proposés, des détails en forme de "Klik Spriting" évidemment.

2) L'astuce klik spriting obligatoire.

Le klik spriting consiste à réaliser des objets invisibles à l’œil du joueur, afin de finaliser au moins un training mode (un niveau jouable).

Prendre des cours de dessin pour klik spriter ne sert à rien, par contre accumuler les captures d'écran est du genre indispensable, pour trouver une solution pas piquée des vers.

Voici la problématique principale du jeu, comment déplacer une caisse sur la map?


a) Une caisse ne peut pas se déplacer sur une case obstacle.

b) Une caisse ne peut pas se déplacer sur une case, occupée par une autre caisse.

a = b à condition qu'une caisse soit aussi une case obstacle quand elle ne se déplace pas.

Avec CTF on peut facilement mettre en place une case obstacle, ou une case non obstacle, avec le fameux truc, copier l'image dans le décor.

Le mieux est de résoudre la problématique en amont, plutôt qu'en aval, pour se faire il est besoin d'une couche décomposée, soit un layer modifié (objet actif semi-transparent).

Ce layer permettra de mettre en place des restrictions.

Dans l'éditeur d'événements une condition peut être associée à des restrictions (négations).

La couche de base une capture d'écran, en vert foncé la case occupée par le PJ, en orange le détecteur de case non libre (obstacle ou caisse).

Suivant la direction du PJ, on a besoin que d'une case orange pour le détecteur.

 

PJ direction = 0 >> Détecteur affiche la case orange à droite.
PJ direction = 16 >> Détecteur affiche la case orange à gauche.
PJ direction = 8 >> Détecteur affiche la case orange en haut.
PJ direction = 24 >> Détecteur affiche la case orange en bas.

L'objet actif layer à donc 4 directions, on règle le point chaud à l'aide de la case verte foncée.

Au final on garde seulement une case orange, pour chaque direction.

Les restrictions...

a) Layer fait maison n'est pas au dessus d'un obstacle.

b) Layer fait maison n'est pas au dessus d'une caisse.

Saperlipopette! Mine de rien et mine de crayon, on vient d'appréhender la notion de programmation, case libre et case non libre, avec une hitbox et une couche obstacle.

La fâcheuse habitude du codeur est de taper inutilement des lignes, avec un logiciel de programmation rapide, on évite de se faire mal aux doigts, on utilise ses neurones.

Si les neurones en question, ne jonglent pas régulièrement avec des notions de programmation, autant dire que la cause est du genre perdue.

Le klik spriting consiste à réaliser des objets invisibles à l’œil du joueur, à mettre au point des trucs et astuces, afin de finaliser rapidement un niveau jouable.

Avec un klik soft, tout ne se résout pas, hélas, à grand coup de programmation, puisque l'on passe par  des éditeurs spécifiques, des outils forcément incontournables.

Le PJ lance un objet, l'objet entre en collision avec une caisse, la caisse se déplace sur l'axe X ou Y, de 32 pixels.

Le PJ ne peut pas lancer un objet, si le layer (case orange) se trouve au dessus d'un obstacle, ou d'une caisse, avec deux restrictions, et la mise au point d'un layer on évite de programmer pour rien.

Avec de l'expérience, on réalise le layer fait maison à partir d'un copié, collé, de la tuile de base, évitant ainsi d'effectuer une capture d'écran et une découpe.

Fighter Sokoban, un exemple accessible à un débutant motivé.


Le niveau jouable possède 23 lignes à décortiquer, le solver fait 3 lignes, désolé, il bogue, à vous de l'améliorer, car quoi de mieux que de relever un petit défi, pour s'entrainer?

Savoir programmer un sokoban est à mon humble avis, le minimum syndical pour un clickeur.

Cordialement, à tous et à toutes.

A+++

Le TGF Master Spring Up.