设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3108|回复: 4
打印 上一主题 下一主题

[已经过期] 【求助】怎样修改跳跃和加速按键?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
22 小时
注册时间
2012-6-3
帖子
40
跳转到指定楼层
1
发表于 2012-6-5 15:12:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #==============================================================================
  2. # ■ Game_Player
  3. #------------------------------------------------------------------------------
  4. #  处理主角的类。事件启动的判定、以及地图的滚动等功能。
  5. # 本类的实例请参考 $game_player。
  6. #==============================================================================

  7. class Game_Player < Game_Character
  8.   #--------------------------------------------------------------------------
  9.   # ● 常量
  10.   #--------------------------------------------------------------------------
  11.   CENTER_X = (320 - 16) * 4   # 画面中央的 X 坐标 * 4
  12.   CENTER_Y = (240 - 16) * 4   # 画面中央的 Y 坐标 * 4
  13.   #--------------------------------------------------------------------------
  14.   # ● 可以通行判定
  15.   #     x : X 坐标
  16.   #     y : Y 坐标
  17.   #     d : 方向 (0,2,4,6,8)  ※ 0 = 全方向不能通行的情况判定 (跳跃用)
  18.   #--------------------------------------------------------------------------
  19.   def passable?(x, y, d)
  20.     # 求得新的坐标
  21.     new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
  22.     new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
  23.     # 坐标在地图外的情况下
  24.     unless $game_map.valid?(new_x, new_y)
  25.       # 不能通行
  26.       return false
  27.     end
  28.     # 调试模式为 ON 并且 按下 CTRL 键的情况下
  29.     if $DEBUG and Input.press?(Input::CTRL)
  30.       # 可以通行
  31.       return true
  32.     end
  33.     super
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 以画面中央为基准设置地图的显示位置
  37.   #--------------------------------------------------------------------------
  38.   def center(x, y)
  39.     max_x = ($game_map.width - 20) * 128
  40.     max_y = ($game_map.height - 15) * 128
  41.     $game_map.display_x = [0, [x * 128 - CENTER_X, max_x].min].max
  42.     $game_map.display_y = [0, [y * 128 - CENTER_Y, max_y].min].max
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # ● 向指定的位置移动
  46.   #     x : X 坐标
  47.   #     y : Y 坐标
  48.   #--------------------------------------------------------------------------
  49.   def moveto(x, y)
  50.     super
  51.     # 自连接
  52.     center(x, y)
  53.     # 生成遇敌计数
  54.     make_encounter_count
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 增加步数
  58.   #--------------------------------------------------------------------------
  59.   def increase_steps
  60.     super
  61.     # 不是强制移动路线的场合
  62.     unless @move_route_forcing
  63.       # 增加步数
  64.       $game_party.increase_steps
  65.       # 步数是偶数的情况下
  66.       if $game_party.steps % 2 == 0
  67.         # 检查连续伤害
  68.         $game_party.check_map_slip_damage
  69.       end
  70.     end
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 获取遇敌计数
  74.   #--------------------------------------------------------------------------
  75.   def encounter_count
  76.     return @encounter_count
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # ● 生成遇敌计数
  80.   #--------------------------------------------------------------------------
  81.   def make_encounter_count
  82.     # 两种颜色震动的图像
  83.     if $game_map.map_id != 0
  84.       n = $game_map.encounter_step
  85.       @encounter_count = rand(n) + rand(n) + 1
  86.     end
  87.   end
  88.   #--------------------------------------------------------------------------
  89.   # ● 刷新
  90.   #--------------------------------------------------------------------------
  91.   def refresh
  92.     # 同伴人数为 0 的情况下
  93.     if $game_party.actors.size == 0
  94.       # 清除角色的文件名及对像
  95.       @character_name = ""
  96.       @character_hue = 0
  97.       # 分支结束
  98.       return
  99.     end
  100.     # 获取带头的角色
  101.     actor = $game_party.actors[0]
  102.     # 设置角色的文件名及对像
  103.     @character_name = actor.character_name
  104.     @character_hue = actor.character_hue
  105.     # 初始化不透明度和合成方式
  106.     @opacity = 255
  107.     @blend_type = 0
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 同位置的事件启动判定
  111.   #--------------------------------------------------------------------------
  112.   def check_event_trigger_here(triggers)
  113.     result = false
  114.     # 事件执行中的情况下
  115.     if $game_system.map_interpreter.running?
  116.       return result
  117.     end
  118.     # 全部事件的循环
  119.     for event in $game_map.events.values
  120.       # 事件坐标与目标一致的情况下
  121.       if event.x == @x and event.y == @y and triggers.include?(event.trigger)
  122.         # 跳跃中以外的情况下、启动判定是同位置的事件
  123.         if not event.jumping? and event.over_trigger?
  124.           event.start
  125.           result = true
  126.         end
  127.       end
  128.     end
  129.     return result
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● 正面事件的启动判定
  133.   #--------------------------------------------------------------------------
  134.   def check_event_trigger_there(triggers)
  135.     result = false
  136.     # 事件执行中的情况下
  137.     if $game_system.map_interpreter.running?
  138.       return result
  139.     end
  140.     # 计算正面坐标
  141.     new_x = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
  142.     new_y = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
  143.     # 全部事件的循环
  144.     for event in $game_map.events.values
  145.       # 事件坐标与目标一致的情况下
  146.       if event.x == new_x and event.y == new_y and
  147.          triggers.include?(event.trigger)
  148.         # 跳跃中以外的情况下、启动判定是正面的事件
  149.         if not event.jumping? and not event.over_trigger?
  150.           event.start
  151.           result = true
  152.         end
  153.       end
  154.     end
  155.     # 找不到符合条件的事件的情况下
  156.     if result == false
  157.       # 正面的元件是计数器的情况下
  158.       if $game_map.counter?(new_x, new_y)
  159.         # 计算 1 元件里侧的坐标
  160.         new_x += (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
  161.         new_y += (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
  162.         # 全事件的循环
  163.         for event in $game_map.events.values
  164.           # 事件坐标与目标一致的情况下
  165.           if event.x == new_x and event.y == new_y and
  166.              triggers.include?(event.trigger)
  167.             # 跳跃中以外的情况下、启动判定是正面的事件
  168.             if not event.jumping? and not event.over_trigger?
  169.               event.start
  170.               result = true
  171.             end
  172.           end
  173.         end
  174.       end
  175.     end
  176.     return result
  177.   end
  178.   #--------------------------------------------------------------------------
  179.   # ● 接触事件启动判定
  180.   #--------------------------------------------------------------------------
  181.   def check_event_trigger_touch(x, y)
  182.     result = false
  183.     # 事件执行中的情况下
  184.     if $game_system.map_interpreter.running?
  185.       return result
  186.     end
  187.     # 全事件的循环
  188.     for event in $game_map.events.values
  189.       # 事件坐标与目标一致的情况下
  190.       if event.x == x and event.y == y and [1,2].include?(event.trigger)
  191.         # 跳跃中以外的情况下、启动判定是正面的事件
  192.         if not event.jumping? and not event.over_trigger?
  193.           event.start
  194.           result = true
  195.         end
  196.       end
  197.     end
  198.     return result
  199.   end
  200.   #--------------------------------------------------------------------------
  201.   # ● 画面更新
  202.   #--------------------------------------------------------------------------
  203.   def update
  204.     # 本地变量记录移动信息
  205.     last_moving = moving?
  206.     # 移动中、事件执行中、强制移动路线中、
  207.     # 信息窗口一个也不显示的时候
  208.     unless moving? or $game_system.map_interpreter.running? or
  209.            @move_route_forcing or $game_temp.message_window_showing
  210.       # 如果方向键被按下、主角就朝那个方向移动
  211.       case Input.dir8
  212.       when 2
  213.         move_down
  214.         Audio.se_play ("Audio/SE/013-Move01", 60, 150)
  215.       when 4
  216.         move_left
  217.         Audio.se_play ("Audio/SE/013-Move01", 60, 150)
  218.       when 6
  219.         move_right
  220.         Audio.se_play ("Audio/SE/013-Move01", 60, 150)
  221.       when 8
  222.         move_up
  223.         Audio.se_play ("Audio/SE/013-Move01", 60, 150)
  224.       when 1
  225.         move_lower_left
  226.         Audio.se_play ("Audio/SE/013-Move01", 60, 150)
  227.       when 3
  228.         move_lower_right
  229.         Audio.se_play ("Audio/SE/013-Move01", 60, 150)
  230.       when 7  
  231.         move_upper_left
  232.         Audio.se_play ("Audio/SE/013-Move01", 60, 150)
  233.       when 9
  234.         move_upper_right
  235.         Audio.se_play ("Audio/SE/013-Move01", 60, 150)
  236.       end
  237.     end
  238.     # 本地变量记忆坐标
  239.     last_real_x = @real_x
  240.     last_real_y = @real_y
  241.     super
  242.     # 角色向下移动、画面上的位置在中央下方的情况下
  243.     if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
  244.       # 画面向下卷动
  245.       $game_map.scroll_down(@real_y - last_real_y)
  246.     end
  247.     # 角色向左移动、画面上的位置在中央左方的情况下
  248.     if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
  249.       # 画面向左卷动
  250.       $game_map.scroll_left(last_real_x - @real_x)
  251.     end
  252.     # 角色向右移动、画面上的位置在中央右方的情况下
  253.     if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
  254.       # 画面向右卷动
  255.       $game_map.scroll_right(@real_x - last_real_x)
  256.     end
  257.     # 角色向上移动、画面上的位置在中央上方的情况下
  258.     if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
  259.       # 画面向上卷动
  260.       $game_map.scroll_up(last_real_y - @real_y)
  261.     end
  262.     # 不在移动中的情况下
  263.     unless moving?
  264.       # 上次主角移动中的情况
  265.       if last_moving
  266.         # 与同位置的事件接触就判定为事件启动
  267.         result = check_event_trigger_here([1,2])
  268.         # 没有可以启动的事件的情况下
  269.         if result == false
  270.           # 调试模式为 ON 并且按下 CTRL 键的情况下除外
  271.           unless $DEBUG and Input.press?(Input::CTRL)
  272.             # 遇敌计数下降
  273.             if @encounter_count > 0
  274.               @encounter_count -= 1
  275.             end
  276.           end
  277.         end
  278.       end
  279.       # 按下 C 键的情况下
  280.       if Input.trigger?(Input::C)
  281.         # 判定为同位置以及正面的事件启动
  282.         check_event_trigger_here([0])
  283.         check_event_trigger_there([0,1,2])
  284.       end
  285. #============================================================================================
  286. # Advanced Jump Edit By: Title Loan Man
  287. #==============================================================================      
  288.    unless $game_system.map_interpreter.running?
  289.     if Input.press?(Input::RIGHT) and Input.press?(Input::A)
  290.       if passable?(@x, @y, 4) and $game_map.terrain_tag($game_player.x+1, $game_player.y) != 6
  291.       Audio.se_play ("Audio/SE/016-Jump02", 90, 100)
  292.       jump(3,0)
  293.     end
  294.   end
  295.     if Input.press?(Input::LEFT) and Input.press?(Input::A)
  296.       if passable?(@x, @y, 6) and $game_map.terrain_tag($game_player.x-1, $game_player.y) != 6
  297.       Audio.se_play ("Audio/SE/016-Jump02", 90, 100)     
  298.       jump(-3,0)   
  299.       end
  300.   end
  301.     if Input.press?(Input::DOWN) and Input.press?(Input::A)
  302.       if passable?(@x, @y, 8) and $game_map.terrain_tag($game_player.x, $game_player.y+1) != 6
  303.       Audio.se_play ("Audio/SE/016-Jump02", 90, 100)
  304.       jump(0,3)
  305.     end
  306.   end
  307.     if Input.press?(Input::UP) and Input.press?(Input::A)
  308.       if passable?(@x, @y, 2) and $game_map.terrain_tag($game_player.x, $game_player.y-1) != 6
  309.       Audio.se_play ("Audio/SE/016-Jump02", 90, 100)
  310.       jump(0,-3)
  311.     end
  312.   end
  313.     if Input.trigger?(Input::A)
  314.       Audio.se_play ("Audio/SE/016-Jump02", 90, 100)
  315.       jump(0,0)
  316.     end
  317.   end
  318. #============================================================================================
  319. # Advanced Jump Edit By: Title Loan Man
  320. #==============================================================================  

  321.      unless $game_system.map_interpreter.running?
  322.     if Input.press?(Input::RIGHT) and Input.press?(Input::A) and Input.press?(Input::C)
  323.       if passable?(@x, @y, 4)
  324.         if $game_map.terrain_tag($game_player.x+1, $game_player.y) != 6
  325.          if $game_map.terrain_tag($game_player.x+2, $game_player.y) != 6
  326.            if $game_map.terrain_tag($game_player.x+3, $game_player.y) != 6
  327.             if $game_map.terrain_tag($game_player.x+4, $game_player.y) != 6
  328.             Audio.se_play ("Audio/SE/016-Jump02", 90, 100)
  329.             jump(5,0)
  330.             end
  331.           end
  332.         end
  333.        end
  334.      end
  335.    end
  336.     if Input.press?(Input::LEFT) and Input.press?(Input::A) and Input.press?(Input::C)
  337.       if passable?(@x, @y, 6)
  338.         if $game_map.terrain_tag($game_player.x-1, $game_player.y) != 6
  339.          if $game_map.terrain_tag($game_player.x-2, $game_player.y) != 6
  340.            if $game_map.terrain_tag($game_player.x-3, $game_player.y) != 6
  341.             if $game_map.terrain_tag($game_player.x-4, $game_player.y) != 6         
  342.             Audio.se_play ("Audio/SE/016-Jump02", 90, 100)
  343.             jump(-5,0)
  344.             end
  345.           end
  346.         end
  347.        end
  348.      end
  349.    end
  350.     if Input.press?(Input::DOWN) and Input.press?(Input::A) and Input.press?(Input::C)
  351.       if passable?(@x, @y, 8)
  352.         if $game_map.terrain_tag($game_player.x, $game_player.y+1) != 6
  353.          if $game_map.terrain_tag($game_player.x, $game_player.y+2) != 6
  354.            if $game_map.terrain_tag($game_player.x, $game_player.y+3) != 6
  355.             if $game_map.terrain_tag($game_player.x, $game_player.y+4) != 6         
  356.             Audio.se_play ("Audio/SE/016-Jump02", 90, 100)
  357.             jump(0,5)
  358.             end
  359.           end
  360.         end
  361.        end
  362.      end
  363.    end
  364.     if Input.press?(Input::UP) and Input.press?(Input::A) and Input.press?(Input::C)
  365.       if passable?(@x, @y, 2)
  366.         if $game_map.terrain_tag($game_player.x, $game_player.y-1) != 6
  367.          if $game_map.terrain_tag($game_player.x, $game_player.y-2) != 6
  368.            if $game_map.terrain_tag($game_player.x, $game_player.y-3) != 6
  369.             if $game_map.terrain_tag($game_player.x, $game_player.y-4) != 6         
  370.             Audio.se_play ("Audio/SE/016-Jump02", 90, 100)
  371.             jump(0,-5)
  372.             end
  373.           end
  374.         end
  375.        end
  376.      end
  377.    end
  378.   end
  379.   

  380.         end
  381.        end
  382.      end
  383. #==============================================================================
  384. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  385. #==============================================================================


  386. # ▼▲▼ XRXS25. ダッシュ機能 ver.2 ▼▲▼
  387. # by 桜雅 在土 (基本、再改訂)
  388. #    Tetra-Z   (改訂原案)

  389. #==============================================================================
  390. # □ カスタマイズポイント
  391. #==============================================================================
  392. module XRXS_Dash
  393. #
  394. # 按下加速键之后的速度増加量
  395. #
  396. PLUSPEED = 1
  397. #
  398. # 行走加速的按键
  399. #
  400. BUTTON = Input::C
  401. end
  402. #==============================================================================
  403. # ■ Game_Player
  404. #==============================================================================
  405. class Game_Player < Game_Character
  406. #--------------------------------------------------------------------------
  407. # ● フレーム更新
  408. #--------------------------------------------------------------------------
  409. alias xrxs25_update update
  410. def update
  411.    # 例外補正
  412.    if @move_speed_arcadia == nil
  413.      @move_speed_arcadia = @move_speed
  414.    end
  415.    # 移動中、イベント実行中、移動ルート強制中、
  416.    # メッセージウィンドウ表示中、
  417.    # ダッシュボタン挿下中、のいずれでもない場合
  418.    unless moving? or $game_system.map_interpreter.running? or
  419.           @move_route_forcing or $game_temp.message_window_showing
  420.      # 速度の変更
  421.      if Input.press?(XRXS_Dash::BUTTON)
  422.        @move_speed = @move_speed_arcadia + XRXS_Dash::PLUSPEED
  423.      else
  424.        @move_speed = @move_speed_arcadia
  425.      end
  426.    end
  427.    # 呼び戻す
  428.    xrxs25_update
  429. end
  430. #--------------------------------------------------------------------------
  431. # ○ 移動タイプ : カスタム [オーバーライド]
  432. #--------------------------------------------------------------------------
  433. def move_type_custom
  434.    # 例外補正
  435.    if @move_speed_arcadia == nil
  436.      @move_speed_arcadia = @move_speed
  437.    end
  438.    # 標準速度に戻す
  439.    @move_speed = @move_speed_arcadia
  440.    # 呼び戻す
  441.    super
  442.    # 速度の保存
  443.    @move_speed_arcadia = @move_speed
  444. end
  445. end

  446. #==============================================================================
  447. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  448. #==============================================================================
  449. #==============================================================================
  450. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  451. #==============================================================================


  452. # ————————————————————————————————————

  453. # ▼▲▼ XRXS13. パーティ列車移動 ver.1.02 ▼▲▼
  454. # by fukuyama

  455. #
  456. # Train_Actor
  457. #
  458. # [email protected]
  459. # http://www4.big.or.jp/~fukuyama/rgss/Train_Actor.txt
  460. #

  461. module Train_Actor




  462. #是否使用停止跟随的方法,也就是说,这里false改为true的时候,如果TRANSPARENT_SWITCHES_INDEX
  463. #开关打开,跟随的人物就消失了(其实只是变成透明而已)
  464. TRANSPARENT_SWITCH = false
  465. TRANSPARENT_SWITCHES_INDEX = 20
  466. #举例:第一个为true,第二个为20,则打开20号开关,后面的人都没了。





  467. #跟随人数的最大数目,可以更改为2、3什么的。
  468. TRAIN_ACTOR_SIZE_MAX = 4





  469. # 定数
  470. #Input::DOWN = 2
  471. #Input::LEFT = 4
  472. #Input::RIGHT = 6
  473. #Input::UP = 6
  474. DOWN_LEFT = 1
  475. DOWN_RIGHT = 3
  476. UP_LEFT = 7
  477. UP_RIGHT = 9
  478. JUMP = 5

  479. class Game_Party_Actor < Game_Character
  480. def initialize
  481. super()
  482. @through = true
  483. end
  484. def setup(actor)
  485. # キャラクターのファイル名と色相を設定
  486. if actor != nil
  487. @character_name = actor.character_name
  488. @character_hue = actor.character_hue
  489. else
  490. @character_name = ""
  491. @character_hue = 0
  492. end
  493. # 不透明度と合成方法を初期化
  494. @opacity = 255
  495. @blend_type = 0
  496. end
  497. def screen_z(height = 0)
  498. if $game_player.x == @x and $game_player.y == @y
  499. return $game_player.screen_z(height) - 1
  500. end
  501. super(height)
  502. end
  503. #--------------------------------------------------------------------------
  504. # ● 下に移動
  505. # turn_enabled : その場での向き変更を許可するフラグ
  506. #--------------------------------------------------------------------------
  507. def move_down(turn_enabled = true)
  508. # 下を向く
  509. if turn_enabled
  510. turn_down
  511. end
  512. # 通行可能な場合
  513. if passable?(@x, @y, Input::DOWN)
  514. # 下を向く
  515. turn_down
  516. # 座標を更新
  517. @y += 1
  518. end
  519. end
  520. #--------------------------------------------------------------------------
  521. # ● 左に移動
  522. # turn_enabled : その場での向き変更を許可するフラグ
  523. #--------------------------------------------------------------------------
  524. def move_left(turn_enabled = true)
  525. # 左を向く
  526. if turn_enabled
  527. turn_left
  528. end
  529. # 通行可能な場合
  530. if passable?(@x, @y, Input::LEFT)
  531. # 左を向く
  532. turn_left
  533. # 座標を更新
  534. @x -= 1
  535. end
  536. end
  537. #--------------------------------------------------------------------------
  538. # ● 右に移動
  539. # turn_enabled : その場での向き変更を許可するフラグ
  540. #--------------------------------------------------------------------------
  541. def move_right(turn_enabled = true)
  542. # 右を向く
  543. if turn_enabled
  544. turn_right
  545. end
  546. # 通行可能な場合
  547. if passable?(@x, @y, Input::RIGHT)
  548. # 右を向く
  549. turn_right
  550. # 座標を更新
  551. @x += 1
  552. end
  553. end
  554. #--------------------------------------------------------------------------
  555. # ● 上に移動
  556. # turn_enabled : その場での向き変更を許可するフラグ
  557. #--------------------------------------------------------------------------
  558. def move_up(turn_enabled = true)
  559. # 上を向く
  560. if turn_enabled
  561. turn_up
  562. end
  563. # 通行可能な場合
  564. if passable?(@x, @y, Input::UP)
  565. # 上を向く
  566. turn_up
  567. # 座標を更新
  568. @y -= 1
  569. end
  570. end
  571. #--------------------------------------------------------------------------
  572. # ● 左下に移動
  573. #--------------------------------------------------------------------------
  574. def move_lower_left
  575. # 向き固定でない場合
  576. unless @direction_fix
  577. # 右向きだった場合は左を、上向きだった場合は下を向く
  578. @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction)
  579. end
  580. # 下→左、左→下 のどちらかのコースが通行可能な場合
  581. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
  582. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
  583. # 座標を更新
  584. @x -= 1
  585. @y += 1
  586. end
  587. end
  588. #--------------------------------------------------------------------------
  589. # ● 右下に移動
  590. #--------------------------------------------------------------------------
  591. def move_lower_right
  592. # 向き固定でない場合
  593. unless @direction_fix
  594. # 左向きだった場合は右を、上向きだった場合は下を向く
  595. @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction)
  596. end
  597. # 下→右、右→下 のどちらかのコースが通行可能な場合
  598. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
  599. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
  600. # 座標を更新
  601. @x += 1
  602. @y += 1
  603. end
  604. end
  605. #--------------------------------------------------------------------------
  606. # ● 左上に移動
  607. #--------------------------------------------------------------------------
  608. def move_upper_left
  609. # 向き固定でない場合
  610. unless @direction_fix
  611. # 右向きだった場合は左を、下向きだった場合は上を向く
  612. @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction)
  613. end
  614. # 上→左、左→上 のどちらかのコースが通行可能な場合
  615. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
  616. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
  617. # 座標を更新
  618. @x -= 1
  619. @y -= 1
  620. end
  621. end
  622. #--------------------------------------------------------------------------
  623. # ● 右上に移動
  624. #--------------------------------------------------------------------------
  625. def move_upper_right
  626. # 向き固定でない場合
  627. unless @direction_fix
  628. # 左向きだった場合は右を、下向きだった場合は上を向く
  629. @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction)
  630. end
  631. # 上→右、右→上 のどちらかのコースが通行可能な場合
  632. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
  633. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
  634. # 座標を更新
  635. @x += 1
  636. @y -= 1
  637. end
  638. end
  639. attr_writer :move_speed
  640. attr_writer :step_anime
  641. end
  642. module Spriteset_Map_Module
  643. def setup_actor_character_sprites?
  644. return @setup_actor_character_sprites_flag != nil
  645. end
  646. def setup_actor_character_sprites(characters)
  647. if !setup_actor_character_sprites?
  648. index_game_player = 0
  649. @character_sprites.each_index do |i|
  650. if @character_sprites[i].character.instance_of?(Game_Player)
  651. index_game_player = i
  652. break
  653. end
  654. end
  655. for character in characters.reverse
  656. @character_sprites.unshift(
  657. Sprite_Character.new(@viewport1, character)
  658. )
  659. end
  660. @setup_actor_character_sprites_flag = true
  661. end
  662. end
  663. end
  664. module Scene_Map_Module
  665. def setup_actor_character_sprites(characters)
  666. @spriteset.setup_actor_character_sprites(characters)
  667. end
  668. end
  669. module Game_Party_Module
  670. def set_transparent_actors(transparent)
  671. @transparent = transparent
  672. end
  673. def setup_actor_character_sprites
  674. if @characters == nil
  675. @characters = []
  676. for i in 1 ... TRAIN_ACTOR_SIZE_MAX
  677. @characters.push(Game_Party_Actor.new)
  678. end
  679. end
  680. for i in 1 ... TRAIN_ACTOR_SIZE_MAX
  681. @characters[i - 1].setup(actors[i])
  682. end
  683. if $scene.class.method_defined?('setup_actor_character_sprites')
  684. $scene.setup_actor_character_sprites(@characters)
  685. end
  686. end
  687. def update_party_actors
  688. setup_actor_character_sprites
  689. transparent = $game_player.transparent
  690. if transparent == false
  691. if TRANSPARENT_SWITCH
  692. transparent = $game_switches[TRANSPARENT_SWITCHES_INDEX]
  693. end
  694. end
  695. for character in @characters
  696. character.transparent = transparent
  697. character.move_speed = $game_player.move_speed
  698. character.step_anime = $game_player.step_anime
  699. character.update
  700. end
  701. end
  702. def moveto_party_actors( x, y )
  703. setup_actor_character_sprites
  704. for character in @characters
  705. character.moveto( x, y )
  706. end
  707. if @move_list == nil
  708. @move_list = []
  709. end
  710. move_list_setup
  711. end
  712. def move_party_actors
  713. if @move_list == nil
  714. @move_list = []
  715. move_list_setup
  716. end
  717. @move_list.each_index do |i|
  718. if @characters[i] != nil
  719. case @move_list[i].type
  720. when Input::DOWN
  721. @characters[i].move_down(@move_list[i].args[0])
  722. when Input::LEFT
  723. @characters[i].move_left(@move_list[i].args[0])
  724. when Input::RIGHT
  725. @characters[i].move_right(@move_list[i].args[0])
  726. when Input::UP
  727. @characters[i].move_up(@move_list[i].args[0])
  728. when DOWN_LEFT
  729. @characters[i].move_lower_left
  730. when DOWN_RIGHT
  731. @characters[i].move_lower_right
  732. when UP_LEFT
  733. @characters[i].move_upper_left
  734. when UP_RIGHT
  735. @characters[i].move_upper_right
  736. when JUMP
  737. @characters[i].jump(@move_list[i].args[0],@move_list[i].args[1])
  738. end
  739. end
  740. end
  741. end
  742. class Move_List_Element
  743. def initialize(type,args)
  744. @type = type
  745. @args = args
  746. end
  747. def type() return @type end
  748. def args() return @args end
  749. end
  750. def move_list_setup
  751. for i in 0 .. TRAIN_ACTOR_SIZE_MAX
  752. @move_list[i] = nil
  753. end
  754. end
  755. def add_move_list(type,*args)
  756. @move_list.unshift(Move_List_Element.new(type,args)).pop
  757. end
  758. def move_down_party_actors(turn_enabled = true)
  759. move_party_actors
  760. add_move_list(Input::DOWN,turn_enabled)
  761. end
  762. def move_left_party_actors(turn_enabled = true)
  763. move_party_actors
  764. add_move_list(Input::LEFT,turn_enabled)
  765. end
  766. def move_right_party_actors(turn_enabled = true)
  767. move_party_actors
  768. add_move_list(Input::RIGHT,turn_enabled)
  769. end
  770. def move_up_party_actors(turn_enabled = true)
  771. move_party_actors
  772. add_move_list(Input::UP,turn_enabled)
  773. end
  774. def move_lower_left_party_actors
  775. move_party_actors
  776. add_move_list(DOWN_LEFT)
  777. end
  778. def move_lower_right_party_actors
  779. move_party_actors
  780. add_move_list(DOWN_RIGHT)
  781. end
  782. def move_upper_left_party_actors
  783. move_party_actors
  784. add_move_list(UP_LEFT)
  785. end
  786. def move_upper_right_party_actors
  787. move_party_actors
  788. add_move_list(UP_RIGHT)
  789. end
  790. def jump_party_actors(x_plus, y_plus)
  791. move_party_actors
  792. add_move_list(JUMP,x_plus, y_plus)
  793. end
  794. end
  795. module Game_Player_Module
  796. def update
  797. $game_party.update_party_actors
  798. super
  799. end
  800. def moveto( x, y )
  801. $game_party.moveto_party_actors( x, y )
  802. super( x, y )
  803. end
  804. def move_down(turn_enabled = true)
  805. if passable?(@x, @y, Input::DOWN)
  806. $game_party.move_down_party_actors(turn_enabled)
  807. end
  808. super(turn_enabled)
  809. end
  810. def move_left(turn_enabled = true)
  811. if passable?(@x, @y, Input::LEFT)
  812. $game_party.move_left_party_actors(turn_enabled)
  813. end
  814. super(turn_enabled)
  815. end
  816. def move_right(turn_enabled = true)
  817. if passable?(@x, @y, Input::RIGHT)
  818. $game_party.move_right_party_actors(turn_enabled)
  819. end
  820. super(turn_enabled)
  821. end
  822. def move_up(turn_enabled = true)
  823. if passable?(@x, @y, Input::UP)
  824. $game_party.move_up_party_actors(turn_enabled)
  825. end
  826. super(turn_enabled)
  827. end
  828. def move_lower_left
  829. # 下→左、左→下 のどちらかのコースが通行可能な場合
  830. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
  831. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
  832. $game_party.move_lower_left_party_actors
  833. end
  834. super
  835. end
  836. def move_lower_right
  837. # 下→右、右→下 のどちらかのコースが通行可能な場合
  838. if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
  839. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
  840. $game_party.move_lower_right_party_actors
  841. end
  842. super
  843. end
  844. def move_upper_left
  845. # 上→左、左→上 のどちらかのコースが通行可能な場合
  846. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
  847. (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
  848. $game_party.move_upper_left_party_actors
  849. end
  850. super
  851. end
  852. def move_upper_right
  853. # 上→右、右→上 のどちらかのコースが通行可能な場合
  854. if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
  855. (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
  856. $game_party.move_upper_right_party_actors
  857. end
  858. super
  859. end
  860. def jump(x_plus, y_plus)
  861. # 新しい座標を計算
  862. new_x = @x + x_plus
  863. new_y = @y + y_plus
  864. # 加算値が (0,0) の場合か、ジャンプ先が通行可能な場合
  865. if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)
  866. $game_party.jump_party_actors(x_plus, y_plus)
  867. end
  868. super(x_plus, y_plus)
  869. end
  870. attr_reader :move_speed
  871. attr_reader :step_anime
  872. end
  873. end # module Train_Actor
  874. class Game_Party
  875. include Train_Actor::Game_Party_Module
  876. end
  877. class Game_Player
  878. include Train_Actor::Game_Player_Module
  879. end
  880. class Spriteset_Map
  881. include Train_Actor::Spriteset_Map_Module
  882. end
  883. class Scene_Map
  884. include Train_Actor::Scene_Map_Module
  885. end

  886. #==============================================================================
  887. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  888. #==============================================================================
复制代码
表示不管怎么改,始终都无效,要么出错要么无效···求方法把Z的跳跃改成C的跳跃,加速C搞成V加速

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
2
发表于 2012-6-6 19:16:56 | 只看该作者
加速的改法或許是在
404行
# 行走加速的按键
#
BUTTON = Input::C

但跳躍就比較複雜了 因為要改成C...也就之前加速的按鍵...可能許多部份要一並修改了@@
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

3
发表于 2012-6-7 09:17:04 | 只看该作者
sai90306 发表于 2012-6-6 19:16
加速的改法或許是在
404行
# 行走加速的按键

你的方法是无效的···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
90
在线时间
157 小时
注册时间
2011-8-24
帖子
101
4
发表于 2012-6-10 12:03:18 | 只看该作者
直接用公共事件啊!
http://tu.6.cn/pic/play-tu/id/0#14588517
http://tu.6.cn/pic/play-tu/id/0#14588518
然后在需要这个功能的地方把开关1打开就可以了,跳跃的那个同时按下键盘上的A键和→键就可以向右跳动了
然后按照我的那个跳跃的方法你自己应该可以做出上跳下跳左跳
嗷!!!
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
22 小时
注册时间
2012-6-3
帖子
40
5
 楼主| 发表于 2012-6-12 19:37:44 | 只看该作者
小眼kel熊猫 发表于 2012-6-10 12:03
直接用公共事件啊!
http://tu.6.cn/pic/play-tu/id/0#14588517
http://tu.6.cn/pic/play-tu/id/0#14588518 ...

我是说和我的转方向重复了,可是不管改什么都会失效···
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-24 11:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表