[Autres]Déformation Précalculée

La section pour les scripts de RPG Maker XP !

[Autres]Déformation Précalculée

Message par Amathlog » 18 Juin 2007, 20:10

Ce script viens de la factory : http://rpgmakerxp-factory.net
Créateur : King Kadelfek
Le lien de téléchargement :
image_partant_en_traits-v1.0.rar
(643.66 Kio) Téléchargé 553 fois



Screenshots

Ça gâcherait la surprise.


Le Script

Note : il est très clair, pour aider à comprendre le précalcul.

Code : Tout sélectionner
#==============================================================================
# ¦ Image Précalculée partant en traits
# Version 1.0
#------------------------------------------------------------------------------
# Par King Kadelfek
# http://rpgmakerxp-factory.net
#==============================================================================


class Partir
 
  def initialize(pos_x, pos_y, fluidite, vitesse, hauteur)
   
    # Pos_x et Pos_y
    # les positions x et y de l'image à animer
   
    # Fluidité : plus le chiffre est bas, et moins l'animation sera saccadée
    @fluidite = fluidite
   
    # Vitesse : plus le chiffre est important... plus ça va vite
    @vitesse = vitesse
   
    # La hauteur des traits (de la taille que vous voulez)
    @hauteur = hauteur
   
   
    @viewport = Viewport.new(0, 0, 640, 480)
   
    # On place le viewport au-dessus de tout
    @viewport.z = 9999
   
    @bitmap = RPG::Cache.picture("image640x480.png")
   
   
    @sprite = Sprite.new(@viewport)
    @sprite.x = pos_x
    @sprite.y = pos_y
    @sprite.z = 100
    @sprite.bitmap = @bitmap
   
    # on rend le sprite invisible, pour que l'image ne s'affiche pas tout de suite
    @sprite.visible = false
   
    # On initialise les variables
    @disposed = false
    @compteur = 0
 
    # On lance la fabrication des frames
    fabrication
   
  end
 
 
  # Pour rendre l'animation visible ou invisible
  def visible=(bool)
    @sprite.visible = bool
  end
 
 
  # Pour fabriquer toutes les frames
  def fabrication
   
    width = @bitmap.width
    height = @bitmap.height
   
    @frames = []
   
    i = 0
   
    while (i<width+@fluidite)
     
      bmp = Bitmap.new(width, height)
     
      j = 0
      while (j < height)
        # On dessine une bande décalée vers la droite
        bmp.blt(i, j, @bitmap, Rect.new(0, j, width, @hauteur))
        # On dessine une bande décalée vers la gauche
        bmp.blt(-i, j+@hauteur, @bitmap, Rect.new(0, j+@hauteur, width, @hauteur))
        # On incrémente le positionnement vertical
        j += 2*@hauteur
      end
       
      # On ajoute la frame créée aux autres
      @frames.push(bmp)
     
      # On incrémente le décalage horizontal
      # (notez que c'est la fluidité, et pas la vitesse, qui est utilisée ici)
      i += @fluidite
     
    end 
   
   
  end 
 
 
  # Pour updater l'animation
  def update
   
    return if @disposed
   
    @compteur += @vitesse
    if @compteur >= @frames.size*@fluidite
      # A la fin de l'animation, on libère la mémoire
      dispose
    end 
    @sprite.bitmap = @frames[@compteur/@fluidite]
   
  end
Avatar de l’utilisateur
Amathlog
Modérateur
Modérateur
 
Message(s) : 1510
Inscription : 14 Jan 2007, 19:53
Meilleurs scores: 2

Retour vers Scripts (RGSS)

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)

cron