Zarok RPG Maker
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



 
AccueilDernières imagesS'enregistrerConnexion
-45%
Le deal à ne pas rater :
PC Portable LG Gram 17″ Intel Evo Core i7 32 Go /1 To
1099.99 € 1999.99 €
Voir le deal

Partagez | 
 

 [RGSS] Tuto 3 : Bitmap, Color, Sprite

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Tonyryu
Matière
Matière
Tonyryu


Masculin Messages : 221
Age : 43
Loisirs : Making, Paintball, jeux video
Date d'inscription : 20/11/2006

Caractéristiques du membre
Evolution: Atome
Job:
XP:
[RGSS] Tuto 3 : Bitmap, Color, Sprite Left_bar_bleue20/20[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty_bar_bleue  (20/20)

[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty
MessageSujet: [RGSS] Tuto 3 : Bitmap, Color, Sprite   [RGSS] Tuto 3 : Bitmap, Color, Sprite EmptyVen 16 Mar 2007 - 23:46

Pour ce tuto, comme le tuto 1, il vous fautle fichier d'aide RPG maker XP en français, ainsi qu'un projet completement vide et n'ayant qu'un seul script s'appelant 'main' et contenant ce code :

Code:
#==============================================================================
# ■ Main
#------------------------------------------------------------------------------
#  Fonction principale du programme, c'est ici que ça commence
#==============================================================================

begin

end

Donc, dans un premier temps, le bitmap. En programmation la plupart du temps, c'est une zone rectangulaire où l'on peut définir des pixels de couleur, mais attention cette zone est conservé en mémoire et n'est pas affiché automatiquement, mais cela on le verra plus tard.
Dans le RGSS, comme vous pouvez le voir dans le fichier d'aide, beaucoup de fonctions sont associées à la classe Bitmap, et permettent donc son utilisation de maniére simplifiée et optimale. Si vous avez déjà été vous promener dans plusieurs scripts Window_.., vous avez certainement due constater ces lignes de code :
Code:
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
Code:
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 130, 32, "Temps de jeu :")
Elles permettent de créer une zone Bitmap pour la fenêtre et de pouvoir la modifier.

Certains se diront "Ba oui, mais ça, ça s'affiche tout seul, alors pourquoi t'as dit que c'était juste une zone mémoire?" Tout simplement car, dans le cas de Window, la propriété 'contents' est affiché via les fonctions internes de la class RGSS Window. Mais cette classe sera abordé bien plus tard.

Bon ensuite pour pouvoir dessiner dans cette classe il va falloir définir des couleurs, pour cela, on va utiliser la classe intégrée 'Color'. Vous connaisez tous un peu le principe du fonctionne d'un téléviseur, il faut aditionner 3 couleurs de base pour optenir tout le panel de couleur, ces 3 couleurs sont Rouge, Vert et Bleu (RVB, ou RGB pour les anglophones), il ya aussi le paramétre 'alpha' qui rentre en compte pour la définition d'une couleur (voir le post suivant pour plus de détail). Regarder dans le logiciel Paint, et essayer de redéfinir des couleurs. En ruby, cela se fait de cette manière :
Code:
  couleur_bleu = Color.new(0, 0, 255, 255) # R, V, B, Alpha a 255
  couleur_blanc = Color.new(255, 255, 255, 255)
Voila pour la classe Color, il n'y a rien d'autre à retenir

Chose importante : Un sprite ou un Bitmap, c'est beaucoup de ressource utilisé, il faut donc penser systématiquement à libérer ces ressources lorsque l'on utilise plus les sprites ou Bitmaps, à l'aide de la fonction 'dispose'

Pour la classe Sprite, on va juste pour le moment, l'initialiser avec un bitmap pour pouvoir l'afficher
Code:
#==============================================================================
# ■ Main
#------------------------------------------------------------------------------
#  Fonction principale du programme, c'est ici que ça commence
#==============================================================================

begin
  # Créer un nouveau sprite
  spr = Sprite.new
  # Associer un bitmap faisant la taille de la fenêtre RMXP
  spr.bitmap = Bitmap.new(640,480)
  # Création de la couleur Bleu
  couleur_bleu = Color.new(0,0,255,255)
  # Faire un carré de 4 pixel
  spr.bitmap.set_pixel(50, 50, couleur_bleu)
  spr.bitmap.set_pixel(50, 51, couleur_bleu)
  spr.bitmap.set_pixel(51, 50, couleur_bleu)
  spr.bitmap.set_pixel(51, 51, couleur_bleu)

  loop do
    # Mettre à jour les graphiques
    Graphics.update
    # Mettre à jour les entrés claviers
    Input.update
    # Sortir de la boucle, Si Echap est appuyé
    break if Input.trigger?(Input::B)     
  end

  # Libérer le sprite
  spr.dispose
end

Avec les fonctions bitmap, on aurait pus faire plus simple pour dessiner un carré :
Code:
#==============================================================================
# ■ Main
#------------------------------------------------------------------------------
#  Fonction principale du programme, c'est ici que ça commence
#==============================================================================

begin
  # Créer un nouveau sprite
  spr = Sprite.new
  # Associer un bitmap faisant la taille de la fenêtre RMXP
  spr.bitmap = Bitmap.new(640,480)
  # Création de la couleur Bleu
  couleur_bleu = Color.new(0,0,255,255)
  # Faire un carré de 50 sur 50 pixel
  spr.bitmap.fill_rect(50, 50, 10, 10, couleur_bleu)

  loop do
    # Mettre à jour les graphiques
    Graphics.update
    # Mettre à jour les entrés claviers
    Input.update
    # Sortir de la boucle, Si Echap est appuyé
    break if Input.trigger?(Input::B)     
  end

  # Libérer le sprite
  spr.dispose
end

Ecrire un texte?? pas de problème, on va juste initialiser la propriété font de la classe Bitmap. (Allez voir Font dans le fichier d'aide, faut que ce soit automatique maintenant)
Code:
#==============================================================================
# ■ Main
#------------------------------------------------------------------------------
#  Fonction principale du programme, c'est ici que ça commence
#==============================================================================

begin
  # Créer un nouveau sprite
  spr = Sprite.new
  # Associer un bitmap faisant la taille de la fenêtre RMXP
  spr.bitmap = Bitmap.new(640,480)
  # Création de la couleur Bleu
  couleur_bleu = Color.new(0,0,255,255)
  # Initialisation de la font du bitmap
  spr.bitmap.font.name = ["Arial", "Courier New"]
  spr.bitmap.font.size = 26
  spr.bitmap.font.color = couleur_bleu
  # Ecrire un texte
  spr.bitmap.draw_text(50, 50, 500, 32, "Mon premier texte affiché sur RMXP !!")

  loop do
    # Mettre à jour les graphiques
    Graphics.update
    # Mettre à jour les entrés claviers
    Input.update
    # Sortir de la boucle, Si Echap est appuyé
    break if Input.trigger?(Input::B)     
  end

  # Libérer le sprite
  spr.dispose
end

Tout ce qui est en rapport avec 'Rect', permet de créer des sous-zone de bitmap. Si vous vous sentez à l'aise, essayer de manipuler quelque zone Rect.

On va faire un dernier petit truc sympas avec les bitmaps, c'est d'afficher une ressource. Pour cela, il existe une fonction pour chaque ressource qui retourne un bitmap, c'est les fonctions du module RPG::Cache (gogo fichier d'aide)
Code:
#==============================================================================
# ■ Main
#------------------------------------------------------------------------------
#  Fonction principale du programme, c'est ici que ça commence
#==============================================================================

begin
  # Créer un nouveau sprite
  spr = Sprite.new
  # Associer un bitmap de la ressource Battler 002-Fighter02
  spr.bitmap = RPG::Cache.battler("002-Fighter02",0)
  # Positionner le sprite
  spr.x = 100
  spr.y = 100

  loop do
    # Mettre à jour les graphiques
    Graphics.update
    # Mettre à jour les entrés claviers
    Input.update
    # Sortir de la boucle, Si Echap est appuyé
    break if Input.trigger?(Input::B)     
  end

  # Libérer le sprite
  spr.dispose
end

Voila voila, c'est déjà pas mal, non? Si le coeur vous en dit, tenter d'utiliser les autres fonctionnalités de la classe Sprite (zoom, rotation...)


Dernière édition par le Mar 20 Mar 2007 - 10:42, édité 1 fois
Revenir en haut Aller en bas
http://www.tonyryudev.com
Tonyryu
Matière
Matière
Tonyryu


Masculin Messages : 221
Age : 43
Loisirs : Making, Paintball, jeux video
Date d'inscription : 20/11/2006

Caractéristiques du membre
Evolution: Atome
Job:
XP:
[RGSS] Tuto 3 : Bitmap, Color, Sprite Left_bar_bleue20/20[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty_bar_bleue  (20/20)

[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty
MessageSujet: Re: [RGSS] Tuto 3 : Bitmap, Color, Sprite   [RGSS] Tuto 3 : Bitmap, Color, Sprite EmptyVen 16 Mar 2007 - 23:47

Revenons au fameux 4eme paramètre définissant une couleur, je mets cet exemple de programme avec l'affichage de 2 sprites contenant chacun un carré de couleur, un bleu ayant alpha à 255, et un rouge ayant alpha à 128 :

Code:
#==============================================================================
# ■ Main
#------------------------------------------------------------------------------
#  Fonction principale du programme, c'est ici que ça commence
#==============================================================================

begin
  # Créer des nouveaux sprites
  sprBleu = Sprite.new
  sprRouge = Sprite.new
 
  # Associer un bitmap faisant la taille 150*150 pxl
  sprBleu.bitmap = Bitmap.new(150,150)
  sprRouge.bitmap = Bitmap.new(150,150)
 
  # Création des couleurs
  couleur_bleu = Color.new(0,0,255,255)
  couleur_rouge = Color.new(255,0,0,128)
  # Faire des carrés de 100*100 pixel
  sprBleu.bitmap.fill_rect(0, 0, 100, 100, couleur_bleu)
  sprRouge.bitmap.fill_rect(50, 50, 100, 100, couleur_rouge)

  loop do
    # Mettre à jour les graphiques
    Graphics.update
    # Mettre à jour les entrés claviers
    Input.update
    # Sortir de la boucle, Si Echap est appuyé
    break if Input.trigger?(Input::B)   
  end

  # Libérer le sprite
  spr.dispose
end

Vous pouvez constater que le carré rouge est plus sombre et légèrement trensparent. donc alpha gére la trensparence de la couleur définit. Mais attention, chose importante, la couleur affiché, correspond au mélange de deux couleurs, la couleur du pixel utilisé dans le bitmap, et la couleur de tranparence du sprite, définit par le paramètre 'color' du sprite (par défaut 'color' = Color.new(0,0,0,0) soit noir complétement transparente). Si vous changé 'color' du sprite en la mettant plus opaque, vous vous retrouvez avec un mélange diférent :

Code:
#==============================================================================
# ■ Main
#------------------------------------------------------------------------------
#  Fonction principale du programme, c'est ici que ça commence
#==============================================================================

begin
  # Créer des nouveaux sprites
  sprBleu = Sprite.new
  sprRouge = Sprite.new
 
  # Associer un bitmap faisant la taille 150*150 pxl
  sprBleu.bitmap = Bitmap.new(150,150)
  sprRouge.bitmap = Bitmap.new(150,150)
 
  sprRouge.color = Color.new(255,255,255,128) # Couleur blanche semi-transparente
 
  # Création des couleurs
  couleur_bleu = Color.new(0,0,255,255)
  couleur_rouge = Color.new(255,0,0,180)
 
  # Faire des carrés de 100*100 pixels
  sprBleu.bitmap.fill_rect(0, 0, 100, 100, couleur_bleu)
  sprRouge.bitmap.fill_rect(50, 50, 100, 100, couleur_rouge)

  loop do
    # Mettre à jour les graphiques
    Graphics.update
    # Mettre à jour les entrés claviers
    Input.update
    # Sortir de la boucle, Si Echap est appuyé
    break if Input.trigger?(Input::B)   
  end

  # Libérer le sprite
  spr.dispose
end

Vous savez maintenant à quoi sert le paramètre alpha des couleurs.
Revenir en haut Aller en bas
http://www.tonyryudev.com
nono49
Atome
Atome


Messages : 3
Date d'inscription : 02/02/2009

[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty
MessageSujet: Re: [RGSS] Tuto 3 : Bitmap, Color, Sprite   [RGSS] Tuto 3 : Bitmap, Color, Sprite EmptyLun 2 Fév 2009 - 19:46

Bonjour, je sais que ce que je fais est un nécropost mais je n'ai pas trouver ou je pourai mettre ma réponse, j'en suis fort désolé.

Voilà, je me demandais si Tonyriu aller continuer a faire quelques tutos? Car j'ai beau réussir ce qu'il apprend, je n'arrive toujours pas à trouver comment créer certains script.
J'ai remarquer que toute les choses qu'il apprend sont dans les scripts, mais il y a aussi d'autre code ruby que franchement je ne comprend pas beaucoup et que j'aimerai bien savoir^^.

Voilà je suis vraiment désolé pour ce nécropost mais je vous dit merci pour ces tutos que je suis a la lettres!! Aurevoir!
Revenir en haut Aller en bas
KoRn
Matière
Matière
KoRn


Messages : 272
Date d'inscription : 01/01/2009

Caractéristiques du membre
Evolution: Atome
Job: Scénario
XP:
[RGSS] Tuto 3 : Bitmap, Color, Sprite Left_bar_bleue20/20[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty_bar_bleue  (20/20)

[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty
MessageSujet: Re: [RGSS] Tuto 3 : Bitmap, Color, Sprite   [RGSS] Tuto 3 : Bitmap, Color, Sprite EmptyLun 2 Fév 2009 - 20:36

Franchement je ne pense pas qu'il reviendra mais pour apprendre étudie les scripts de base de RM XP ça permet de comprendre pas mal de choses Wink
Revenir en haut Aller en bas
Gray-Fox
Embryon
Embryon
Gray-Fox


Masculin Messages : 1145
Age : 29
Loisirs : Tuer
Date d'inscription : 01/06/2008

Caractéristiques du membre
Evolution: Atome
Job: Parti
XP:
[RGSS] Tuto 3 : Bitmap, Color, Sprite Left_bar_bleue20/20[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty_bar_bleue  (20/20)

[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty
MessageSujet: Re: [RGSS] Tuto 3 : Bitmap, Color, Sprite   [RGSS] Tuto 3 : Bitmap, Color, Sprite EmptyMar 3 Fév 2009 - 6:20

Il n'est pas le seul scripteur sur la planète, il y a beaucoup de sites qui vont t'apprendre le ruby, google est ton meilleur ami Wink
Revenir en haut Aller en bas
Zero
Zero


Masculin Messages : 1755
Age : 32
Loisirs : Fight, Drink and Fuck
Date d'inscription : 26/04/2007

Caractéristiques du membre
Evolution: Atome
Job: La fête !
XP:
[RGSS] Tuto 3 : Bitmap, Color, Sprite Left_bar_bleue20/20[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty_bar_bleue  (20/20)

[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty
MessageSujet: Re: [RGSS] Tuto 3 : Bitmap, Color, Sprite   [RGSS] Tuto 3 : Bitmap, Color, Sprite EmptyMar 3 Fév 2009 - 11:18

Il y a plein d'autres tutos pour apprendre a faire des scripts; fouille un peu...

Pour faire un necropost tu peut demander une autorisation a un modo ou admin!
Revenir en haut Aller en bas
nono49
Atome
Atome


Messages : 3
Date d'inscription : 02/02/2009

[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty
MessageSujet: Re: [RGSS] Tuto 3 : Bitmap, Color, Sprite   [RGSS] Tuto 3 : Bitmap, Color, Sprite EmptyMar 3 Fév 2009 - 17:18

Oui, tout sa je le sais mais je trouvais qu'il expliquer vachement bien et je coprenais tout lol! Mais merci je vais chercher un peu^^
Revenir en haut Aller en bas
KoRn
Matière
Matière
KoRn


Messages : 272
Date d'inscription : 01/01/2009

Caractéristiques du membre
Evolution: Atome
Job: Scénario
XP:
[RGSS] Tuto 3 : Bitmap, Color, Sprite Left_bar_bleue20/20[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty_bar_bleue  (20/20)

[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty
MessageSujet: Re: [RGSS] Tuto 3 : Bitmap, Color, Sprite   [RGSS] Tuto 3 : Bitmap, Color, Sprite EmptyMar 3 Fév 2009 - 18:15

Tu as deux façon d'apprendre :
-le ruby c'est pas très long on peut le comparer à du c++ simplifié (mais pas plus limité) étant un langage POO (programmation orientée objet)
-Le RGSS c'est une simplification du ruby c'est le langage d'RM XP avec pas mal de fonctions déjà toutes faites Wink
Revenir en haut Aller en bas
nono49
Atome
Atome


Messages : 3
Date d'inscription : 02/02/2009

[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty
MessageSujet: Re: [RGSS] Tuto 3 : Bitmap, Color, Sprite   [RGSS] Tuto 3 : Bitmap, Color, Sprite EmptyMar 3 Fév 2009 - 18:47

Oki, Oki ! Merci beaucoup!!
Revenir en haut Aller en bas
Contenu sponsorisé



[RGSS] Tuto 3 : Bitmap, Color, Sprite Empty
MessageSujet: Re: [RGSS] Tuto 3 : Bitmap, Color, Sprite   [RGSS] Tuto 3 : Bitmap, Color, Sprite Empty

Revenir en haut Aller en bas
 

[RGSS] Tuto 3 : Bitmap, Color, Sprite

Voir le sujet précédent Voir le sujet suivant Revenir en haut 

 Sujets similaires

-
» [RGSS] Tuto 1 : Débuter avec le RGSS
» [RGSS] Tuto 2 : Module Input
» demande de tuto : simplification d'un autre tuto
» Les différents RGSS
» Le RGSS (Partie 1)
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Zarok RPG Maker :: 

 :: TUTORIELS :: Tutoriels de Programmation
-
Sauter vers: