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

Project1

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

请教RMXP制作游戏中的演示操作问题。

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-4-4
帖子
42
跳转到指定楼层
1
发表于 2008-4-7 14:19:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
请问能不能将RMXP游戏演示中主角行走的四个方向键改为W、A、D、S这4个键? 因为很多人习惯用这4个键。
版务信息:本贴由楼主自主结贴~

Lv3.寻梦者

酱油的

梦石
0
星屑
1265
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

2
发表于 2008-4-7 15:23:27 | 只看该作者
按下F1可以修改……==

感覺上W,A,D,S是左优的鍵位……
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-4-4
帖子
42
3
 楼主| 发表于 2008-4-7 16:22:18 | 只看该作者
禾西老师,您能说得详细点吗?我按了F1,出现了三排竖着排列的字母,您看怎么改?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

史上最强粉丝

梦石
0
星屑
50
在线时间
9 小时
注册时间
2007-8-20
帖子
5574

贵宾

4
发表于 2008-4-7 16:34:20 | 只看该作者
……按键设置啊。
上面有中文的说,下改成S,上改成W,左是A,右是D…
然后要把L和R等改到其他地方防止按键过于集中。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-4-4
帖子
42
5
 楼主| 发表于 2008-4-7 23:37:18 | 只看该作者
光郎老师你好!是不是我的RMXP版本与你的不一样?我的F1点出来的属性有3页选项:常规、游戏手柄、键盘。
      常规里有: 平滑模式
                 播放BGM和ME
                 播放BGS和SE
  游戏手柄里有: 按键1 (选A...R)         按键6 (选A...R)
                 按键2 (选A...R)         按键7 (选A...R)
                 按键3 (选A...R)         按键8 (选A...R)
                 按键4 (选A...R)         按键9 (选A...R)
                 按键5 (选A...R)         按键10 (选A...R)
       键盘里有:Space (选A...R)    Z (选A...R)  A (选A...R)
                 Enter (选A...R)    X (选A...R)  S (选A...R)
                 Esc   (选A...R)    C (选A...R)  D (选A...R)
                 Num   (选A...R)    V (选A...R)  Q (选A...R)
                 Shift (选A...R)    B (选A...R)  W (选A...R)
      
              您看怎么选?我是新手,谢谢!希望您能有耐心。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-4-4
帖子
42
6
 楼主| 发表于 2008-4-8 01:10:13 | 只看该作者
高手和老师们!请帮我解决上面的问题,谢谢!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

茄孓

