Project1

标题: 请教一下主角朝向只能左右 [打印本页]

作者: 咚小黑    时间: 2011-11-19 17:13
标题: 请教一下主角朝向只能左右
本帖最后由 咚小黑 于 2011-11-19 17:14 编辑

主角的只会朝向左右两个方向。
1. 步行图修改(失败)
2. 事件设置(失败)

求方法。不影响主角移动而朝向只能为左右dsu_plus_rewardpost_czw
作者: 玄蜀念    时间: 2011-11-19 17:57
设置通行方向?
作者: 空の翼    时间: 2011-11-19 18:06
不太理解:不影响主角移动而朝向只能为左右 这个。也就是说不能上下移动吗?还是说不轮按上下键都会向左右走吗?第一个可能需要修改脚本;第二个事件或许能解决(不知道LZ的要求是啥)
作者: BS包仔    时间: 2011-11-19 20:46
1.把行走图的上下改为左右
2.设置键位,不能按上下或将上下移位
3.主角行走图空白,然后设置一个事件为主角,然后纯事件操控

如有不明白回复或点评说明
作者: 皮卡星    时间: 2011-11-19 21:02
于是LS几位的回复真那啥= =
不是说了不行么= =
试试用这个脚本(原创):
  1. module Move
  2.   Move_Variabile = 36
  3. end
  4. class Game_Player < Game_Character
  5.   DR_UP = Input::UP
  6.   DR_DOWN = Input::DOWN
  7.   DR_LEFT = Input::LEFT
  8.   DR_RIGHT = Input::RIGHT
  9.   def move_by_input
  10.     return unless movable?
  11.     return if $game_map.interpreter.running?
  12.     if $game_variables[Move::Move_Variabile] == 1
  13.     elsif $game_variables[Move::Move_Variabile] == 2
  14.       if Input.press?(DR_LEFT)
  15.         move_left
  16.       elsif Input.press?(DR_RIGHT)
  17.         move_right
  18.       end
  19.     elsif $game_variables[Move::Move_Variabile] == 0
  20.       @move_speed = 4
  21.       @opacity = 255
  22.       @blend_type = 0
  23.       @direction_fix = false
  24.       @walk_anime = true
  25.       @step_anime = false
  26.       if Input.press?(DR_LEFT)
  27.         move_left
  28.       elsif Input.press?(DR_RIGHT)
  29.         move_right
  30.       elsif Input.press?(DR_DOWN)
  31.         move_down
  32.       elsif Input.press?(DR_UP)
  33.         move_up
  34.       end
  35.     else
  36.       @move_speed = 4
  37.       @opacity = 255
  38.       @blend_type = 0
  39.       @direction_fix = false
  40.       @walk_anime = true
  41.       @step_anime = false
  42.       if Input.press?(DR_LEFT)
  43.         move_left
  44.       elsif Input.press?(DR_RIGHT)
  45.         move_right
  46.       elsif Input.press?(DR_DOWN)
  47.         move_down
  48.       elsif Input.press?(DR_UP)
  49.         move_up
  50.       end
  51.     end
  52.   end
  53. end
复制代码
Module变量自行修改
变量=1的时候不能移动
变量=2的时候只能左右
变量=0或012这三个数字以外就是默认移动
作者: 飞天の小月、、    时间: 2011-11-19 21:17
请问一下,是不是冒险岛那样的?
作者: 诡异の猫    时间: 2011-11-20 00:53
本帖最后由 诡异の猫 于 2011-11-20 00:54 编辑

6楼的亲那脚本 当变量36等于2时直接没办法上下移动了呃...
LZ应该是想像FC热血物语那种吧...

最简单的方法就是把Game_Character类里面
第557行的turn_down和563行turn_down if turn_ok删掉
还有第608行的turn_up和第614行的turn_up if turn_ok删掉

如果只是想主角上下移动不转向 而 事件上下移动转向的话
就把这脚本插到main之前就行了
  1. class Game_Player < Game_Character
  2.   #--------------------------------------------------------------------------
  3.   # ● 向下移动
  4.   #     turn_ok : 允许当场转向
  5.   #--------------------------------------------------------------------------
  6.   def move_down(turn_ok = true)
  7.     if passable?(@x, @y+1)                  # 可通行的场合
  8.       @y = $game_map.round_y(@y+1)
  9.       @real_y = (@y-1)*256
  10.       increase_steps
  11.       @move_failed = false
  12.     else                                    # 不可通行的场合
  13.       check_event_trigger_touch(@x, @y+1)   # 是否触发接触事件
  14.       @move_failed = true
  15.     end
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● 向上移动
  19.   #     turn_ok : 允许当场转向
  20.   #--------------------------------------------------------------------------
  21.   def move_up(turn_ok = true)
  22.     if passable?(@x, @y-1)                  # 可通行的场合
  23.       @y = $game_map.round_y(@y-1)
  24.       @real_y = (@y+1)*256
  25.       increase_steps
  26.       @move_failed = false
  27.     else                                    # 不可通行的场合
  28.       check_event_trigger_touch(@x, @y-1)   # 是否触发接触事件
  29.       @move_failed = true
  30.     end
  31.   end
  32. end
复制代码
未经全面测试 不知是否存在BUG LZ试一下吧
作者: 咚小黑    时间: 2011-11-20 18:13
简单说:跟地下城一样




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1