[]Ruby,
Tuto n°1
[]Les Sprites
Auteur : Moi
Attention ! Il est nécessaire d'avoir un minimum de connaissance en Ruby pour comprendre ce tuto !
C'est pourquoi je conseillerais au débutant complet de commencer par => là <= 1 - Qu'est-ce qu'un Sprite ?En
Ruby, un
Sprite est un
Objet utilisé pour afficher des images à l'écran.
Il permet d'utiliser des
Bitmaps.
2 - Appel de la Classe :Ici c'est simple :
- Code: Tout sélectionner
Sprite.new
Sprite.new(viewport)
Il est aussi possible de spécifier un argument de type
Viewport.
3 - Méthodes et Propriétés :Méthodes habituelles :Je commencerais avec @sprite = Sprite.new pour les exemples.- Code: Tout sélectionner
@sprite.update
Cette méthode permet de mettre à jour le
Sprite.
Même si elle est très courante, elle est peu utilisée dans le cas du
Sprite.
- Code: Tout sélectionner
@sprite.viewport
Réfère au
Viewport utilisé pour l'affichage du
Sprite (
s'il y en a 1)
- Code: Tout sélectionner
@sprite.dispose
Cette méthode est utilisée pour effacer le
SpriteAttention à ne pas l'oublier

- Code: Tout sélectionner
@sprite.disposed?
Renvoie
TRUE si le
Sprite a été effacé, sinon renvoie
FALSE.
- Code: Tout sélectionner
@sprite.flash(couleur, duree)
Flashe le
Sprite avec la
couleur spécifiée pendant la
duree spécifiée.
Si cette méthode est utilisée, il ne faut pas oublier la mise à jour (
update) qui devient alors indispensable.
- Code: Tout sélectionner
@sprite.bitmap
Réfère au
Bitmap en rapport avec le
Sprite.
- Code: Tout sélectionner
@sprite.src_rect
Réfère au
Rect en rapport avec le
Bitmap du
Sprite.
- Code: Tout sélectionner
@sprite.visible
Détermine si le
Sprite est visible (
TRUE) ou pas (
FALSE).
- Code: Tout sélectionner
@sprite.x
@sprite.y
@sprite.z
Les coordonnées du
Sprite.
x : abscisse
y : ordonnée
z :
hauteur (
l'objet avec la valeur la plus élevée est positionné au-dessus)
- Code: Tout sélectionner
@sprite.opacity
Détermine l'opacité du
Sprite (
entre 0 et 255 inclus)
- Code: Tout sélectionner
@sprite.mirror
Utilisée pour retourner le
Sprite horizontalement (=mirroir).
Si
TRUE le
Sprite est retourné.
- Code: Tout sélectionner
@sprite.tone
Détermine les tons de couleur du
Sprite grâce à la classe
Tone (
fonctionne à peu près pareil que Color)
Je n'ai mis que les méthodes
les plus utilisées, donc sachez qu'il en existe d'autres ...
4 - Petit script d'exemple :Copier/coller ce code dans RMXP (
pour plus de lisibilité avec les couleurs) et lisez bien les commentaires.
Si vous avez été attentifs au-dessus, vous devriez comprendre très facilement.
EDIT : N'oubliez pas de mettre une image (
n'importe laquelle) nommée
Test dans votre dossier
Pictures.
Vous pouvez bien sûr changer ça à la
ligne 21.
- Code: Tout sélectionner
# Définition de la Classe
# Cette classe sera appelée par le code :
# $scene = Scene_Sprite.new
# dans "Insérez un script" d'un event par exemple
class Scene_Sprite
# Méthode Principale
def main
# On appelle le script Spriteset_Map qui permet d'avoir
# une image de la map
@fond_map = Spriteset_Map.new
# C'est là qu'on appelle le fameux Sprite
@sprite = Sprite.new
# On attribue une image au Bitmap du Sprite
#-------------------------------------------
# Note : RPG::Cacche.picture("nom de l'image")
# correspond à un fichier image dans le dossier
# Pictures du jeu
@sprite.bitmap = RPG::Cache.picture("Test")
# On définit une variable qui servira plus tard
@flash = false
#-------------------------------------------
# Ce morceau de code est présent dans toutes
# les Scenes
#-------------------------------------------
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
#---------------------
# On efface le bitmap du Sprite ...
@sprite.bitmap.dispose
# ... puis le Sprite
@sprite.dispose
# Ne pas oublier Spriteset_Map
@fond_map.dispose
# Fin de la méthode main
end
# Méthode de mise à jour
def update
# On met à jour le Sprite (mais pas le Bitmap) ...
@sprite.update
# Ainsi que Spriteset_Map
@fond_map.update
# Si le bouton B (= 0 ou X) est pressé
if Input.trigger?(Input::B)
# On retourne à la Map (Scene_Map)
$scene = Scene_Map.new
end
# Si le bouton C (= Entrée) est pressé
if Input.trigger?(Input::C)
#/////////////////////////////////////////////////////////
# A moins que la variable flash = true
# Regardez plus haut où nous avons définit
# cette variable
unless @flash == true
# On flashe le Sprite en blanc pendant 30 frames
@sprite.flash(Color.new(255,255,255), 30)
# On rend la variable flash = true
@flash = true
# On quitte la méthode
# En réalité on retourne au début
return
end
# Si le Sprite est visible
if @sprite.visible
# On rend le Sprite invisible
@sprite.visible = false
# Sinon
else
# On rend le Sprite visible
@sprite.visible = true
end
# Tout ce qui est entre les #/// ... est exécuter
# si on appuie sur Entrée
#/////////////////////////////////////////////////////////
end
# Si le bouton Bas est pressé
if Input.repeat?(Input::DOWN)
# On déplace le Sprite vers le bas
@sprite.y += 10
end
# Si le bouton Haut est pressé
if Input.repeat?(Input::UP)
# On déplace le Sprite vers le haut
@sprite.y -= 10
end
# Si le bouton Droite est pressé
if Input.repeat?(Input::RIGHT)
# On déplace le Sprite vers la droite
@sprite.x += 10
end
# Si le bouton Gauche est pressé
if Input.repeat?(Input::LEFT)
# On déplace le Sprite vers la gauche
@sprite.x -= 10
end
# Fin de la méthode update
end
# Fin de la Classe
end
Voilà, j'espère que ce tuto sera utile et donnera envie d'apprendre le Ruby plus profondement.
En tout cas n'hésitez pas à poser des questions (même idiotes
) ou à me corriger
Tous vos commentaires sont les bienvenus !
PS : Prochainement, un Tuto sur les Plane et les Viewport et peut-être sur les Bitmap.EDIT : Images :Voilà une image qui peut vous donner un aperçu des fonctionalités d'un Sprite :