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

Project1

 找回密码
 注册会员
搜索

如何判断图片与角色的行走图发生了重叠?

查看数: 3128 | 评论数: 16 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2009-10-19 22:31

正文摘要:

本帖最后由 li807609447 于 2009-10-20 12:58 编辑 如图如何判断那个椭圆形图片与 角色的行走图发生了重叠?? (用脚本)

回复

li807609447 发表于 2009-10-26 18:02:52
已经解决了
  谢谢大家的帮忙......
上帝的眼睛 发表于 2009-10-24 22:34:53
编号事件的x,y坐标
  1. $game_map.events[编号].screen_x
  2. $game_map.events[编号].screen_y
复制代码

  1. if $game_map.events[编号].screen_x = 图片的X&& $game_map.events[编号].screen_y=图片的Y
复制代码
li807609447 发表于 2009-10-24 09:42:43
能看懂一点了
如果有范例就更好了
secondsen 发表于 2009-10-23 20:42:35
那个椭圆的面积明显大于角色的面积。。。。

用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自己设定的。。。
WildDagger 发表于 2009-10-23 20:16:24
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座標

然後代到那個公式後用分歧指令判斷就好。
li807609447 发表于 2009-10-21 18:43:10
自顶一下
li807609447 发表于 2009-10-21 12:55:00
本帖最后由 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
帮帮我
hide秀 发表于 2009-10-21 12:47:27
如果你那个椭圆是事件的话即(Game_Event)
而Game_Event 是类 Game_Character 继承而来
所有都具有属性 x,y
那么椭圆对象的坐标与角色的坐标相等就行了
脚本写法是(event对象为椭圆那个事件)
event.x == $game_player.x and event.y == $game_player.y
hitlerson 发表于 2009-10-21 10:00:01
本帖最后由 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)时不重叠
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-9-15 06:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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