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

Project1

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

[已经过期] 伪八方向脚本怎样配合八方向鼠标寻路

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
100 小时
注册时间
2010-7-30
帖子
232
跳转到指定楼层
1
发表于 2010-11-26 12:10:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ ダッシュ&8方向移動 - KGC_Dash_8DirMove ◆
  3. #_/    ◇ Last update : 2007/04/28 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  マップ移動時のダッシュ&8方向移動機能を追加します。
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  7. #==============================================================================
  8. # ★ カスタマイズ項目 ★
  9. #==============================================================================

  10. module KGC
  11.   # ◆ダッシュボタン
  12.   D8DM_DASH_BUTTON = Input::R
  13.   # ◆ダッシュ速度
  14.   D8DM_DASH_SPEED = 4
  15.   # ◆歩行速度
  16.   D8DM_WALK_SPEED = 4
  17. end

  18. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  19. $imported = {} if $imported == nil
  20. $imported["Dash_8DirMove"] = true

  21. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  22. module Dash
  23.   #--------------------------------------------------------------------------
  24.   # ● 一時ダッシュ速度指定
  25.   #--------------------------------------------------------------------------
  26.   def self.dash_speed=(value)
  27.     $game_system.temp_dash_speed = value
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 一時歩行速度指定
  31.   #--------------------------------------------------------------------------
  32.   def self.walk_speed=(value)
  33.     $game_system.temp_walk_speed = value
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 一時ダッシュ/歩行速度設定を解除
  37.   #--------------------------------------------------------------------------
  38.   def self.reset_speed
  39.     $game_system.temp_dash_speed = nil
  40.     $game_system.temp_walk_speed = nil
  41.   end
  42. end

  43. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  44. #==============================================================================
  45. # ■ Game_System
  46. #==============================================================================

  47. class Game_System
  48.   #--------------------------------------------------------------------------
  49.   # ● 公開インスタンス変数
  50.   #--------------------------------------------------------------------------
  51.   attr_accessor :dash_permit              # ダッシュ許可フラグ
  52.   attr_accessor :dir8_permit              # 8方向移動許可フラグ
  53.   attr_accessor :temp_dash_speed          # ダッシュ速度(一時)
  54.   attr_accessor :temp_walk_speed          # 歩行速度(一時)
  55.   #--------------------------------------------------------------------------
  56.   # ● オブジェクト初期化
  57.   #--------------------------------------------------------------------------
  58.   alias initialize_KGC_Dash_8DirMove initialize
  59.   def initialize
  60.     initialize_KGC_Dash_8DirMove

  61.     @dash_permit = true
  62.     @dir8_permit = true
  63.     @temp_dash_speed = nil
  64.     @temp_walk_speed = nil
  65.   end
  66. end

  67. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  68. #==============================================================================
  69. # ■ Game_Player
  70. #==============================================================================

  71. class Game_Player < Game_Character
  72.   #--------------------------------------------------------------------------
  73.   # ● フレーム更新
  74.   #--------------------------------------------------------------------------
  75.   def update
  76.     # ローカル変数に移動中かどうかを記憶
  77.     last_moving = moving?
  78.     # 移動中、イベント実行中、移動ルート強制中、
  79.     # メッセージウィンドウ表示中のいずれでもない場合
  80.     unless moving? or $game_system.map_interpreter.running? or
  81.            @move_route_forcing or $game_temp.message_window_showing
  82.       # 向きを保存
  83.       direction = @direction
  84.       # 方向ボタンが押されていれば、その方向へプレイヤーを移動
  85.       if $game_system.dir8_permit
  86.         case Input.dir8
  87.         when 1  # 左下
  88.           move_left
  89.           move_down
  90.           # 向き固定でない場合
  91.           unless @direction_fix
  92.             # 右向きだった場合は左を、上向きだった場合は下を向く
  93.             @direction = (direction == 6 ? 4 : direction == 8 ? 2 : direction)
  94.           end
  95.         when 2  # 下
  96.           move_down
  97.         when 3  # 右下
  98.           move_down
  99.           move_right
  100.           # 向き固定でない場合
  101.           unless @direction_fix
  102.             # 左向きだった場合は右を、上向きだった場合は下を向く
  103.             @direction = (direction == 4 ? 6 : direction == 8 ? 2 : direction)
  104.           end
  105.         when 4  # 左
  106.           move_left
  107.         when 6  # 右
  108.           move_right
  109.         when 7  # 左上
  110.           move_up
  111.           move_left
  112.           # 向き固定でない場合
  113.           unless @direction_fix
  114.             # 右向きだった場合は左を、下向きだった場合は上を向く
  115.             @direction = (direction == 6 ? 4 : direction == 2 ? 8 : direction)
  116.           end
  117.         when 8  # 上
  118.           move_up
  119.         when 9  # 右上
  120.           move_right
  121.           move_up
  122.           # 向き固定でない場合
  123.           unless @direction_fix
  124.             # 左向きだった場合は右を、下向きだった場合は上を向く
  125.             @direction = (direction == 4 ? 6 : direction == 2 ? 8 : direction)
  126.           end
  127.         end
  128.       else
  129.         case Input.dir4
  130.         when 2
  131.           move_down
  132.         when 4
  133.           move_left
  134.         when 6
  135.           move_right
  136.         when 8
  137.           move_up
  138.         end
  139.       end

  140.       # 歩行速度調整
  141.       if $game_system.dash_permit && Input.press?(KGC::D8DM_DASH_BUTTON)
  142.         if $game_system.temp_dash_speed == nil
  143.           @move_speed = KGC::D8DM_DASH_SPEED
  144.         else
  145.           @move_speed = $game_system.temp_dash_speed
  146.         end
  147.       else
  148.         if $game_system.temp_walk_speed == nil
  149.           @move_speed = KGC::D8DM_WALK_SPEED
  150.         else
  151.           @move_speed = $game_system.temp_walk_speed
  152.         end
  153.       end
  154.     end
  155.     # ローカル変数に座標を記憶
  156.     last_real_x = @real_x
  157.     last_real_y = @real_y
  158.     super
  159.     # キャラクターが下に移動し、かつ画面上の位置が中央より下の場合
  160.     if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
  161.       # マップを下にスクロール
  162.       $game_map.scroll_down(@real_y - last_real_y)
  163.     end
  164.     # キャラクターが左に移動し、かつ画面上の位置が中央より左の場合
  165.     if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
  166.       # マップを左にスクロール
  167.       $game_map.scroll_left(last_real_x - @real_x)
  168.     end
  169.     # キャラクターが右に移動し、かつ画面上の位置が中央より右の場合
  170.     if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
  171.       # マップを右にスクロール
  172.       $game_map.scroll_right(@real_x - last_real_x)
  173.     end
  174.     # キャラクターが上に移動し、かつ画面上の位置が中央より上の場合
  175.     if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
  176.       # マップを上にスクロール
  177.       $game_map.scroll_up(last_real_y - @real_y)
  178.     end
  179.     # 移動中ではない場合
  180.     unless moving?
  181.       # 前回プレイヤーが移動中だった場合
  182.       if last_moving
  183.         # 同位置のイベントとの接触によるイベント起動判定
  184.         result = check_event_trigger_here([1,2])
  185.         # 起動したイベントがない場合
  186.         if result == false
  187.           # デバッグモードが ON かつ CTRL キーが押されている場合を除き
  188.           unless $DEBUG and Input.press?(Input::CTRL)
  189.             # エンカウント カウントダウン
  190.             if @encounter_count > 0
  191.               @encounter_count -= 1
  192.             end
  193.           end
  194.         end
  195.       end
  196.       # C ボタンが押された場合
  197.       if Input.trigger?(Input::C)
  198.         # 同位置および正面のイベント起動判定
  199.         check_event_trigger_here([0])
  200.         check_event_trigger_there([0,1,2])
  201.       end
  202.     end
  203.   end
  204. end
复制代码
我用了伪八方向脚本,请问怎样配合八方向鼠标寻路脚本,还有,貌似连鼠标响应都用不了了,如何解决
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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