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

Project1

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

[已经过期] 想讓左右鍵的功能改成向左轉跟向右轉

[复制链接]

Lv1.梦旅人

梦石
0
星屑
1138
在线时间
28 小时
注册时间
2012-8-11
帖子
2
跳转到指定楼层
1
发表于 2013-1-12 12:38:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 hcm 于 2013-1-27 14:27 编辑

rm預設的左鍵是按下後向左走
               右鍵按下後向右走
今天我想把它改成按下左鍵後向左轉九十度
                             按下右鍵後向右轉九十度
所以我更改了預設腳本game_player的設定(從201行開始)
  1. #--------------------------------------------------------------------------
  2.   # ● 畫面更新
  3.   #--------------------------------------------------------------------------
  4.   def update
  5.     #轉向變數
  6.     a=0
  7.     # 本地變量記錄移動訊息
  8.     last_moving = moving?
  9.     # 移動中、事件執行中、強制移動路線中、
  10.     # 訊息視窗一個也不顯示的時候
  11.     unless moving? or $game_system.map_interpreter.running? or
  12.            @move_route_forcing or $game_temp.message_window_showing
  13.       # 如果方向鍵被按下、主角就朝那個方向移動
  14.       case Input.dir4
  15.       when 2
  16.         move_down
  17.       when 4 #按下左鍵轉向變數加一
  18.         a+=1
  19.         case a%4  #由轉向變數除以四的餘數判定轉向
  20.         when 0
  21.           turn_up        
  22.         when 1
  23.           turn_left
  24.         when 2
  25.           turn_down
  26.         when 3  
  27.           turn_right
  28.           end
  29.           when 6
  30.             a-=1
  31.            case a%4
  32.             when 0
  33.              turn_up        
  34.             when 1
  35.              turn_left
  36.             when 2
  37.              turn_down
  38.             when 3  
  39.              turn_right
  40.              end
  41.       when 8
  42.         move_up
  43.       end
  44.     end
复制代码
這樣改了之後沒反應=  =...
請問這樣寫有什麼問題嗎?
要怎麼樣改才能達到我想要的效果呢?{:2_270:}
請幫忙了

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

2
发表于 2013-1-12 13:37:48 | 只看该作者
  1. class Game_Player
  2.   #--------------------------------------------------------------------------
  3.   # ● 画面更新
  4.   #--------------------------------------------------------------------------
  5.   def update
  6.     # 本地变量记录移动信息
  7.     last_moving = moving?
  8.     # 移动中、事件执行中、强制移动路线中、
  9.     # 信息窗口一个也不显示的时候
  10.     unless moving? or $game_system.map_interpreter.running? or
  11.            @move_route_forcing or $game_temp.message_window_showing
  12.       # 如果方向键被按下、主角就朝那个方向移动
  13.       case Input.dir4
  14.       when 2
  15.         move_backward
  16.       when 4
  17.         turn_left_90
  18.       when 6
  19.         turn_right_90
  20.       when 8
  21.         move_forward
  22.       end
  23.     end
  24.     # 本地变量记忆坐标
  25.     last_real_x = @real_x
  26.     last_real_y = @real_y
  27.     super
  28.     # 角色向下移动、画面上的位置在中央下方的情况下
  29.     if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
  30.       # 画面向下卷动
  31.       $game_map.scroll_down(@real_y - last_real_y)
  32.     end
  33.     # 角色向左移动、画面上的位置在中央左方的情况下
  34.     if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
  35.       # 画面向左卷动
  36.       $game_map.scroll_left(last_real_x - @real_x)
  37.     end
  38.     # 角色向右移动、画面上的位置在中央右方的情况下
  39.     if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
  40.       # 画面向右卷动
  41.       $game_map.scroll_right(@real_x - last_real_x)
  42.     end
  43.     # 角色向上移动、画面上的位置在中央上方的情况下
  44.     if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
  45.       # 画面向上卷动
  46.       $game_map.scroll_up(last_real_y - @real_y)
  47.     end
  48.     # 不在移动中的情况下
  49.     unless moving?
  50.       # 上次主角移动中的情况
  51.       if last_moving
  52.         # 与同位置的事件接触就判定为事件启动
  53.         result = check_event_trigger_here([1,2])
  54.         # 没有可以启动的事件的情况下
  55.         if result == false
  56.           # 调试模式为 ON 并且按下 CTRL 键的情况下除外
  57.           unless $DEBUG and Input.press?(Input::CTRL)
  58.             # 遇敌计数下降
  59.             if @encounter_count > 0
  60.               @encounter_count -= 1
  61.             end
  62.           end
  63.         end
  64.       end
  65.       # 按下 C 键的情况下
  66.       if Input.trigger?(Input::C)
  67.         # 判定为同位置以及正面的事件启动
  68.         check_event_trigger_here([0])
  69.         check_event_trigger_there([0,1,2])
  70.       end
  71.     end
  72.   end
  73. end
