- 注册时间
- 2009-3-3
- 最后登录
- 2011-6-9
④见习
- 积分
- 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对上述函数进行反向判断就可以了 |
|