用途別リファレンス
オブジェクトを動かす
ジャンプして落ちる
☆ジャンプしてオブジェクトに着地する
Main
x=150;
y=$screenHeight-48;
vy=0;
p=5;
roop=0;
new Block{x:x, y:$screenHeight-16};
while(roop<5){
new Block{x:rnd($screenWidth), y:$screenHeight-16};
roop++;
}
while(true){
hantei=crashTo(Block);
if(!hantei){
vy++;
y+=vy;
}else{
vy=0;
}
if(getkey("right")>0) x+=3;
if(getkey("left")>0) x-=3;
if(getkey("z")==1 && vy>=0){
vy=-15;
y+=vy;
while(true){
if(getkey("right")>0) x+=3;
if(getkey("left")>0) x-=3;
vy++;
y+=vy;
hantei=crashTo(Block);
if(hantei){
break;
}
update();
}
}
update();
}
Block
中身は何も書かなくてよい
最初にプレイヤーの下とランダムに5つの足場を表示し、左右に動きzキーでジャンプするプレイヤーを出現させる。当たり判定の値をhanteiに代入し、足場に触れてない間は落下させ、足場に触れている間は落下しないようにする。
☆ジャンプしてマップに着地する
Main
//事前にマップを作っておく
x=16;
y=$screenHeight-48;
vy=0;
p=5;
while(true){
if(map.getAt(x,y+16)==-1){
vy++;
y+=vy;
}else{
vy=0;
}
if(getkey("right")>0) x+=3;
if(getkey("left")>0) x-=3;
if(getkey("z")==1 && vy>=0){
vy=-15;
y+=vy;
while(true){
if(getkey("right")>0) x+=3;
if(getkey("left")>0) x-=3;
vy++;
y+=vy;
//マップに着地した場合。ここは1としているが、マップの床のチップ番号を入れる
if(map.getAt(x,y+16)==1){
break;
}
update();
}
}
update();
}
マップを描画し、左右に動きzキーでジャンプするプレイヤーを出現させる。当たり判定は、プレイヤーの真下がブロックであるかどうか(ここでは、画像番号1を足場に設定しているため、画像番号1であるかどうか)を調べ、ブロックに触れてない間は落下させ、ブロックに触れている間は落下しないようにする。