Jeu de plate forme

Publié le par Cid6

Ce script permet de faire un style de jeu de plate forme, mais je trouve personnellement que le system de saut et de gravité n’est pas très bien fait. Essayez le quand même, juste pour voir ce que vous serez capable de faire.


 

Ouvrez l’éditeur de script et mettez un nouveau script au dessus de Main que vous nommerez tous simplement « plateforme »

 

Voici ce que vous mettrez dedans :


# ▼▲▼ XRXS50. Action-Maps XC. ▼▲▼ built 033010
# by
桜雅 在土

#==============================================================================
# □
カスタマイズポイント
#==============================================================================
class XRXS50
 #
 # Action-Maps
を稼動させるマップIDの配列
 #
 ENABLE_FULL_ACTY_MAPS = [1, 2]
 #
 #
「斜め降下」
 #
 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

 

Publicité

Publié dans Scripts RPG Makers XP

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article