AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez
 

 [Tutoriel] Les tiles animés

Aller en bas 
AuteurMessage
onilink_
Modérateur
onilink_

Messages : 9101
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Tutoriel] Les tiles animés Empty
MessageSujet: [Tutoriel] Les tiles animés   [Tutoriel] Les tiles animés EmptyMer 22 Juin 2011 - 10:17


Apprendre le GML

Les tiles animés



1. Le problème

Je suis sur que nombreux se sont déjà posé la question, "Comment animer des tiles ?".
En réalité il n'existe rien dans GM qui permet de faire cela sans bidouillage (et oui nos chers amis Yoyogames on
beau avoir sorti 3 nouvelles versions depuis la 6.1 mais finalement ils oublient toujours l'essentiel).
Je vais donc vous parler ici d'une (et peut être d'autres par la suite) technique qui fonctionne plutôt bien, même si elle a ses limites.

Il va falloir toucher a quelques fonctions qui permettent de manipuler les tiles, alors soyez prêts a ouvrir votre doc :p


2. Système d'animation

Tout d'abord, cette technique ne permet d'animer des tiles (du même layer) que de n frames (mais vous pourrez toujours bidouiller).
Ensuite ça consomme un peu de mémoire, et selon la taille de vos room un temps de chargement au démarrage de celles ci.
L’intérêt c'est que tout est automatique et plus simple, et que si vous l'utilisez correctement les défaut cités ci dessus ne se verrons certainement pas.

Ce système consiste a parcourir la room, regarder s'il existe des tiles et placer chacune de leurs frames sur des layers voisins.
De cette manière, tous les n step on affiche le layer contenant la frame de l'animation actuelle et on cache les autres, ce qui
nous donne un background animé.

Voici l'image que j'utiliserais. Commencer par l'ajouter a vos backgrounds dans GM.

[Tutoriel] Les tiles animés 1123402480

Cochez la case "Use as tile set" et placez quelques tiles dans une room vide a un layer au choix qui serviras uniquement aux animations.
Attention, il nous faut 8 layers vides consécutifs (8 étant le nombre de frame de notre animation ici).
Si vous choisissez le layer 1000000 il nous faut les layers 1000001 a 1000007 de libres car ils contiendrons les frames suivantes de l'animation.

Maintenant créez un nouvel objet (il nous serviras a gérer les animations des tiles).
Nous allons coder un méthode qui permettra de déposer les frames de l'animation pour chaque tile.

Dans Create :

Code:
FRAMES = 8
z = 1000000 // layer depth

// On parcours toute la carte a la recherche de tiles
// animés (se situent sur le layer 1000000 dans cet exemple)
for(i=0; i<room_width; i+=16)
for(j=0; j<room_height; j+=16)
{
    tile = tile_layer_find(z, i, j)
    if( tile )
    {
        top = tile_get_top(tile)
        // si on en trouve un on ajoute chacune des frames comme tiles
        // a des layers différents
        for(t=1; t<FRAMES; t+=1)
            tile_add(tile_get_background(tile), 16*t, top, 16, 16, i, j, z+t)
    }
}

// variables qui servirons a l'animation
temp = 0
layer = 0


Maintenant il ne nous reste plus qu'a afficher le bon layer au cours du temps, que l'on gèrera avec la variable 'temp'.

Dans Step :

Code:
// permet de définir la vitesse d'animation
temp += 1
if(temp mod 6) exit // l'animation se feras tous les 6 step

for(i=0; i<FRAMES; i+=1)
{
    if(i != layer)
        tile_layer_hide(z + i)
    else
        tile_layer_show(z + i)
}

layer = (layer+1) mod FRAMES


Voila, maintenant si vous placez votre objet dans la room ou les tiles doivent être animé, bah il s’animeront pendant le jeu (sans blague).

Pour ce qui avaient la flemme de tout lire voici un gm6 d'exemple :
http://www.host-a.net/u/onilink_/tiles_animated.gm6


_________________
[Tutoriel] Les tiles animés Runningpotato1[Tutoriel] Les tiles animés TvF6GED


Dernière édition par onilink_ le Mer 22 Juin 2011 - 10:20, édité 1 fois
Revenir en haut Aller en bas
En ligne
Invité
Invité



[Tutoriel] Les tiles animés Empty
MessageSujet: Re: [Tutoriel] Les tiles animés   [Tutoriel] Les tiles animés EmptyMer 22 Juin 2011 - 10:20

excellent tutoriel comme d'habitude, bravo thumright
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_

Messages : 9101
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Tutoriel] Les tiles animés Empty
MessageSujet: Re: [Tutoriel] Les tiles animés   [Tutoriel] Les tiles animés EmptyMer 22 Juin 2011 - 10:22

Merci :p

Si vous connaissez d'autres techniques n’hésitez pas a me demander d'ajouter une partie.

_________________
[Tutoriel] Les tiles animés Runningpotato1[Tutoriel] Les tiles animés TvF6GED
Revenir en haut Aller en bas
En ligne
Contenu sponsorisé




[Tutoriel] Les tiles animés Empty
MessageSujet: Re: [Tutoriel] Les tiles animés   [Tutoriel] Les tiles animés Empty

Revenir en haut Aller en bas
 
[Tutoriel] Les tiles animés
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Réduire le temps de défilement d'un gif animé avec Gimp
» Santons animés
» Titi part en pension - Titi vertrekt met pensioen
» Décompte annuel
» The Meatrix

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Game Maker-
Sauter vers: