幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2496|回复: 2

[提问] 如何判断A,B两个对象没有碰撞

[复制链接]

23

主题

44

帖子

483

积分

④见习

积分
483
发表于 2009-7-21 23:54:48 | 显示全部楼层 |阅读模式
RT,若判断碰撞,可以用碰撞事件,但如何判断没碰撞
回复

使用道具 举报

3

主题

50

帖子

414

积分

④见习

积分
414
发表于 2009-7-22 15:21:35 | 显示全部楼层
计划运动或是要决定具体行动时,察看实例是否与其它对象在确定的地点碰撞是一件十分重要的事。为此需要用到下面的程序。所有的这些函数有三个共有参数:参数 obj 是某对象,关键字 all ,或是某实例的 id 名。参数 prec 是是否启用精确检测或是仅仅使用实例的碰撞盒。精确检测只有当实例的精灵设定了精确碰撞检测时才有效。参数 notme 可以设为 true ( 1 ),使调用的实例不会被检测。所有的这些函数返回值为被碰撞实例的 id 名,如果没有碰撞就返回一个负值 。

collision_point(x,y,obj,prec,notme) 这个函数测试在( x , y )位置是否和实体对象 obj 有碰撞。
collision_rectangle(x1,y1,x2,y2,obj,prec,notme) 这个函数测试指定对角的矩形(已填充)是否和实体对象 obj 有碰撞。举例来说,你可以使用这个函数测试某个区域里是否没有障碍物。
collision_circle(xc,yc,radius,obj,prec,notme) 这个函数测试指定圆心( xc , yc )的圆(已填充)是否和实体对象 obj 有碰撞。举例来说,你可以使用这个函数测试某对象是否靠近某特点位置。
collision_ellipse(x1,y1,x2,y2,obj,prec,notme) 这个函数测试指定对角的椭圆(已填充)是否和实体对象 obj 有碰撞。
collision_line(x1,y1,x2,y2,obj,prec,notme) 这个函数测试线段( x1 , y1 )到 (x2,y2) 是否和实体对象 obj 有碰撞。这是个强大的函数。你可以这样使用这个函数,通过检测线段是否与他们之间的墙相交来测试某实例是否可以看到另一实例。


在step里用IF对上述函数进行反向判断就可以了
回复 支持 反对

使用道具 举报

335

主题

782

帖子

1万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
12742
发表于 2009-7-23 18:53:47 | 显示全部楼层
血色贴的是自由度很高的方法,熟悉以后基本都会用~

用碰撞事件判断没碰撞,可以创建时设置一个变量
step event 保持初始值
collision event 令其变化
这样变量的值会反映是否碰撞了~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-28 14:09 , Processed in 0.021003 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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