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

Project1

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

图文更新-很难的事件坐标判断[300分]

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-1-23
帖子
619
跳转到指定楼层
1
发表于 2009-4-5 08:00:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
2
发表于 2009-4-5 08:08:07 | 只看该作者
用事件的话比较复杂,如果用脚本写可能比较容易
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-1-23
帖子
619
3
 楼主| 发表于 2009-4-5 20:01:51 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3137
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

4
发表于 2009-4-5 20:17:07 | 只看该作者
帮你做了个集成,不过这上面只实现了1和2,3这个MS太麻烦
插入脚本
class Interpreter
  def something(id)
    $t = false
    event = $game_map.events[id]
    if event.y == $game_player.y
      if event.x < $game_player.x and $game_player.direction == 4
        $t = true
      elsif event.x > $game_player.x and $game_player.direction == 6
        $t = true
      end
    elsif event.x == $game_player.x
      if event.y < $game_player.y and $game_player.direction == 8
        $t = true  
      elsif event.y > $game_player.y and $game_player.direction == 2
        $t = true
      end
    end
    return $t
  end
end

事件的时候这样
条件分歧,脚本,『something(id)』
执行
分歧结束
不包括『』号,ID是事件ID
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-1-23
帖子
619
5
 楼主| 发表于 2009-4-5 20:28:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3137
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

6
发表于 2009-4-5 20:48:49 | 只看该作者
  1. class Interpreter
  2. def something(id)
  3.    $t = false
  4.    event = $game_map.events[id]
  5.    if event.y == $game_player.y
  6.      if event.x < $game_player.x and $game_player.direction == 4
  7.        $t = true
  8.      elsif event.x > $game_player.x and $game_player.direction == 6
  9.        $t = true
  10.      end
  11.    elsif event.x == $game_player.x
  12.      if event.y < $game_player.y and $game_player.direction == 8
  13.        $t = true  
  14.      elsif event.y > $game_player.y and $game_player.direction == 2
  15.        $t = true
  16.      end
  17.    end
  18.    
  19.    if event.x == $game_player.x
  20.      for i in [event.y,$game_player.y].min+2..[event.y,$game_player.y].max
  21.        $t = false if $game_player.passable?(event.x,i-1,2) == false
  22.      end
  23.    end
  24.    if event.y == $game_player.y
  25.      for i in [event.x,$game_player.x].min+2..[event.x,$game_player.x].max
  26.        $t = false if $game_player.passable?(i-1,event.y,6) == false
  27.      end
  28.    end
  29.    return $t
  30. end
  31. end
复制代码

应该是有Bug的……只不过我是没有耐心去调试了
以后再也不接这种逻辑任务了囧
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

7
发表于 2009-4-5 21:01:43 | 只看该作者
3不理解。
1、2的话应该可以吧。

1的话要以这个事件的坐标为判断,但又必须和2同时执行。
大概就是,首先代入主角的X1和Y1,代入事件的X2和Y2,如果X1=X2或Y1=Y2(应该不会重合吧,重合也一样啦……),那么再判断面向,若X1>X2,也就是说那个NPC在主角的坐标,再用条件分歧判断主角是否是朝左的。

依此类推。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-1-23
帖子
619
8
 楼主| 发表于 2009-4-5 21:11:04 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

9
发表于 2009-4-5 21:25:39 | 只看该作者
以下引用☆流星☆~~~于2009-4-5 13:11:04的发言:

。。。LS 的 LS,哎。- -,有BUG,要走到NPC跟前才嫩判断通过。

LS:
我说明详细好了:
1主角面向这个事件
2这个事件与主角在同1条线上(也就是X坐标1样,或Y坐标1样)
3主角与这个事件之间没有 不可穿头的图块  和 别的事件(润许穿透没打勾)。

3的详细说明:
这个事件 与 角色 在同1条线上了,且角色面向此事件,事件可以不面向。
从角色 到 事件 之间的连线 ,没有障碍物。障碍物指 不可穿透的图块
不可穿透的图块代表 墙 之类的东西。
也就是说,角色不仅面对事件,而且事件 在角色面向 前 部分,从事件到角色没有任何东西阻挡。

有兴趣的话可以一个一个坐标去试…… = =
附带事件脚本一个:
  1. 通行判定:
  2. $game_player.passable?(x,y,方向)
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
31 小时
注册时间
2008-3-25
帖子
138
10
发表于 2009-4-5 23:05:13 | 只看该作者
1和2自不必说了,
3这个情况不怕麻烦的话,用事件也可以的...
在每个地图导入时,率先更新N个变量,该组变量用来表征在每个地图块上的穿透性。
然后...对其进行判断...
疯狂了点,但若是地图不多,地图不大的话,行之有效。
爱老虎油....
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-16 13:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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