はじめまして。
投稿者 : とかさ(YahooBB219057028231.bbtec.net)
- 2005/02/23(Wed) 20:45
No.7822
|
|
|
|
|
こんにちは。質問なんですが、ジャンプアクションを作成の際、「敵との当たり判定を作る」ってありますよね?自分はそっからができません。なぜか、敵をジャンプして踏んでも何も起きないし、普通に横から敵につっこんでも何もならないです。
【敵】
extends SpriteChar; vx=2; // 進行方向 a=newAnimation(); // AnimationAdapterを作成 a.loop($pat_Enemy1+0,$pat_Enemy1+1,10); // 敵の2つのパターンを往復するアニメーション while (1) { if (crashTo($snowMan)) { // 自機とぶつかったら if ( $snowMan.y < y-8 && $snowMan.vy>0 ) { // 自機は敵より少し上にいて、下方向に速度をもっているならば die(); // 敵が死ぬ $snowMan.vy=-5; // 自機がはねあがる } else { $snowMan.die(); // そうでなければ自機が死ぬ } } if ($map.getAt(x+vx,y)==$pat_Block+0 || $map.getAt(x+vx,y+32)!=$pat_Block+0) { // 進行方向のマップパターンがブロック、または斜め下がブロックでなかったら a.pause(); // 待機前にアニメーションを止める updateEx(30); // 30フレーム待機 a.resume(); // 待機後にアニメーション再開 vx=-vx; // 進行方向を反転する } x+=vx; // 進行方向へ進む if (vx<0) f=1; else f=0; // vx が負(左向き)なら反転 update(); }
【自機】
extends SpriteChar;
$map.setBGColor(color(0,200,255)); // 背景色を設定 anim=newAnimation(); while (1) { anim.pause(); if (getkey(39) && $map.getAt(x+16,y)!=$pat_Block+0) { x+=3; f=0; anim.swing($pat_player+0,$pat_player+2,5); } // ↑ カーソルキー右が押され、さらに右側が壁でなければ右へ移動 if (getkey(37) && $map.getAt(x-16,y)!=$pat_Block+0) { x-=3; f=1; anim.swing($pat_player+0,$pat_player+2,5); } // ↑ カーソルキー左が押され、さらに左側が壁でなければ左へ移動 y+=vy; // vy: y 方向の速度。 yにvy を加える if ($map.getAt(x,y+24)==$pat_Block+0 ) { // ブロックに当たっていたら vy=0; // 落下速度を0にする if (getkey(32)) vy=-10; // スペースキーを押したらジャンプ } else { // ブロックに当たっていなかったら vy+=0.5; // 落下速度を上げる } $map.scrollTo(x-$screenWidth/2,y-$screenHeight/2); // スクロールする update(); }
です。どうしたらよいでしょうか?お願いします。
|
Re: はじめまして。
投稿者 : N@N(cc-h3037.hc.cc.keio.ac.jp)
- 2005/06/03(Fri) 11:21
No.8303
|
|
|
|
確認したところ、正常に動作しました。
snowManを複数作って最初のを消したり、したことはありませんか? 1つ目なら$snowManが自機になりますが、2つ目以降は$snowMan_1、$snowMan_2・・と、別な名前がついていきます。 (snowManを選択し、オブジェクトインスペクタの一番上のらんを見てみてください。)
snowManのオブジェクトをすべて消し(プログラムは消さない)、もう一度作り直すと直るはずです。
|
Re: はじめまして。
投稿者 : かか(203-165-188-33.rev.home.ne.jp)
- 2008/06/10(Tue) 17:33
No.11855
|
|
|
|
自機のオブジェクト名を 主人公などにしたらだめ
snowManにしないと
敵はMonstarにしたらどうでしょう
|
|