已经解决了 谢谢大家的帮忙...... |
编号事件的x,y坐标
|
能看懂一点了 如果有范例就更好了 |
那个椭圆的面积明显大于角色的面积。。。。 用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自己设定的。。。 |
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座標 然後代到那個公式後用分歧指令判斷就好。 |
自顶一下 |
如果你那个椭圆是事件的话即(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: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.