梦石
0
星屑
72
在线时间
140 小时
注册时间
2007-5-29
帖子
956
7
发表于 2008-4-8 01:40:23 | 只看该作者
给你贴上脚本!
把这脚本放到main前
即全键盘
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #============================================================================
  5. # ■ Keyboard Script
  6. #----------------------------------------------------------------------------
  7. #  By: Cybersam
  8. #   Date: 25/05/05
  9. #   Version 4
  10. #============================================================================
  11. # 66对此脚本使用方法的说明(可能不是很准确,反正大体能用):
  12. #
  13. # ★、Kboard.keyboard(键位)  返回是否按下这个键的判断。
  14. #     比如条件分歧:Kboard.keyboard($R_Key_H)
  15. #                   则当按下键盘H键的时候条件分歧成立
  16. #
  17. # ★、Kboard.keyb(键位) == 1 当连续按住某键返回真,否则为false
  18. #     比如条件分歧:Kboard.keyb($R_Key_U) == 1
  19. #                   则当持续按下键盘U的时候条件分歧成立
  20. #
  21. # ★、Kboard.key(键位,1) 似乎可以做开关用。按下一次变为true,再按变false
  22. #============================================================================

  23. module Kboard
  24.   #==========================================================================
  25.   # 以下是全键盘按键列表
  26.   #--------------------------------------------------------------------------
  27.   $Rmouse_BUTTON_L = 0x01        # left mouse button
  28.   $Rmouse_BUTTON_R = 0x02        # right mouse button
  29.   $Rmouse_BUTTON_M = 0x04        # middle mouse button
  30.   $Rmouse_BUTTON_4 = 0x05        # 4th mouse button
  31.   $Rmouse_BUTTON_5 = 0x06        # 5th mouse button
  32.   #--------------------------------------------------------------------------
  33.   $R_Key_BACK      = 0x08        # BACKSPACE key
  34.   $R_Key_TAB       = 0x09        # TAB key
  35.   $R_Key_RETURN    = 0x0D        # ENTER key
  36.   $R_Key_SHIFT     = 0x10        # SHIFT key
  37.   $R_Key_CTLR      = 0x11        # CTLR key
  38.   $R_Key_ALT       = 0x12        # ALT key
  39.   $R_Key_PAUSE     = 0x13        # PAUSE key
  40.   $R_Key_CAPITAL   = 0x14        # CAPS LOCK key
  41.   $R_Key_ESCAPE    = 0x1B        # ESC key
  42.   $R_Key_SPACE     = 0x20        # SPACEBAR
  43.   $R_Key_PRIOR     = 0x21        # PAGE UP key
  44.   $R_Key_NEXT      = 0x22        # PAGE DOWN key
  45.   $R_Key_END       = 0x23        # END key
  46.   $R_Key_HOME      = 0x24        # HOME key
  47.   $R_Key_LEFT      = 0x25        # LEFT ARROW key
  48.   $R_Key_UP        = 0x26        # UP ARROW key
  49.   $R_Key_RIGHT     = 0x27        # RIGHT ARROW key
  50.   $R_Key_DOWN      = 0x28        # DOWN ARROW key
  51.   $R_Key_SELECT    = 0x29        # SELECT key
  52.   $R_Key_PRINT     = 0x2A        # PRINT key
  53.   $R_Key_SNAPSHOT  = 0x2C        # PRINT SCREEN key
  54.   $R_Key_INSERT    = 0x2D        # INS key
  55.   $R_Key_DELETE    = 0x2E        # DEL key
  56.   #--------------------------------------------------------------------------
  57.   $R_Key_0         = 0x30        # 0 key
  58.   $R_Key_1         = 0x31        # 1 key
  59.   $R_Key_2         = 0x32        # 2 key
  60.   $R_Key_3         = 0x33        # 3 key
  61.   $R_Key_4         = 0x34        # 4 key
  62.   $R_Key_5         = 0x35        # 5 key
  63.   $R_Key_6         = 0x36        # 6 key
  64.   $R_Key_7         = 0x37        # 7 key
  65.   $R_Key_8         = 0x38        # 8 key
  66.   $R_Key_9         = 0x39        # 9 key
  67.   #--------------------------------------------------------------------------
  68.   $R_Key_A         = 0x41        # A key
  69.   $R_Key_B         = 0x42        # B key
  70.   $R_Key_C         = 0x43        # C key
  71.   $R_Key_D         = 0x44        # D key
  72.   $R_Key_E         = 0x45        # E key
  73.   $R_Key_F         = 0x46        # F key
  74.   $R_Key_G         = 0x47        # G key
  75.   $R_Key_H         = 0x48        # H key
  76.   $R_Key_I         = 0x49        # I key
  77.   $R_Key_J         = 0x4A        # J key
  78.   $R_Key_K         = 0x4B        # K key
  79.   $R_Key_L         = 0x4C        # L key
  80.   $R_Key_M         = 0x4D        # M key
  81.   $R_Key_N         = 0x4E        # N key
  82.   $R_Key_O         = 0x4F        # O key
  83.   $R_Key_P         = 0x50        # P key
  84.   $R_Key_Q         = 0x51        # Q key
  85.   $R_Key_R         = 0x52        # R key
  86.   $R_Key_S         = 0x53        # S key
  87.   $R_Key_T         = 0x54        # T key
  88.   $R_Key_U         = 0x55        # U key
  89.   $R_Key_V         = 0x56        # V key
  90.   $R_Key_W         = 0x57        # W key
  91.   $R_Key_X         = 0x58        # X key
  92.   $R_Key_Y         = 0x59        # Y key
  93.   $R_Key_Z         = 0x5A        # Z key
  94.   #--------------------------------------------------------------------------
  95.   $R_Key_LWIN      = 0x5B        # Left Windows key (Microsoft Natural keyboard)
  96.   $R_Key_RWIN      = 0x5C        # Right Windows key (Natural keyboard)
  97.   $R_Key_APPS      = 0x5D        # Applications key (Natural keyboard)
  98.   #--------------------------------------------------------------------------
  99.   $R_Key_NUMPAD0   = 0x60        # Numeric keypad 0 key
  100.   $R_Key_NUMPAD1   = 0x61        # Numeric keypad 1 key
  101.   $R_Key_NUMPAD2   = 0x62        # Numeric keypad 2 key
  102.   $R_Key_NUMPAD3   = 0x63        # Numeric keypad 3 key
  103.   $R_Key_NUMPAD4   = 0x64        # Numeric keypad 4 key
  104.   $R_Key_NUMPAD5   = 0x65        # Numeric keypad 5 key
  105.   $R_Key_NUMPAD6   = 0x66        # Numeric keypad 6 key
  106.   $R_Key_NUMPAD7   = 0x67        # Numeric keypad 7 key
  107.   $R_Key_NUMPAD8   = 0x68        # Numeric keypad 8 key
  108.   $R_Key_NUMPAD9  = 0x69        # Numeric keypad 9 key
  109.   $R_Key_MULTIPLY  = 0x6A        # Multiply key (*)
  110.   $R_Key_ADD       = 0x6B        # Add key (+)
  111.   $R_Key_SEPARATOR = 0x6C        # Separator key
  112.   $R_Key_SUBTRACT  = 0x6D        # Subtract key (-)
  113.   $R_Key_DECIMAL   = 0x6E        # Decimal key
  114.   $R_Key_DIVIDE    = 0x6F        # Divide key (/)
  115.   #--------------------------------------------------------------------------
  116.   $R_Key_F1        = 0x70        # F1 key
  117.   $R_Key_F2        = 0x71        # F2 key
  118.   $R_Key_F3        = 0x72        # F3 key
  119.   $R_Key_F4        = 0x73        # F4 key
  120.   $R_Key_F5        = 0x74        # F5 key
  121.   $R_Key_F6        = 0x75        # F6 key
  122.   $R_Key_F7        = 0x76        # F7 key
  123.   $R_Key_F8        = 0x77        # F8 key
  124.   $R_Key_F9        = 0x78        # F9 key
  125.   $R_Key_F10       = 0x79        # F10 key
  126.   $R_Key_F11       = 0x7A        # F11 key
  127.   $R_Key_F12       = 0x7B        # F12 key
  128.   #--------------------------------------------------------------------------
  129.   $R_Key_NUMLOCK   = 0x90        # NUM LOCK key
  130.   $R_Key_SCROLL    = 0x91        # SCROLL LOCK key
  131.   #--------------------------------------------------------------------------
  132.   $R_Key_LSHIFT    = 0xA0        # Left SHIFT key
  133.   $R_Key_RSHIFT    = 0xA1        # Right SHIFT key
  134.   $R_Key_LCONTROL  = 0xA2        # Left CONTROL key
  135.   $R_Key_RCONTROL  = 0xA3        # Right CONTROL key
  136.   $R_Key_L_ALT    = 0xA4        # Left ALT key
  137.   $R_Key_R_ALT    = 0xA5        # Right ALT key
  138.   #--------------------------------------------------------------------------
  139.   $R_Key_SEP      = 0xBC        # , key
  140.   $R_Key_DASH      = 0xBD        # - key
  141.   $R_Key_DOTT      = 0xBE        # . Key
  142.   #--------------------------------------------------------------------------
  143.   GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')
  144.   GetKeyboardState = Win32API.new("user32","GetKeyState",['I'],'I')
  145.   GetSetKeyState = Win32API.new("user32","SetKeyboardState",['I'],'I')
  146.   #--------------------------------------------------------------------------
  147.   module_function
  148.   #--------------------------------------------------------------------------
  149.   def keyb(rkey)
  150.      if GetKeyState.call(rkey) != 0
  151.        return 1
  152.      end
  153.      return 0
  154.   end
  155.    #--------------------------------------------------------------------------
  156.   def keyboard(rkey)
  157.     GetKeyState.call(rkey) & 0x01 == 1  #
  158.   end
  159.   #--------------------------------------------------------------------------
  160.   def key(rkey, key = 0)
  161.     GetKeyboardState.call(rkey) & 0x01 == key #
  162.   end
  163. end

  164. #==============================================================================
  165. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  166. #==============================================================================

  167. #1、Kboard.press?(key) 同 Input.press?(key)
  168. #2、Kboard.repeat?(key) 同 Input.repeat?(key)
  169. #3、Kboard.trigger?(key) 同 Input.trigger?(key) #$R_Key


  170. module Kboard

  171. module_function

  172. @R_Key_Hash = {}
  173. @R_Key_Repeat = {}

  174. GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')

  175. def press?(rkey)
  176.    return GetKeyState.call(rkey) != 0
  177. end

  178. def repeat?(rkey)
  179.    result = GetKeyState.call(rkey)
  180.    if result != 0
  181.      if @R_Key_Repeat[rkey].nil?
  182.        @R_Key_Repeat[rkey] = 0
  183.        return true
  184.      end
  185.      @R_Key_Repeat[rkey] += 1
  186.    else
  187.      @R_Key_Repeat[rkey] = nil
  188.      @R_Key_Hash[rkey] = 0
  189.    end
  190.    if !@R_Key_Repeat[rkey].nil? and @R_Key_Repeat[rkey] > 4 # 4乃准确数字
  191.      @R_Key_Repeat[rkey] = 0
  192.      return true
  193.    else
  194.      return false
  195.    end
  196. end

  197. def trigger?(rkey)
  198.    result = GetKeyState.call(rkey)
  199.    if @R_Key_Hash[rkey] == 1 and result != 0
  200.      return false
  201.    end
  202.    if result != 0
  203.      @R_Key_Hash[rkey] = 1
  204.      return true
  205.    else
  206.      @R_Key_Hash[rkey] = 0
  207.      return false
  208.    end
  209. end

  210. end



