Ball
extends BodyActor;
shape="circle";
while(true) {
if (getkey("left")) vx=-3;
if (getkey("right")) vx=3;
// スペースキーが押されていて、しかもFloorと触れているときに上に力を加える
if (getkey("space")==1 && contactTo(Floor)) vy=-10;
update();
}
Main
new Ball{x:100,y:100};
new BodyActor{x:250,y:400,width:400,height:30,fillStyle:"white",isStatic:true};
なお,上のプログラムではFloorに横から当たったときにもジャンプ(壁蹴り)ができるようになっています.壁蹴りをできなくするには,当たった位置を特定するためにcontactPointメソッドを用います.
Ball
extends BodyActor;
shape="circle";
while(true) {
if (getkey("left")) vx=-3;
if (getkey("right")) vx=3;
if (getkey("space")==1) {
cp=contactPoint(Floor);//触れている位置を含めて判定
if (cp) {//触れていれば
if (cp.y>y+2) {//当たった点(cp)のy座標が自分より少し下だったら,ジャンプできると判定
vy=-10;
}
}
}
update();
}