Le wiki de la création de jeux

Évènements relatifs aux cartes

Il est très courant de vouloir exécuter un évènement au chargement de certaines cartes. Un système simple permet d’exécuter une série de commandes RME dès qu’une carte est chargée.

Créez un emplacement vide dans l’éditeur de scripts, en dessous de RME, que vous pouvez par exemple nommer Map Onload Events. C’est dans cet emplacement que vous pourrez écrire ce qu’il se passe à l’arrivée sur une carte. Par exemple :

map_onload(1) do
   # Insérer des commandes RME
end

Au chargement de la carte 1, toutes les commandes présentes dans ce bloc seront exécutées. Vous pouvez écrire autant de blocs onload que vous le désirez.

Voici un autre exemple où, sur la carte 2, on charge un panorama et on affiche un effet de lumière, mais aussi où en arrivant sur la carte 3, on attribue la valeur 27 à la variable 19.

map_onload(2) do
   parallax_show(1, "panorama_map2", 100)
   picture_show(10, "effet_lumiere", 0, 0)
end

map_onload(3) do
   V[19] = 27
end

Sélection multiple de cartes

Il est possible de généraliser un comportement pour plusieurs cartes.

map_onload(1,2,3,4,5) do
   V[2] = player_x
   V[3] = player_y
end

Avec ce script, chaque fois que les cartes 1, 2, 3, 4, et 5 seront chargées, les variables 2 et 3 prendront les coordonnées du joueur.

Sélection universelle

Il existe un sélecteur un peu particulier, :all, qui permet de cibler toutes les maps.

map_onload(:all) do
   pictures_clear
   parallaxes_clear
end

Cet exemple efface toutes les images et les panoramas au chargement d’une nouvelle carte.

Note sur les priorités

On peut appeler autant de onload que l’on désire, donc cette succession de commandes est parfaitement valide :

map_onload(1) do
   pictures_clear
end
map_onload(1) do
   parallaxes_clear
end

C’est toujours le premier onload défini qui sera exécuté en premier. Cependant, les sélections universelles seront toujours appelées en tout premier.

Evènements continus

En plus d’exécuter des commandes au démarrage de la carte, il est aussi possible d’exécuter une succession de commandes en parallèle durant l’exécution d’une carte.

map_onload(:all) do
   picture_show(20, "cursor")
end
map_onprogress(:all) do
   picture_move(20, mouse_x, mouse_y, 100, 100, 1, false)
end

Ce script affiche l’image cursor.png lors de l’arrivée sur la carte puis, en parallèle, l’image sera déplacée sur les coordonnées de la souris.


Dernière mise à jour le 30 décembre 2018