"不动"刚体,这里指的是以下两类刚体:
1.刚体的allowMovement和allowRotation都设false的刚体
2.KINEMATIC类型的刚体
如下代码,测试发现输出面板没有内容输出,侦听不到两者的碰撞。
package {
import nape.callbacks.CbEvent;
import nape.callbacks.CbType;
import nape.callbacks.InteractionCallback;
import nape.callbacks.InteractionListener;
import nape.callbacks.InteractionType;
import nape.phys.Body;
import nape.phys.BodyType;
import com.bit101.components.TextArea; public class Main extends BaseMain { public function Main() {
super({gravity:{x:0,y:0}});
}
private var _textArea:TextArea;
private const C_A:CbType = new CbType();
private const C_B:CbType = new CbType();
override protected function createBodies():void {
var body1:Body=createBox(30,30,80,200);
body1.cbTypes.add(C_A);
body1.allowMovement = body1.allowRotation=false;//不允许移动、旋转
body1.velocity.x=300;
body1.space = _space; var body11:Body=createBox(30,30,50,300);
body11.cbTypes.add(C_A);
body11.type = BodyType.KINEMATIC;//设为KINEMATIC刚体类型
body11.velocity.x=300;
body11.space = _space; var body2:Body = createBox(30,300,400,200);
body2.cbTypes.add(C_B);
body2.type = BodyType.STATIC;
body2.space = _space; _space.listeners.add(new InteractionListener(CbEvent.BEGIN,InteractionType.COLLISION,C_A,C_B,a_bHandler)); _textArea = new TextArea(this);
print("check begin.....");
} private function print(text:String):void{
_textArea.text+=text+"\n"
} private function a_bHandler(cb:InteractionCallback):void{
print("hit");
} } }
源码下载:http://yunpan.cn/cmXEYfHw7DbJF 访问密码 b60d