Drawanim

Description

Ceci vous permet d'afficher des animations sur des picwin de la même manière que pour un drawpic
il vous est possible d'afficher autant d'animations que vous voulez. elles s'afficheront de façon autonome.
la transparence est gérée (fuschia $rgb(255,0,255)): pratique avec des fonds non unis.
possibilité de mettre en pause ou d'effacer l'animation.
les animations sont des fichiers comportant toutes les phases l'une en dessous de l'autre. tous les formats d'image sont supportés du momment que mirc les suporte

une seule commande /drawanim avec des paramètres

un exemple et une aide sont fournies

Source / Exemple :


alias drawanim {
  if $hget(anim) != anim { hmake anim 100 }
  if $1 == -p {
    if $window(@ $+ $2) { .timer $+ $2 -p }
    else echo -a 2* /drawanim: invalid animation name
  }
  elseif $1 == -r {
    if $window(@ $+ $2) { .timer $+ $2 -r }
    else echo -a 2* /drawanim: invalid animation name
  }
  elseif $1 == -c {
    if $window(@ $+ $2) {
      var %cache @ $+ $2 $+ cache
      .timer $+ $2 off
      tokenize 32 $hget(anim,$2)
      hdel anim $3
      drawcopy %cache 0 0 $window(%cache).w $window(%cache).h $2 $5-8
      window -c @ $+ $3
      window -c %cache
    }
    else echo -a 2* /drawanim: invalid animation name
  }
  elseif $1 == -i {
    if $window(@ $+ $2) {
      if ($3 isnum) && ($3 > 0) {
        var %vitesseanim $3
        tokenize 32 $hget(anim,$2)
        hadd anim $3 $1-3 %vitesseanim $5-10
        .timer $+ $3 -om 0 %vitesseanim playanim $3
      }
      else echo -a 2* /drawanim: intervalle not valide
    }
    else echo -a 2* /drawanim: invalid animation name
  }
  elseif $window($2) {
    if $window(@ $+ $3) != @ $+ $3 {
      if $chr(32) !isin $9 {
        if $exists($9) == $true {
          if $len($hget(anim,$3)) == 0 {
            if ($4 > 0) && ($4 isnum) {
              if ($5 isnum) && ($6 isnum ) && ($7 isnum) && ($8 isnum) {
                hadd anim $3 $1-9 0
                window -pkodhnBf +dL @ $+ $3 0 0 $7 $pic($9).height
                window @ $+ $3 0 0 $7 $pic($9).height
                drawpic -s @ $+ $3 0 0 $9
                window -pkodhnBf +dL @ $+ $3 $+ cache 0 400 $7 $8
                drawcopy $2 $5-8 @ $+ $3 $+ cache 0 0
                playanim $3 
                .timer $+ $3 -om 0 $4 playanim $3
              }
              else echo -a 2* /drawanim: intervalle not valide enter number value
            }
            else echo -a 2* /drawanim: intervalle not valide enter positive number
          }
          else echo -a 2* /drawanim: animation name already exists
        }
        else echo -a 2* /drawanim: file $9 not found
      }
      else echo -a 2* /drawanim: enter filename without space
    }
    else echo -a 2* /drawanim: invalid animation name, a window use this name
  }
  else echo -a 2* /drawanim: invalid window
}

alias playanim {
  tokenize 32 $hget(anim,$1)
  if $window($2) {
    var %cache @ $+ $3 $+ cache
    if ($1 == -t) {
      drawcopy -n %cache 0 0 $window(%cache).w $window(%cache).h $2 $5-8
      drawcopy -t @ $+ $3 $rgb(255,0,255) 0 $10 $7-8 $2 $5-8
    }
    else drawcopy @ $+ $3 0 $10 $7-8 $2 $5-8
    if ($calc($10 + $8) < $pic($9).height) hadd anim $3 $1-9 $calc($10 + $8)
    else hadd anim $3 $1-9 0
  }
  else {
    .timer $+ $3 off
    hdel anim $3
    window -c @ $+ $3
    window -c @ $+ $3 $+ cache
  }
}

Conclusion :


Télechargez plutot le zip, un exemple bien concrêt y est mis avec des animations.

pour charger l'addon faire load -rs drawanim.mrc

pour charger l'exemple faire load -rs exemple.mrc (situé dans le dossier exemple)

Codes Sources

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.