Bon, j'me lance dans mon premier tuto.
J'ai cherché (un peu) et n'ai rien trouvé qui existe déjà, j'espère donc pouvoir apporter ma pierre à l'édifice.
-J'ai placé en spoiler les informations non essentielles.
-j'utilise le terme
incrémenter qui signifie donner une valeur à une variable
Objet: réaliser une flamme qui sorte d'un mur et qui enlève des points de vie au personnage s'il se trouve à cet endroit au moment de la sortie de flamme.
Matériel: - animation de flamme (feu.png) stockée dans "characters"
- évènement
- variables: xrobot, yrobot, xici, yici, pvrobot.
Il s'agit d'une commande: un ami m'a demandé de faire une adaptation du jeu "roborally".
Le jeu est en vue plongeante. Des flammes sortent des murs à intervalles réguliers. Si le robot (en rouge) est sur la case au moment ou la flamme sort, celui-ci est brulé et perd un point de vie.
voici le code de l'évènement placé à l'endroit périlleux ou la flamme sort:
Explication:cocher "processus parallèle": les flammes sortent même si le robot n'est pas présent
et "traversable": le robot doit pouvoir passer sur la case
Attendre 50 frame : temps de déclenchement. Chaque flamme aura son propre rythme et se déclenchera à son tour.
Incrémentation:On incrémente xrobot = coordonnées x du perso, yrobot= coordonnées y du robot, xici= coordonnées x de "cet évènement", yici=coordonnées y de "cet évènement)
Conditions:deux conditions embrassées: si xrobot=xici puis si yrobot=yici. Pas besoin de réponse si les conditions ne sont pas respectées.
a l'intérieur de ces deux conditions, on fait en sorte que le robot soit bléssé avec la ligne d'incrémentation: pvrobot=pvrobot+1.
- Spoiler:
la variable pvrobot est inverse des points de vie du robot: ça m'évite de devoir l'incrémenter au début du jeu... pvrobot=0: le robot à 5 points de vie. pvrobot=5: le robot a zéro point de vie, fin de partie
- Spoiler:
La ligne modifiant l'opacité du robot vient du fait que je défini mon perso comme étant "au dessus de tout" pour des raisons pratiques. Ainsi, lorsque la flamme s'allume et que le robot est sur la case, il devient en partie transparent... pris dans les flammes !
- Spoiler:
j'appelle à ce moment un évènement parallèle de gestion des points de vie du robot, avec barre d'affichage et eventuellement fin de partie.
Nous avons dors et déjà l'essentiel de notre évènement: si le robot est présent sur la case au moment du déclenchement (toutes les 50 frames dans cet exemple) il est brulé !
Passons maintenant à l'animation de la flamme:
On choisit "déplacer modifier un évènement"
puis on code les lignes suivantes:
un effet sonore ( pas trop de volume, sinon, on entend plus que ça) suivi de quatre changements d'apparence intercalés de 2 frames d'attente. (le réglage des temps d'attente et des images choisies dépend de l'effet escompté)
fermer le déplacement d'évènement.
IMPORTANT ! Placer ensuite un délai d'attente égal au moins à la somme des divers délais placés précédemment. (l'animation n'apparaitra pas sinon...)
ici: 10 frames
A nouveau "déplacer modifier un évènement"
choisir changement d'apparence: aucune (la flamme s'éteint et disparait)
- Spoiler:
La ligne suivante restaure l'opacité du robot.
Et voila !
Dans ce jeu, le même principe est utilisé pour de nombreux évènements (la barre repoussoir en haut à gauche par exemple, qui se met en marche à intervalles réguliers et repousse le robot d'une case...)
Ce type d'évènement est particulièrement utile pour la fabrication de jeux type "plateau" ou l'adresse du joueur entre en ligne de compte.
Bon courage, et j'éspère avoir été assez concis et clair.