| Script de saut ( pour jeu de plateforme ) | |
|
Auteur | Message |
---|
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
| Sujet: Script de saut ( pour jeu de plateforme ) Jeu 11 Déc 2008 - 16:01 | |
| Bonjour,
Je recherche un script de saut pour les jeux de plateforme ( comme dans Mario Bros ). J'ai entendu dire qu'il y en avait un sur XP mais je ne l'ai pas trouvé. Mais vous pouvez toujours modifier celui qui est posté sur le forum.
Merci d'avance.
Akakin |
|
| |
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: Re: Script de saut ( pour jeu de plateforme ) Jeu 11 Déc 2008 - 16:16 | |
| Voici le script sous RPG Maker XP : - Code:
-
# ▼▲▼ XRXS50. Action-Maps XC. ▼▲▼ built 033010 # by 桜雅 在土
#====================================================== # □ カスタマイズポイント #====================================================== class XRXS50 # # Action-Maps を稼動させるマップIDの配列 # ENABLE_FULL_ACTY_MAPS = [1, 2 , 3 , 5 , 6 , 7 , 8 , 9 ,10 , 11 , 12 , 13] # # 「斜め降下」 # ENABLE_SLIDE_DESCENT = true # # 向きジャンプ(true : 向いている方向へジャンプ。 # false : キーが押されている方向へジャンプ。 # JUMP_AS_KEY = false end #====================================================== # ■ Game_Player #====================================================== class Game_Player < Game_Character #------------------------------------------------------ # ○ 公開インスタンス変数 #------------------------------------------------------ # 既存 attr_writer :direction_fix attr_accessor :walk_anime # 新規 attr_accessor :now_jumps attr_writer :xrxs50_direction_sidefix #------------------------------------------------------ # ○ 最大ジャンプ回数 #------------------------------------------------------ def max_jumps return 1 end #------------------------------------------------------ # ● 左を向く #------------------------------------------------------ alias xrxs50_turn_left turn_left def turn_left if @xrxs50_direction_sidefix @direction = 4 else xrxs50_turn_left end end #------------------------------------------------------ # ● 右を向く #------------------------------------------------------ alias xrxs50_turn_right turn_right def turn_right if @xrxs50_direction_sidefix @direction = 6 else xrxs50_turn_right end end end #====================================================== # ■ Scene_Map #====================================================== class Scene_Map #------------------------------------------------------ # ● メイン処理 #------------------------------------------------------ alias xrxs50_main main def main # チェック xrxs50_enable_check # 呼び戻す xrxs50_main end #------------------------------------------------------ # ● フレーム更新 #------------------------------------------------------ alias xrxs50_update update def update # 呼び戻す xrxs50_update # フレーム更新 (座標系更新 if @xrxs50_enable update_coordinates end end #------------------------------------------------------ # ○ フレーム更新 (座標系更新 #------------------------------------------------------ def update_coordinates if $game_player.passable?($game_player.x,$game_player.y,2) unless $game_player.moving? if XRXS50::ENABLE_SLIDE_DESCENT and Input.press?(Input::RIGHT) and $game_player.passable?($game_player.x,$game_player.y+1,6) $game_player.move_lower_right elsif XRXS50::ENABLE_SLIDE_DESCENT and Input.press?(Input::LEFT) and $game_player.passable?($game_player.x,$game_player.y+1,4) $game_player.move_lower_left else $game_player.move_down end end else $game_player.move_down $game_player.walk_anime = true unless $game_player.walk_anime $game_player.now_jumps = 0 if Input.trigger?(Input::X) and $game_player.now_jumps < $game_player.max_jumps if XRXS50::JUMP_AS_KEY direction = $game_player.direction == 4 ? -1 : 1 else if Input.press?(Input::RIGHT) direction = 1 elsif Input.press?(Input::LEFT) direction = -1 else direction = 0 end end $game_player.jump(direction, -2) $game_player.now_jumps += 1 $game_player.walk_anime = false end end end #------------------------------------------------------ # ● プレイヤーの場所移動 #------------------------------------------------------ alias xrxs50_transfer_player transfer_player def transfer_player # 呼び戻す xrxs50_transfer_player # チェック xrxs50_enable_check end #------------------------------------------------------ # ○ XRXS50 が稼動するか判定 #------------------------------------------------------ def xrxs50_enable_check if XRXS50::ENABLE_FULL_ACTY_MAPS.include?($game_map.map_id) $game_player.now_jumps = 0 if $game_player.now_jumps.nil? @xrxs50_enable = true $game_player.direction_fix = true $game_player.xrxs50_direction_sidefix = true else @xrxs50_enable = false $game_player.direction_fix = false $game_player.xrxs50_direction_sidefix = false end end end
|
|
| |
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
| Sujet: Re: Script de saut ( pour jeu de plateforme ) Jeu 11 Déc 2008 - 16:23 | |
| Merci, bien il n'y a plus qu'a le convertir maintenant. |
|
| |
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
| Sujet: Re: Script de saut ( pour jeu de plateforme ) Ven 12 Déc 2008 - 18:30 | |
| Un petit up. Je tiens a dire que le script servira pour un tutoriel que je suis en train de créer. Un tutoriel bien utile qui en ravira plus d'un ! |
|
| |
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
| Sujet: Re: Script de saut ( pour jeu de plateforme ) Lun 15 Déc 2008 - 15:48 | |
| Encore un up, l'urgence se ressent et s'empire ! |
|
| |
Invité
| Sujet: Re: Script de saut ( pour jeu de plateforme ) Lun 15 Déc 2008 - 17:40 | |
| Je ne comprend pas trop le "plateforme", n'est-il pas possible de le faire en event commun? Il me semble avoir bricoler un système sans le script sous RMXP, le seul hic, c'est que je n'ai plus mon ordinateur, et donc plus mes données --" |
|
| |
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
| Sujet: Re: Script de saut ( pour jeu de plateforme ) Lun 15 Déc 2008 - 20:36 | |
| |
|
| |
Voyageur Lv.10
Age : 42 Inscrit le : 04/12/2008 Messages : 383
| Sujet: Re: Script de saut ( pour jeu de plateforme ) Lun 15 Déc 2008 - 21:14 | |
| Voila, je l'ai adapté pour VX. - Code:
-
# ▼▲▼ XRXS50. Action-Maps XC. ▼▲▼ built 033010 # by 桜雅 在土
#====================================================== # □ カスタマイズポイント #====================================================== class XRXS50 # # Action-Maps を稼動させるマップIDの配列 # ENABLE_FULL_ACTY_MAPS = [1, 2 , 3 , 5 , 6 , 7 , 8 , 9 ,10 , 11 , 12 , 13] # # 「斜め降下」 # ENABLE_SLIDE_DESCENT = true # # 向きジャンプ(true : 向いている方向へジャンプ。 # false : キーが押されている方向へジャンプ。 # JUMP_AS_KEY = false end #====================================================== # ■ Game_Player #====================================================== class Game_Player < Game_Character #------------------------------------------------------ # ○ 公開インスタンス変数 #------------------------------------------------------ # 既存 attr_writer :direction_fix attr_accessor :walk_anime # 新規 attr_accessor :now_jumps attr_writer :xrxs50_direction_sidefix #------------------------------------------------------ # ○ 最大ジャンプ回数 #------------------------------------------------------ def max_jumps return 1 end #------------------------------------------------------ # ● 左を向く #------------------------------------------------------ alias xrxs50_turn_left turn_left def turn_left if @xrxs50_direction_sidefix @direction = 4 else xrxs50_turn_left end end #------------------------------------------------------ # ● 右を向く #------------------------------------------------------ alias xrxs50_turn_right turn_right def turn_right if @xrxs50_direction_sidefix @direction = 6 else xrxs50_turn_right end end end #====================================================== # ■ Scene_Map #====================================================== class Scene_Map #------------------------------------------------------ # ● メイン処理 #------------------------------------------------------ alias xrxs50_main main def main # チェック xrxs50_enable_check # 呼び戻す xrxs50_main end #------------------------------------------------------ # ● フレーム更新 #------------------------------------------------------ alias xrxs50_update update def update # 呼び戻す xrxs50_update # フレーム更新 (座標系更新 if @xrxs50_enable update_coordinates end end #------------------------------------------------------ # ○ フレーム更新 (座標系更新 #------------------------------------------------------ def update_coordinates # if $game_player.passable?($game_player.x,$game_player.y,2) if $game_player.passable?($game_player.x,$game_player.y+1) unless $game_player.moving? # if XRXS50::ENABLE_SLIDE_DESCENT and Input.press?(Input::RIGHT) and $game_player.passable?($game_player.x,$game_player.y+1,6) if XRXS50::ENABLE_SLIDE_DESCENT and Input.press?(Input::RIGHT) and $game_player.passable?($game_player.x+1,$game_player.y+1) $game_player.move_lower_right # elsif XRXS50::ENABLE_SLIDE_DESCENT and Input.press?(Input::LEFT) and $game_player.passable?($game_player.x,$game_player.y+1,4) elsif XRXS50::ENABLE_SLIDE_DESCENT and Input.press?(Input::LEFT) and $game_player.passable?($game_player.x-1,$game_player.y+1) $game_player.move_lower_left else $game_player.move_down end end else $game_player.move_down $game_player.walk_anime = true unless $game_player.walk_anime $game_player.now_jumps = 0 if Input.trigger?(Input::X) and $game_player.now_jumps < $game_player.max_jumps if XRXS50::JUMP_AS_KEY direction = $game_player.direction == 4 ? -1 : 1 else if Input.press?(Input::RIGHT) direction = 1 elsif Input.press?(Input::LEFT) direction = -1 else direction = 0 end end $game_player.jump(direction, -2) $game_player.now_jumps += 1 $game_player.walk_anime = false end end end #------------------------------------------------------ # ● プレイヤーの場所移動 #------------------------------------------------------ #alias xrxs50_transfer_player transfer_player alias xrxs50_transfer_player update_transfer_player def update_transfer_player #def transfer_player # 呼び戻す xrxs50_transfer_player # チェック xrxs50_enable_check end #------------------------------------------------------ # ○ XRXS50 が稼動するか判定 #------------------------------------------------------ def xrxs50_enable_check if XRXS50::ENABLE_FULL_ACTY_MAPS.include?($game_map.map_id) $game_player.now_jumps = 0 if $game_player.now_jumps.nil? @xrxs50_enable = true $game_player.direction_fix = true $game_player.xrxs50_direction_sidefix = true else @xrxs50_enable = false $game_player.direction_fix = false $game_player.xrxs50_direction_sidefix = false end end end
ASHKA |
|
| |
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
| Sujet: Re: Script de saut ( pour jeu de plateforme ) Lun 15 Déc 2008 - 21:25 | |
| zut devancé.... voila... ma version mais le résultat n'est pas très concluant: - Code:
-
#=================================== # Jeu de plateforme #--------------------------------------------------------------- # Sur la base XRXS50 #--------------------------------------------------------------- # Par Lordryk converti par berka #--------------------------------------------------------------- # Les trois premières constantes sont Modifiables. #=================================== class Plateforme ID_MAP_ACTIVE = [1, 2] # ID des maps où le mode jeu de plateforme Est activé DIAGONALES_EN_DESSENTE = true # Peut dessendre en diagonale HAUTEUR = 2 # Hauteur du saut en cases end #=================================== # Redéfinition de la classe Game_Player #=================================== class Game_Player < Game_Character # Ajout d'une variable inscriptible attr_writer :direction_fix # Direction fixe ? attr_writer :plateforme_direction_sidefix # Direction fixe lorsque le héro tombe ? # Ajout de deux accessoires attr_accessor :walk_anime # Position dans l'animation attr_accessor :now_jumps # En cour de saut ? #------------------------------------------------------------- # Renvoie du maximum de sauts #------------------------------------------------------------- def max_jumps;return 2;end #------------------------------------------------------------- # Redéfinition de la méthode dedéplacement # A gauche #------------------------------------------------------------- alias ancien_turn_left turn_left def turn_left # Si la direction est fixe @plateforme_direction_sidefix ? @direction = 4 : ancien_turn_left end #------------------------------------------------------------- # Redéfinition de la méthode dedéplacement # A droite #------------------------------------------------------------- alias ancien_turn_right turn_right def turn_right # Si la direction est fixe @plateforme_direction_sidefix ? @direction = 6 : ancien_turn_right end end #=================================== # Redéfinition de la classe Scene_Map #=================================== class Scene_Map #------------------------------------------------------------- # Redéfinition de la méthode maître #------------------------------------------------------------- alias ancien_main start def start # Vérifie que le mode plateforme est lancé plateforme_enable_check # Appel l'ancienne méthode ancien_main end #------------------------------------------------------------- # Reféfinition de la méthode de mise à jour #------------------------------------------------------------- alias ancien_update update def update # Appel l'ancienne méthode de mise à jour ancien_update # Met à jour les coordonées si le mode # Plateforme est actif update_coordinates if @plateforme_enable end #------------------------------------------------------------- # Méthode de mise à jour des coordonées #------------------------------------------------------------- def update_coordinates # Si le héro peut dessendre if $game_player.passable?($game_player.x,$game_player.y) # A moins que le joueur bouge unless $game_player.moving? if( # Si Plateforme::DIAGONALES_EN_DESSENTE and # La dessente en diagonale est active Input.press?(Input::RIGHT) and # Que la flèche droite est pressée $game_player.passable?($game_player.x,$game_player.y+1) # Que le héro peut se déplacer à droite ) # Alors # Mouvement bas droite $game_player.turn_right $game_player.move_lower_right elsif ( # Sinon, si Plateforme::DIAGONALES_EN_DESSENTE and # La dessente en diagonale est active Input.press?(Input::LEFT) and # Que la flèche gauche est pressée $game_player.passable?($game_player.x,$game_player.y+1) # Que le héro peut se déplacer à gauche ) # Alors # Mouvement bas gauche $game_player.turn_left $game_player.move_lower_left else # Sinon # Mouvement en bas $game_player.move_down end # Fin de condition end # Fin du a moins que else # Si le héros ne peut pas passer # Mouvement en bas $game_player.move_down # Animation activée à moins que ce ne sois fait $game_player.walk_anime = true unless $game_player.walk_anime # Saut actuel => aucun $game_player.now_jumps = 0 # Si la touche entrer est pressée et que le saut peut être produit if Input.trigger?(Input::C) and $game_player.now_jumps < $game_player.max_jumps if Input.press?(Input::RIGHT) # Direction => droite direction = Plateforme::HAUTEUR # Si la touche gauche est pressée elsif Input.press?(Input::LEFT) # Direction => gauche direction = -Plateforme::HAUTEUR # Sinon else # Pas de direction direction = 0 end # Saut $game_player.jump(direction, -Plateforme::HAUTEUR) # Sauts actuels auguementé de 1 $game_player.now_jumps += 1 # Animation désactivée $game_player.walk_anime = false end end end #------------------------------------------------------------- # Redéfinition de la méthode de téléportation #------------------------------------------------------------- alias ancien_transfer_player update_transfer_player def update_transfer_player # Appel l'ancienne méthode ancien_transfer_player # Vérifie que le mode plateforme est activé plateforme_enable_check end #------------------------------------------------------------- # Vérifie que le mode plateforme est activée #------------------------------------------------------------- def plateforme_enable_check # Si le mode plateforme est activée if Plateforme::ID_MAP_ACTIVE.include?($game_map.map_id) # Sauts actuels initiés si ce n'est pas fait $game_player.now_jumps = 0 if $game_player.now_jumps.nil? # Mode plateforme activé @plateforme_enable = true # Direction fixe activée $game_player.direction_fix = true # Direction vers le bas annulée $game_player.plateforme_direction_sidefix = true # Sinon else # Mode plateforme désactivé @plateforme_enable = false # Direction fixe désactivée $game_player.direction_fix = false # Direction vers le bas activée $game_player.plateforme_direction_sidefix = false end end end |
|
| |
dYeu retraité prématurément
Age : 29 Inscrit le : 09/02/2008 Messages : 5357
| Sujet: Re: Script de saut ( pour jeu de plateforme ) Lun 15 Déc 2008 - 21:58 | |
| akakin > Depuis quand on fait des up tous les jours :/ ?
ASHKA > Merci énormément (wah, première fois que je dit ça).
Berka > C'est chiant hein =/ ? Merci à toi aussi pour le geste =D ! |
|
| |
Corsaire Lv.19
Age : 30 Inscrit le : 20/08/2008 Messages : 2555
| Sujet: Re: Script de saut ( pour jeu de plateforme ) Mar 16 Déc 2008 - 8:00 | |
| Non, regarde les dates des up fabY, un par jour, un jeudi, un vendredi et un lundi.
Perso, je préfère prendre celui de berka, bien qu'ils soient les mêmes, il y a la traduc' sur celui de berka alors. Mais beau boulot a vous deux et merci beaucoup. |
|
| |
| Sujet: Re: Script de saut ( pour jeu de plateforme ) | |
| |
|
| |
| Script de saut ( pour jeu de plateforme ) | |
|