复制代码
抛个砖~

点评

恩...可是這樣寫按一下會不只轉90度= =""  发表于 2013-1-12 15:31
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
3
发表于 2013-1-13 15:30:14 | 只看该作者
下面的脚本可以满足,但是操作手感不是很好。
  1. class Game_Player
  2.   #--------------------------------------------------------------------------
  3.   # ● 画面更新
  4.   #--------------------------------------------------------------------------
  5.   def update
  6.     # 本地变量记录移动信息
  7.     last_moving = moving?
  8.     # 移动中、事件执行中、强制移动路线中、
  9.     # 信息窗口一个也不显示的时候
  10.     unless moving? or $game_system.map_interpreter.running? or
  11.            @move_route_forcing or $game_temp.message_window_showing
  12.       # 如果方向键被按下、主角就朝那个方向移动
  13.       turn_left_90 if Input.trigger?(Input::LEFT)
  14.       turn_right_90 if Input.trigger?(Input::RIGHT )
  15.       case Input.dir4
  16.       when 2
  17.         move_backward
  18.       when 8
  19.         move_forward
  20.       end
  21.     end
  22.     # 本地变量记忆坐标
  23.     last_real_x = @real_x
  24.     last_real_y = @real_y
  25.     super
  26.     # 角色向下移动、画面上的位置在中央下方的情况下
  27.     if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
  28.       # 画面向下卷动
  29.       $game_map.scroll_down(@real_y - last_real_y)
  30.     end
  31.     # 角色向左移动、画面上的位置在中央左方的情况下
  32.     if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
  33.       # 画面向左卷动
  34.       $game_map.scroll_left(last_real_x - @real_x)
  35.     end
  36.     # 角色向右移动、画面上的位置在中央右方的情况下
  37.     if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
  38.       # 画面向右卷动
  39.       $game_map.scroll_right(@real_x - last_real_x)
  40.     end
  41.     # 角色向上移动、画面上的位置在中央上方的情况下
  42.     if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
  43.       # 画面向上卷动
  44.       $game_map.scroll_up(last_real_y - @real_y)
  45.     end
  46.     # 不在移动中的情况下
  47.     unless moving?
  48.       # 上次主角移动中的情况
  49.       if last_moving
  50.         # 与同位置的事件接触就判定为事件启动
  51.         result = check_event_trigger_here([1,2])
  52.         # 没有可以启动的事件的情况下
  53.         if result == false
  54.           # 调试模式为 ON 并且按下 CTRL 键的情况下除外
  55.           unless $DEBUG and Input.press?(Input::CTRL)
  56.             # 遇敌计数下降
  57.             if @encounter_count > 0
  58.               @encounter_count -= 1
  59.             end
  60.           end
  61.         end
  62.       end
  63.       # 按下 C 键的情况下
  64.       if Input.trigger?(Input::C)
  65.         # 判定为同位置以及正面的事件启动
  66.         check_event_trigger_here([0])
  67.         check_event_trigger_there([0,1,2])
  68.       end
  69.     end
  70.   end
  71. end
复制代码
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-8 02:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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