[戻る] 最新記事| 前後の記事|

- 以下は、記事NO. 2467 に関する 返信フォーム です -
敵を踏んだら倒せるアクションゲーム 投稿者 : ・・・(YahooBB220012168093.bbtec.net)
- 2003/01/28(Tue) 09:26 No.2467
 


myCharか敵に問題があると思うんですが
敵を踏んだ瞬間からずっと処理速度が遅くなります
なのでここにプログラムを書くので訂正してください
【敵(snowMan)】
extends SpriteChar;
vx=2; // 進行方向
a=newAnimation(); // AnimationAdapterを作成
a.loop($pat_player+0,$pat_player+2,5); // 敵の2つのパターンを往復するアニメーション
while (1) {
  if (crashTo($myChar)) {$mplayer.play($se_Rbyun);
      // 自機とぶつかったら
      if ( $myChar.y < y-8 && $myChar.vy>0 ) {
        // 自機は敵より少し上にいて、下方向に速度をもっているならば
        die(); // 敵が死ぬ
                   $myChar.vy=-5; // 自機がはねあがる
                      } else {
        $mplayer.play($se_01);
   $myChar.die(); // そうでなければ自機が死ぬ
        $projectManager.loadPage($page_gameover); 
   }
  }
  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();
}


【myChar】
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_Enemy1+0);
  }
  // ↑ カーソルキー右が押され、さらに右側が壁でなければ右へ移動
  if (getkey(37) && $map.getAt(x-16,y)!=$pat_Block+0) {
    x-=3;
    f=1;
    anim.swing($pat_Enemy1+0);
  }
  // ↑ カーソルキー左が押され、さらに左側が壁でなければ左へ移動
  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: 敵を踏んだら倒せるアクションゲーム 投稿者 : ・・・(YahooBB220012168093.bbtec.net)
- 2003/01/28(Tue) 11:32 No.2468
 
直りました


おなまえ
Eメール
タイトル
メッセージ
推薦記事
添付File
削除キー (自分の記事を削除時に使用。英数字で8文字以内)
文字色