Project1

标题: 如何判断图片与角色的行走图发生了重叠? [打印本页]

作者: li807609447    时间: 2009-10-19 22:31
标题: 如何判断图片与角色的行走图发生了重叠?
本帖最后由 li807609447 于 2009-10-20 12:58 编辑


如图如何判断那个椭圆形图片与
角色的行走图发生了重叠??
(用脚本)
作者: gogo2005    时间: 2009-10-19 23:55
没太明白你的意思
你是要重叠之后发生什么事吗?
如果是的话.可以用事件来判断
在那个圆上建事件,选上"与事件接触",执行内容看你想要做什么.
作者: li807609447    时间: 2009-10-20 12:57
自顶
作者: li807609447    时间: 2009-10-20 18:05
无满意答案
自顶
作者: kale    时间: 2009-10-20 18:17
在那个图片 中间 加个事件  与主角接触  这样不就好了?
作者: 奶油Da蛋糕    时间: 2009-10-20 18:23
这个是显示图片显示上去的?
貌似这样判定椭圆有点难,判定方形可能会好点。
作者: li807609447    时间: 2009-10-20 18:35
那就说说判断方形的吧。
作者: li807609447    时间: 2009-10-20 22:06
大家幫幫我
作者: hitlerson    时间: 2009-10-21 10:00
本帖最后由 hitlerson 于 2009-10-21 10:19 编辑

你的图是方的吧

椭圆 a(x*x)+b(y*y)=1
求最大最小X1,X2,Y1,Y2,人物矩形不在(X1,Y1)...(X2,Y2)时不重叠
在上述区间时,代入X值求解方程,得Y3,Y4,人物矩形不在(Y3,Y4)时不重叠
作者: hide秀    时间: 2009-10-21 12:47
如果你那个椭圆是事件的话即(Game_Event)
而Game_Event 是类 Game_Character 继承而来
所有都具有属性 x,y
那么椭圆对象的坐标与角色的坐标相等就行了
脚本写法是(event对象为椭圆那个事件)
event.x == $game_player.x and event.y == $game_player.y
作者: li807609447    时间: 2009-10-21 12:55
本帖最后由 li807609447 于 2009-10-21 18:42 编辑
你的图是方的吧

椭圆 a(x*x)+b(y*y)=1
求最大最小X1,X2,Y1,Y2,人物矩形不在(X1,Y1)...(X2,Y2)时不重叠
在上述区间时,代入X值求解方程,得Y3,Y4,人物矩形不在(Y3,Y4)时不重叠 ...
hitlerson 发表于 2009-10-21 10:00

  
我有点看不懂:funk
帮帮我
作者: li807609447    时间: 2009-10-21 18:43
自顶一下
作者: WildDagger    时间: 2009-10-23 20:16
11# li807609447
這個就關係到橢圓公式了

a(x*x)+b(y*y)=1

這個是正橢圓的公式
(也就是說,這個橢圓是直的或者是橫的而不是斜的)

a=X軸那一邊的軸的一半長度
b=Y軸那一邊的軸的一半長度
x=代入x值與中心點x值的差
y=代入y值與中心點y值的差

如果前面的a(x*x)+b(y*y)=1,即代表這個點在橢圓上
如果前面的a(x*x)+b(y*y)>1,即代表這個點在橢圓外
如果前面的a(x*x)+b(y*y)<1,即代表這個點在橢圓內

所以以樓主的例子代入的話

a、b就代入橢圓兩軸的一半長度
x=角色X座標-圖片X座標
y=角色Y座標-圖片Y座標

然後代到那個公式後用分歧指令判斷就好。
作者: secondsen    时间: 2009-10-23 20:42
那个椭圆的面积明显大于角色的面积。。。。

用screen_x  screen_y来判断比较好吧。。。

给出椭圆的中心坐标。。。x,y
d_x = x - event.screen_x
d_y = y - event.screen_y
if a(d_x**2)+b(d_y**2)<1
  ……(……*&¥*(——……(¥……¥&
end

椭圆的参数 a,b自己设定的。。。
作者: li807609447    时间: 2009-10-24 09:42
能看懂一点了
如果有范例就更好了
作者: 上帝的眼睛    时间: 2009-10-24 22:34
编号事件的x,y坐标
  1. $game_map.events[编号].screen_x
  2. $game_map.events[编号].screen_y
复制代码
[line]1[/line]
  1. if $game_map.events[编号].screen_x = 图片的X&& $game_map.events[编号].screen_y=图片的Y
复制代码

作者: li807609447    时间: 2009-10-26 18:02
已经解决了
  谢谢大家的帮忙......




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