Tuto n°2 : petites astuces de programmation sous RM + Vocabulaire

Voir le sujet précédent Voir le sujet suivant Aller en bas

Tuto n°2 : petites astuces de programmation sous RM + Vocabulaire

Message par Larcange le Lun 17 Mai - 11:26

L'éditeur sous RM est super, il met en couleur les différents types...etc
Mais il n'a pas que ça comme fonctionnalités! Il dispose d'un moteur de recherche, accessible en faisant ctrl + f.
Utile lorsque vous souhaitez faire des modifications dans 1000 lignes de code sans aération et sans indentation.
En parlant d'indentation Oo c'est quoi s'te chose?!
Et bien, l'indentation, c'est le fait de laisser un alinéa afin de structurer son code.
si je vous met
Spoiler:

Code:

if tesouro != nil
@chancealeadrop = rand(100)
@chancedrop = 0
for i in 0..(tesouro.size - 1)
if treasure == nil
item_2treasure = tesouro[i] 
treasure_type = item_2treasure[0]
treasure_id = item_2treasure[1]
treasure_prob = item_2treasure[2]
treasure_pp = item_2treasure[3]
@chancedrop += treasure_prob
 if @chancealeadrop < @chancedrop
 if $game_variables[60] >= treasure_pp
 if treasure_type == 0
 treasure = $data_items[treasure_id]
 end
 if treasure_type == 1
 treasure = $data_weapons[treasure_id]
 end
 if treasure_type == 2
 treasure = $data_armors[treasure_id]
 end     
 end
 end
 end
 end
 end

Je rigole à l'idée de la manière dont on regarderait combien de end il faut mettre...
En revanche:
Spoiler:

Code:

tesouro = XAS_BA_ENEMY::ENEMY_MULTI_TREASURE[enemy.id]
  if tesouro != nil
    @chancealeadrop = rand(100)
    @chancedrop = 0
  for i in 0..(tesouro.size - 1)
    if treasure == nil
        item_2treasure = tesouro[i] 
        treasure_type = item_2treasure[0]
        treasure_id = item_2treasure[1]
        treasure_prob = item_2treasure[2]
        treasure_pp = item_2treasure[3]
        @chancedrop += treasure_prob
        if @chancealeadrop < @chancedrop
          if $game_variables[60] >= treasure_pp
          if treasure_type == 0
              treasure = $data_items[treasure_id]
          end
          if treasure_type == 1
            treasure = $data_weapons[treasure_id]
          end
          if treasure_type == 2
            treasure = $data_armors[treasure_id]
          end     
          end # de la pp
      end
      end # de la condition
    end # du for
  end # du if

Ca c'est déjà un peu plus joli!

Ensuite, dans mon premier tuto, je parlais de l'incrémentation et de la décrémentation... Oulah... c'est quoi ces noms barbares?!
Rassurer vous, ça veut juste dire augmenter/diminuer.
Pour par exemple augmenter une variable de 1, on devrais faire:
$mavariable = $mavariable + 1
Un peu chiant quand même de réécrire $mavariable une deuxième fois... Surtout imaginez un nom de variable:
$anticonstitutionnellementestlemotlepluslongdelalanguefrançaise = ... Faut être con mais bon, ça revient au même que d'écrire plusieurs fois $mavariable.
C'est pourquoi il y a l'incrémentation syntaxique: $mavariable += 1 signifie que l'on va augmenter $mavariable de 1
$mavariable+=21002 ...etc
Idem pour $mavariable -= 1, sauf qu'on décrémente cette fois-ci, donc on diminue sa valeur...

Voici maintenant quelques commandes pour compléter le tuto précédent:
Pour afficher une image rm en jeu: (le code est exprès sur deux lignes car la ligne ne rentre pas sur 1 seule ligne dans RM)
Code:

