查看: 4812|回复: 13

[已经解决] ……用脚本判断某坐标是否可以通行……

[复制链接]

老黄鸡

梦石
4
星屑
45700
在线时间
7948 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2010-9-15 07:10:36 | 显示全部楼层 |阅读模式

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

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

×
想了一晚上也没想出来,只能来问问了……{:4_83:}

酱油的

梦石
0
星屑
1840
在线时间
2161 小时
注册时间
2007-12-22
回帖
3216

贵宾

发表于 2010-9-15 10:19:12 | 显示全部楼层
Game_Character#passable?(x, y, direction)
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45700
在线时间
7948 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

 楼主| 发表于 2010-9-15 11:21:59 | 显示全部楼层
回复 禾西 的帖子

我现在就是用的这个,但不知道出什么问题了
x,y,指的是不可通行的块的坐标还是指主角坐标?顺便问方向是不是和小键盘对应的
7  8  9
4  人6
1  2  3

   
回复

使用道具 举报

梦石
0
星屑
7095
在线时间
1666 小时
注册时间
2008-10-29
回帖
6612

贵宾

发表于 2010-9-15 11:29:40 | 显示全部楼层
Game_Map 也有一个 通行的判定

x,y 是 目标坐标

方向就是小键盘的那样.数据库->图块 里的每个元件都有一个可通行方向的设定.











你知道得太多了

回复

使用道具 举报

老黄鸡

梦石
4
星屑
45700
在线时间
7948 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

 楼主| 发表于 2010-9-15 11:39:08 | 显示全部楼层
回复 后知后觉 的帖子

那请问我这里要是想事件撞到墙就回头该怎么写?
  1. class Interpreter

  2. def gmove
  3.   for ev in $game_map.events.values
  4.     case ev.name
  5.     when /绿乌龟/
  6.       if ev.name == "绿乌龟左"
  7.         unless $game_map.passable?(ev.x-1 ,ev.y,4)
  8.           ev.name = "绿乌龟右"
  9.         else
  10.           ev.move_left
  11.         end
  12.       else
  13.         unless $game_map.passable?(ev.x+1, ev.y ,6)
  14.           ev.name = "绿乌龟左"
  15.         else
  16.           ev.move_right
  17.         end
  18.       end

  19.     end
  20.    
  21.    
  22.     end
  23.   end
  24. end
复制代码
回复

使用道具 举报

酱油的

梦石
0
星屑
1840
在线时间
2161 小时
注册时间
2007-12-22
回帖
3216

贵宾

发表于 2010-9-15 11:56:11 | 显示全部楼层
我想是因為name在 events[ x ].event.name 中……你讀event[ x ].name讀不到
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45700
在线时间
7948 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

 楼主| 发表于 2010-9-15 12:01:59 | 显示全部楼层
回复 禾西 的帖子


    这个我重新定义过了,我想知道怎么判断前方无法通过,朝反方向走。
回复

使用道具 举报

酱油的

梦石
0
星屑
1840
在线时间
2161 小时
注册时间
2007-12-22
回帖
3216

贵宾

发表于 2010-9-15 12:23:57 | 显示全部楼层
  1. class Interpreter

  2. def gmove
  3.   for ev in $game_map.events.values
  4.     case ev.name
  5.     when "绿乌龟"
  6.       if ev.name == "绿乌龟左"
  7.         if $game_map.passable?(ev.x-1 ,ev.y,4)
  8.           ev.move_left
  9.         else
  10.           ev.move_right
  11.           ev.name = "绿乌龟右"
  12.         end
  13.       else
  14.         if $game_map.passable?(ev.x+1 ,ev.y,6)
  15.           ev.move_right
  16.         else
  17.           ev.move_left
  18.           ev.name = "绿乌龟左"
  19.         end
  20.       end

  21.     end
  22.    
  23.    
  24.     end
  25.   end
  26. end
复制代码
估計……
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45700
在线时间
7948 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

 楼主| 发表于 2010-9-15 12:29:40 | 显示全部楼层
回复 禾西 的帖子

还是出现乌龟左右转头漂移的现象
    就是不停的转变左右方向
回复

使用道具 举报

酱油的

梦石
0
星屑
1840
在线时间
2161 小时
注册时间
2007-12-22
回帖
3216

贵宾

发表于 2010-9-15 13:09:55 | 显示全部楼层
無法理解,求范例,求截圖
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部