复制代码


然后 在Game_player里修改如下


  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.dir4
  212. ################################
  213.        if Kboard.trigger?($R_Key_S) or Kboard.press?($R_Key_S)
  214.         move_down
  215.         end
  216.        if Kboard.trigger?($R_Key_A) or Kboard.press?($R_Key_A)
  217.         move_left
  218.         end
  219.        if Kboard.trigger?($R_Key_D) or Kboard.press?($R_Key_D)
  220.         move_right
  221.         end
  222.        if Kboard.trigger?($R_Key_W) or Kboard.press?($R_Key_W)
  223.         move_up
  224.         end
  225.       end
  226. ##############################3
  227. #   end
  228.     # 本地变量记忆坐标
  229.     last_real_x = @real_x
  230.     last_real_y = @real_y
  231.     super
  232.     # 角色向下移动、画面上的位置在中央下方的情况下
  233.     if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
  234.       # 画面向下卷动
  235.       $game_map.scroll_down(@real_y - last_real_y)
  236.     end
  237.     # 角色向左移动、画面上的位置在中央左方的情况下
  238.     if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
  239.       # 画面向左卷动
  240.       $game_map.scroll_left(last_real_x - @real_x)
  241.     end
  242.     # 角色向右移动、画面上的位置在中央右方的情况下
  243.     if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
  244.       # 画面向右卷动
  245.       $game_map.scroll_right(@real_x - last_real_x)
  246.     end
  247.     # 角色向上移动、画面上的位置在中央上方的情况下
  248.     if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
  249.       # 画面向上卷动
  250.       $game_map.scroll_up(last_real_y - @real_y)
  251.     end
  252.     # 不在移动中的情况下
  253.     unless moving?
  254.       # 上次主角移动中的情况
  255.       if last_moving
  256.         # 与同位置的事件接触就判定为事件启动
  257.         result = check_event_trigger_here([1,2])
  258.         # 没有可以启动的事件的情况下
  259.         if result == false
  260.           # 调试模式为 ON 并且按下 CTRL 键的情况下除外
  261.           unless $DEBUG and Input.press?(Input::CTRL)
  262.             # 遇敌计数下降
  263.             if @encounter_count > 0
  264.               @encounter_count -= 1
  265.             end
  266.           end
  267.         end
  268.       end
  269.       # 按下 C 键的情况下
  270.       if Input.trigger?(Input::C)
  271.         # 判定为同位置以及正面的事件启动
  272.         check_event_trigger_here([0])
  273.         check_event_trigger_there([0,1,2])
  274.       end
  275.     end
  276.   end
  277. end
复制代码


这样以后好象就有8方向了


MS你重帖子了
回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8481
在线时间
94 小时
注册时间
2006-12-11
帖子
3156

第2届TG大赛亚军

8
发表于 2008-4-8 01:46:48 | 只看该作者
LZ请不要重复提问
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-22 18:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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