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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 诡异の猫
打印 上一主题 下一主题

VX地图循环相关BUG 及 解决方法

 关闭 [复制链接]

Lv1.梦旅人

SB們大家好<

梦石
0
星屑
50
在线时间
3 小时
注册时间
2008-1-7
帖子
457
11
发表于 2008-2-11 06:39:42 | 只看该作者
见顶楼吧~

匆忙修改了一下 修复朝向和触发问题
还有BUG的话只能明天看了,睡觉去~


顺便,楼主不去EB工作真是太可惜了。。{/hx}
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
这不是6R,我对自己说。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-11
帖子
13
12
发表于 2008-2-11 06:45:12 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2006-2-25
帖子
1863
13
 楼主| 发表于 2008-2-11 07:00:15 | 只看该作者
以下引用趙雲于2008-2-10 22:39:42的发言:
匆忙修改了一下 修复朝向和触发问题
还有BUG的话只能明天看了,睡觉去~


顺便,楼主不去EB工作真是太可惜了。。


[本贴由作者于 2008-2-10 22:41:06 最后编辑]

我还正准备写呢- -
被你抢先了- -
那个..赵云大哥你太粗心了 Game_Character 你写成 Game_Map了...{/hx}

对你的话无语...
讽刺我嘛- -{/gg}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

SB們大家好<

梦石
0
星屑
50
在线时间
3 小时
注册时间
2008-1-7
帖子
457
14
发表于 2008-2-11 18:07:51 | 只看该作者
以下引用诡异の猫于2008-2-10 23:00:15的发言:
我还正准备写呢- -
被你抢先了- -
那个..赵云大哥你太粗心了 Game_Character 你写成 Game_Map了...

对你的话无语...
讽刺我嘛- -



可能昨天太匆忙了…

那剩下一个问题你自己解决好了,偶还没完全理解你的意思。

我最后那句话是充满诚意的,绝对没有讽刺的意思{/hx}
这不是6R,我对自己说。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2006-2-25
帖子
1863
15
 楼主| 发表于 2008-2-11 19:40:53 | 只看该作者
以下引用趙雲于2008-2-11 10:07:51的发言:
可能昨天太匆忙了…

那剩下一个问题你自己解决好了,偶还没完全理解你的意思。

我最后那句话是充满诚意的,绝对没有讽刺的意思

那个..我要写作业- -
没心情去弄脚本了- -
有空你就顺便修复下好了..{/hx}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

SB們大家好<

