無題
投稿者 : <Mc>(p14062-adsan02yokonib1-acca.kanagawa.ocn.ne.jp)
- 2003/12/22(Mon) 20:11
No.4978
|
|
|
|
|
自機が動くリフトに乗れるようにするにはどうすればいいのですか?
〜動くリフト〜 extends SpriteChar; sy=y; vy=2; while(1) { if (y>sy+80) vy=-2; if (y<sy-80) vy=2; y+=vy; update(); } 〜自機〜 extends SpriteChar;
$map.setBGColor(color(0,200,255)); // 背景色を設定 anim=newAnimation(); while (1) { anim.pause(); if (getkey(39) && $map.getAt(x+18,y+vy)!=$pat_super_mario2+4) { x+=3; f=0; anim.swing($pat_super_mario2+0,$pat_super_mario2+2,5);
} // ↑ カーソルキー右が押され、さらに右側が壁でなければ右へ移動 if (getkey(37) && $map.getAt(x-18,y+vy)!=$pat_super_mario1+4) { x-=3; f=1; anim.swing($pat_super_mario2+0,$pat_super_mario2+2,5);
} // ↑ カーソルキー左が押され、さらに左側が壁でなければ左へ移動
y+=vy; // vy: y 方向の速度。 yにvy を加える
$map.getAt(x,y+18+vy)==$pat_super_mario2+4) { // ブロックに当たっていたら vy=0; // 落下速度を0にする if ($map.getAt(x,y-16)!=$pat_super_mario2+4)
if (getkey(32)==1) vy=-10; } else { // ブロックに当たっていなかったら vy+=0.5; // 落下速度を上げる } if (y>400) die();
$map.scrollTo(x-$screenWidth/2,0); // スクロールする
update(); }
|
Re: 無題
投稿者 : hoge-(ppp02.kake.info.waseda.ac.jp)
- 2003/12/22(Mon) 20:55
No.4979
|
|
|
|
これを追加したらいかがでしょう
動くリフト:
if (crashTo($mario)) { $mario.y=y-8; }
不具合があったら、不具合の症状とともにまた質問してください
|
Re: 無題
投稿者 : <Mc>(p14062-adsan02yokonib1-acca.kanagawa.ocn.ne.jp)
- 2003/12/22(Mon) 21:27
No.4980
|
|
|
|
一応できたのですけど、動くリフトの上でジャンプはできないのですか?
|
Re: 無題
投稿者 : hoge-(ppp02.kake.info.waseda.ac.jp)
- 2003/12/26(Fri) 13:14
No.4998
|
|
|
|
すみません。返信が遅れました
ちょっと変になるかもしれませんが、このようなのはどうでしょう if (crashTo($mario)) { $mario.y=y-8; if (getkey(32)) { $mario.y=y-16; $mario.vy=-5; } }
|
Re: 無題
投稿者 : <Mc>(p8233-adsao03yokoni-acca.kanagawa.ocn.ne.jp)
- 2003/12/28(Sun) 15:11
No.5001
|
|
|
|
ジャンプはできましたが、リフトに一定時間乗っていると落ちてしまうんです。 度々すいませんが、どうしたら直せるのでしょうか?
|
久しぶり
投稿者 : waka(p2234-ipbf15gifu.gifu.ocn.ne.jp)
- 2005/09/12(Mon) 17:25
No.8734
|
|
|
|
多分、こうじゃないかな?と思います。
リフトの処理 落ちないようにする ↓ 自機の処理 重力を加える。(ここでvyが増える) ↓ 落下処理する vyが増えてるから少し落ちる
こうなら、y+=vy;とあると思うのですが、ここを上のほうに持ってこれば解決できませんか?
|
|