$game_screen.pictures[A
].show("B", C, D, E,F, G, H, I)
Ou A et le n° de l'image, B le nom de l'image, C sa position relative, c'est à dire pixel haut gauche ou central. Ici, soit O, soit 1, 0 pour pixel haut gauche, 1 pour central, D position en x, E position en Y, F et G les agrandissements, H l'opacité (de 0 à 255), et I son affichage (normale, eclaircie, obscurcie, ici, -1, 0, 1; où 0 est normal)
Pourquoi passer par ça alors qu'on a la commande RM qui le fais direct en event? Car tout simplement on ne peut pas afficher d'image en fonction d'une valeur d'une variable simplement. Imaginez une variable qui prend une valeur aléatoire de 0 à 9. Vous devez afficher une image différente par valeur... Vous allez faire 10 conditions? Non! Il suffit simplement d'utiliser la commande ci-dessous,tout en mettant à la place du nom (on supprimes les guillemets car cette fois ce n'est pas du texte!) $game_variables[X].to_s (ne pas oublier la conversion en type string)
Une seule commande pour éviter 10 conditions,et 10 réglages... Moi je dis: j'aime!

Vous souhaitez enregistrer le nom de l'apparence sur la mappe du héros (pour les systèmes de multi-apparence généralement), ou votre héros doit changer de temps à autre de charsets comme lorsqu'il va faire trempette ou autre?
Pas de soucis! Insérez ceci avant de changer le charsets du héros:
Code:

$game_variables[X
] = $game_player.character_name
Pour rechanger l'apparence du héros: déplacer/modifier événement : héros : insérer un script:
Code:

@character_name = $game_variables[X]
Voici maintenant comment enregistrer le nom d'un événement, vous savez le nom que vous donnez en haut à gauche de temps à autre (EVXXX initialement). Je vais vous apprendre à vous en servir comme "interrupteur"
Déjà, voici la commande pour enregistrer le nom d'un event en variable:
déplacer modifier un événement: cet événement: insérer un script:
Code:

i = @id
Code:

$game_variables[X] = $game_map.map.events[i].name

Hop, vous avez le nom de l'event!
Pour changer le nom de l'event, il suffit:
déplacer modifier un événement: cet événement: insérer un script:
Code:

i = @id
Code:

"$game_map.map.events[i].name = "nouveaunom"

Une fois que vous parlez à un personnage par exemple et qu'il vous donne un bonus, vous changez l'apparence de l'event, vous changez son nom, et vous mettez une condition: si : le script :
Code:

$game_map.map.events[A].name == "premiernom"
Faire l'action
Sinon:
"Je n'ai plus rien à te dire!"
fin
Hum, de quoi économiser pas mal d'interrupteurs!
Bon bah voilà je m'arrête un petit peu là ^^ je re-poste un tuto quand je peu. Je pense que j'éditerais ce post car je
sens que j'ai oublié de parler de pas mal de choses... --'
Enfin bon, sur ce, bon making!

Larcange
Soldat Lv.27
Soldat Lv.27

Messages : 796
Age : 25

Fiche
Palmarès:
Spécialité: Scripteur/Event Maker
Avertissements: Aucun

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Tuto n°2 : petites astuces de programmation sous RM + Vocabulaire

Message par Kaila le Jeu 3 Juin - 23:59

Code:
$game_variables[X] = $game_map.map.events[i].name
$game_map.map.events[i].name = "nouveaunom"
Pour que ces lignes de script fonctionnent, il faut ajouter "attr_accessor :map" au début de la classe "Game_Map".

C'est sympa de faire ces tutos. Je n'ai vraiment lu que la seconde moitié de celui là, mais j'ai survolé le reste et ça a l'air bien fait et bien expliqué.

Kaila
Membre-qui-reste Lv.8
Membre-qui-reste Lv.8

Messages : 66

Fiche
Palmarès: Aucun
Spécialité:
Avertissements: Aucun

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Tuto n°2 : petites astuces de programmation sous RM + Vocabulaire

Message par Larcange le Ven 4 Juin - 0:08

Ah oui tiens merci Kaila j'avais zaapé!

Larcange
Soldat Lv.27
Soldat Lv.27

Messages : 796
Age : 25

Fiche
Palmarès:
Spécialité: Scripteur/Event Maker
Avertissements: Aucun

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Tuto n°2 : petites astuces de programmation sous RM + Vocabulaire

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

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

- Sujets similaires

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