Sujet n°4850
Posté par
Drakhaine le
16 Aoû - 22:31 (2009)Titre :
Saut réaliste (manque effet d'ombre, la flemme)Dans le script Game_Player (le deuxième, celui fait par Krosk), remplacer
Code: |
class Game_Player < Game_Character def update # ローカル変数に移動中かどうかを記憶 last_moving = moving? # 移動中、イベント実行中、移動ルート強制中、 # メッセージウィンドウ表示中のいずれでもない場合 unless moving? or $game_system.map_interpreter.running? or @move_route_forcing or $game_temp.message_window_showing # 方向ボタンが押されていれば、その方向へプレイヤーを移動 case Input.dir4 when 2 move_down when 4 move_left when 6 move_right when 8 move_up end end # ローカル変数に座標を記憶 last_real_x = @real_x last_real_y = @real_y super
|
par
Code: |
class Game_Player < Game_Character def update # ローカル変数に移動中かどうかを記憶 last_moving = moving? # 移動中、イベント実行中、移動ルート強制中、 # メッセージウィンドウ表示中のいずれでもない場合 unless moving? or $game_system.map_interpreter.running? or @move_route_forcing or $game_temp.message_window_showing # 方向ボタンが押されていれば、その方向へプレイヤーを移動 # Coordonnées du tile faisant face xf = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0) yf = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0) case Input.dir4 when 2 if $game_map.terrain_tag(xf, yf) != 6 move_down elsif $game_map.terrain_tag(@x, @y+1) == 6 and $game_map.passable?(@x, @y+2,2) sauter(2) else move_down end when 4 if @direction != 4 xf = @x - 1 yf = @y end if $game_map.terrain_tag(xf, yf) != 6 move_left elsif $game_map.terrain_tag(@x-1, @y) == 6 and $game_map.passable?(@x-1, @y, 6) and $game_map.passable?(@x-2, @y,4) sauter(4) else move_left end when 6 if @direction != 6 xf = @x + 1 yf = @y end if $game_map.terrain_tag(xf, yf) != 6 move_right elsif $game_map.terrain_tag(@x+1, @y) == 6 and $game_map.passable?(@x+1, @y, 4) and $game_map.passable?(@x+2, @y,6) sauter(6) else move_right end when 8 move_up end end # ローカル変数に座標を記憶 last_real_x = @real_x last_real_y = @real_y super
|
puis tout à la fin de ce script, juste avant le dernier "end", rajouter
Code: |
def sauter(dir) move_route = RPG::MoveRoute.new move_route.repeat = false move_route.skippable = true move_command1 = RPG::MoveCommand.new move_command2 = RPG::MoveCommand.new move_command3 = RPG::MoveCommand.new move_command4 = RPG::MoveCommand.new move_command5 = RPG::MoveCommand.new move_command6 = RPG::MoveCommand.new move_command7 = RPG::MoveCommand.new move_command1.code = 37 # Fantôme ON move_command2.code = 44 # Effet sonore move_command2.parameters = ["Pokemove.WAV"] move_command3.code = 27 # Activer switch move_command3.parameters = [100] move_command4.code = 14 # Jump case dir when 2 move_command4.parameters = [0,2] when 4 move_command4.parameters = [-2,0] when 6 move_command4.parameters = [2,0] end move_command5.code = 28 # Désctiver switch move_command5.parameters = [100] move_command6.code = 38 # Fantôme OFF move_command7.code = 0 # End move_route.list = [move_command1] + [move_command2] + [move_command3] + [move_command4] + [move_command5] + [move_command6] + [move_command7] force_move_route(move_route) end
|
Créez ensuite un Event commun en processus parallèle avec en condition l'Interrupteur n°100 sur ON
Dedans, faites juste une ligne affichant une animation sous le héros : cette animation doit durer une frame et afficher une ombre. Faites plusieurs tests pour qu'elle se place sous le héros.
Il ne vous reste plus qu'à régler dans vos tilesets les barres rocheuses avec un terrain_tag de 6
(excusez-moi, le screen est pris sous RMXP version "normale" et pas sous PSP)
Voilà, j'espère que ça vous servira :D
Et s'il y a un bug, c'est juste que j'ai oublié de fournir un bout du script puisqu'il fonctionne parfaitement chez moi, normalement tout est là néanmoins.
Posté par
anonymate le
19 Aoû - 18:50 (2009)Interessant.... J'essaye et j'édite !
EDIT: Le héros saute, mais sa n'affiche pas de l'ombre, qu'es qu'il faut ajouter?
Posté par
Drakhaine le
19 Aoû - 19:43 (2009)"C'est là-dedans qu'il faudra rajouter des MoveCommands pour ajouter l'ombre sous le héros
Les codes doivent être trouvables pas trop difficilement
(soit la movecommand pour changer le charset du héros, soit les movecommands qui activent/désactivent un switch, lui même permettant à un évènement commun en processus parallèle d'afficher une animation sous le héros tant que ce switch est activé)"
J'avais la flemme de le faire c'est pour ça, mais en suivant les instructions et en cherchant un peu ça devrait pas ^etre trop long ni dur
Posté par
Pαlвσlѕку le
19 Aoû - 19:53 (2009)Quand le héros saute, il y a t-il un effet sonore ?
Pour l'ombre, l'animation serait la méthode la plus simple à priori.
Posté par
Drakhaine le
19 Aoû - 20:11 (2009)Pour l'effet sonore, pareil, suffit d'inclure une movecommand avec un code particulier (dans mes souvenirs, faut juste ouvrir la fenêtre de déplacement du héros dans les events et compter le nombre de boutons de haut en bas et de gauche à droite, mais ça fait longtemps que j'l'ai fait et y'a p'tètre des numéros qui servent à rien, pas sûr...)
move_commandX= RPG::MoveCommand.new
move_commandX.code = CODE
où X est un numéro d'id et CODE est le code de la commande désirée
ensuite, ne pas oublier de modifier cette ligne :
move_route.list = [move_command1] + [move_command2] + [move_command3] + [move_command4]
(mettre les commandes dans l'ordre)
EDIT : petite aide :
jouer un effet sonore : code 44
activer un interrupteur : code 27
désactiver un interrupteur : code 28
Posté par
anonymate le
19 Aoû - 20:47 (2009)je comprends rien, es parce que:
Je suis très fatigué.
Je suis nul en script
Posté par
Drakhaine le
19 Aoû - 20:50 (2009)laisse quelqu'un qui comprend s'en occuper alors :p Moi j'ai vraiment la flemme d'y retoucher, même pour 30 lignes maxi...
Posté par
Pαlвσlѕку le
19 Aoû - 21:27 (2009)C'est bien beau tous ça, mais pour jouer un effet sonore, il faut que je détermine d'abord qu'elle est cet effet sonore (en d'autre terme, son nom). Comment je fais ?
Posté par
Drakhaine le
19 Aoû - 22:04 (2009)move_commandX.parameters = [NUM]
avec X pour le numéro de ta moveCommand et NUM pour le numéro du switch (le même que dans $game_switches)
exemple pour activer le switch n°120
Code: |
move_command5= RPG::MoveCommand.new move_command5.code = 27 move_command5.parameters = [120]
|
move_commandX.parameters = ["NAME"]
avec NAME pour le nom du son + son extension
exemple pour jouer le son Pokemove.WAV
Code: |
move_command6= RPG::MoveCommand.new move_command6.code = 44 move_command6.parameters = ["Pokemove.WAV"]
|
(effet sonore = dans le dossier Audio/SE)
EDIT : C'est bon, j'ai réédité le premier message, le son est ajouté, les activations/désactivations de switches aussi, y'a plus qu'à créer une animation durant 1 frame (ou alors une animation durant le temps d'un saut)
Posté par
spirow le
30 Avr - 20:57 (2010)salut!
Same dit que y a un probleme a la ligne :
<b style="color:#054C3C">sauter[/b](2)
quelqu'un peu m'aider svp ?
Posté par
spirow le
1 Juil - 21:20 (2010)Pour moi le héro ne saute pas du tout ... quelqu'un pourrais m'aider svp ?
Posté par
Drakhaine le
3 Juil - 16:54 (2010)T'as dû soit oublier une étape (mettre les tags de terrain à 6 ?), soit modifier le premier script (natif à RMXP) au lieu du deuxième (celui de Krosk).
Y'a aucune raison que ça ne fonctionne pas sinon
Posté par
RevengeOfShadow le
26 Aoû - 06:30 (2010)Moi j'ai le même problème alors que :
* Les tags terrains sont à 6
* Le script est bien mis sur le game_player (le 2e, par K.)
Par contre :
* Les collines sont toutes réglées sur X (infranchissable !)
J'essaie avec O (franchissable !) et je vous tiens au courant !
--- EDIT ---
Ca fonctionne pas même avec le O (franchissable !) !!!!
Posté par
RevengeOfShadow le
4 Sep - 18:32 (2010)UUUP ! (50 caractères :D Merci ...) J'ai rien à dire !
Posté par
Ku'rei le
5 Sep - 16:30 (2010)Perso j'ai un bug de la part de l'effet sonore : j'ai modifié dans la ligne
Code: |
move_command2.code = 44 # Effet sonore move_command2.parameters = ["Pokemove.WAV"] move_command3.code = 27 # Activer switch |
de façon a ce que ce soit mon fichier "jump.wav" qui soit joué.
mais ça me fait un bug :
EDIT : j'ai remarquer un autre bug, lorsque le mur est sur la droite ou la gauche, il ne se passe absolument.
merci de m'aider.
PS : ça marchait pas avec le fichier "Pokemove.WAV" bien sûr ^^
Posté par
RevengeOfShadow le
6 Sep - 17:30 (2010)Hmm tu es encore sur 0.7 ????
Sinon je pense que ton nom de fichier n'est pas exact, vérifie les majuscules et essaie .WAV en majuscules ou minuscules si les majuscules y sont déjà !
Et pour mon problème, une idée ?
Posté par
RevengeOfShadow le
8 Sep - 13:05 (2010)Re-UUUP !! Personne n'a la soluce ???? (50 Caractères)
Posté par
Leaf Sky le
16 Sep - 16:53 (2010)Euh le saut sans ombre c'est pour des jeux de fantômes non ?
Posté par
RevengeOfShadow le
25 Sep - 09:16 (2010)Arrête ton flood stp ! Sinon je UUUP encore une fois (pour changer ...). Merci d'avance mais j'ai plus d'espoir là :S.
Posté par
Swani le
26 Oct - 22:50 (2010)Le screen et mort ! :(
Posté par
RevengeOfShadow le
24 Nov - 11:03 (2010)Le script aussi je pense ...
Posté par
Chompy le
21 Déc - 12:22 (2010)Le script ne marche pas chez moi ... Aucun message d'erreur, le héros franchi tout simplement les tiles taggés 6
Une solution ?
Posté par
Nuri Yuri le
21 Déc - 13:54 (2010)Si tu bloquais le passage dans la direction par laquelle le héros ne doit pas passer ?
Posté par
quenti77 le
26 Déc - 22:03 (2010)Désolé de remonté le topic mais j'ai la même erreur que MadRob qui est le bug plus le saut que pour en bas mais pas pour la droite et la gauche