梦石
0
星屑
50
在线时间
3 小时
注册时间
2008-1-7
帖子
457
16
发表于 2008-2-12 02:05:41 | 只看该作者
  1. class Game_Character
  2.   #--------------------------------------------------------------------------
  3.   # ● 接近玩家
  4.   #--------------------------------------------------------------------------
  5.   def move_toward_player
  6.     sx = distance_x_from_player
  7.     sy = distance_y_from_player

  8.     sx += $game_map.width * 2 if $game_map.loop_horizontal? and sx < - $game_map.width  and sx > - $game_map.width * 2
  9.     sy += $game_map.height * 2 if $game_map.loop_vertical? and sy < - $game_map.height  and sy > - $game_map.height * 2

  10.     if sx != 0 or sy != 0
  11.       if sx.abs > sy.abs                  # 如果横向距离长
  12.         sx > 0 ? move_left : move_right   # 左右方向优先
  13.         if @move_failed and sy != 0
  14.           sy > 0 ? move_up : move_down
  15.         end
  16.       else                                # 如果纵向距离等长
  17.         sy > 0 ? move_up : move_down      # 上下方向优先
  18.         if @move_failed and sx != 0
  19.           sx > 0 ? move_left : move_right
  20.         end
  21.       end
  22.     end
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 远离玩家
  26.   #--------------------------------------------------------------------------
  27.   def move_away_from_player
  28.     sx = distance_x_from_player
  29.     sy = distance_y_from_player
  30.     sx += $game_map.width * 2 if $game_map.loop_horizontal? and sx < - $game_map.width  and sx > - $game_map.width * 2
  31.     sy += $game_map.height * 2 if $game_map.loop_vertical? and sy < - $game_map.height  and sy > - $game_map.height * 2     
  32.     if sx != 0 or sy != 0
  33.       if sx.abs > sy.abs                  # 如果横向距离长
  34.         sx > 0 ? move_right : move_left   # 左右方向优先
  35.         if @move_failed and sy != 0
  36.           sy > 0 ? move_down : move_up
  37.         end
  38.       else                                # 如果纵向距离等长
  39.         sy > 0 ? move_down : move_up      # 上下方向优先
  40.         if @move_failed and sx != 0
  41.           sx > 0 ? move_right : move_left
  42.         end
  43.       end
  44.     end
  45.   end
  46.   
  47.   #--------------------------------------------------------------------------
  48.   # ● 计算与玩家的 X 距离
  49.   #--------------------------------------------------------------------------
  50.   def distance_x_from_player
  51.     sx = @x - $game_player.x
  52.     if $game_map.loop_horizontal?         # 是否横向循环
  53.       if sx == 1 - $game_map.width
  54.         sx += $game_map.width  
  55.       elsif sx.abs > $game_map.width / 2     # 绝对值是否大于地图的一半?
  56.         sx -= $game_map.width             # 引用地图的宽度
  57.       end
  58.     end
  59.     return sx
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 计算与玩家的 Y 距离
  63.   #--------------------------------------------------------------------------
  64.   def distance_y_from_player
  65.     sy = @y - $game_player.y
  66.     if $game_map.loop_vertical?           # 是否纵向循环
  67.       if sy == 1 - $game_map.height
  68.         sy += $game_map.height     
  69.       elsif sy.abs > $game_map.height / 2    # 绝对值是否大于地图的一半?
  70.         sy -= $game_map.height            # 引用地图的高度
  71.       end
  72.     end
  73.     return sy
  74.   end
  75. end
  76. class Game_Event
  77.   #--------------------------------------------------------------------------
  78.   # ● 判断接触事件启动
  79.   #--------------------------------------------------------------------------
  80.   def check_event_trigger_touch(x, y)
  81.     return if $game_map.interpreter.running?
  82.     x +=  $game_map.width if $game_map.loop_horizontal? and x < 0
  83.     y +=  $game_map.height if $game_map.loop_vertical? and y < 0   
  84.     if @trigger == 2 and $game_player.pos?(x, y)
  85.       start if not jumping? and @priority_type == 1
  86.     end
  87.   end

  88. end


  89. class Game_Player
  90.     def check_event_trigger_touch(x, y)
  91.     x -=  $game_map.width if $game_map.loop_horizontal? and x == $game_map.width
  92.     y -=  $game_map.height if $game_map.loop_vertical? and y == $game_map.height
  93.     return false if $game_map.interpreter.running?
  94.     result = false
  95.     for event in $game_map.events_xy(x, y)
  96.       if [1,2].include?(event.trigger) and event.priority_type == 1
  97.         event.start
  98.         result = true
  99.       end
  100.     end
  101.     return result
  102.   end
  103. end
复制代码


3bugKO版,猫拿去测试吧。
这不是6R,我对自己说。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2006-2-25
帖子
1863
17
 楼主| 发表于 2008-2-12 05:54:09 | 只看该作者
3bugKO版,猫拿去测试吧。

最后那个问题仍然存在.
就是人物站在老头左下方那鬼不会往左走去碰角色(除了偶尔碰巧)
我改了好多次还是解决不了- -
不知道问题出再哪里.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

SB們大家好<

梦石
0
星屑
50
在线时间
3 小时
注册时间
2008-1-7
帖子
457
18
发表于 2008-2-12 16:43:05 | 只看该作者
我测试的时候怎么都正常了{/fd}
鬼每次都会向主角的方向移动的。
对了,接近并不完全是靠近主角,有一定几率随机和向前一步的,猫再测试一下看看。
这不是6R,我对自己说。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-22 21:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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