ポンクソフト

チュートリアル5(当たり判定) - Flash(ActionScript)でゲーム作成入門

前ページ Flash(ActionScript)でゲーム作成入門 TOP 次ページ

目次

  1. Flash(ActionScript)でゲーム作成入門
  2. チュートリアル1(自機移動)
  3. チュートリアル2(弾発射)
  4. チュートリアル3(タイトル画面)
  5. チュートリアル4(敵移動)
  6. チュートリアル5(当たり判定)
  7. チュートリアル6(スコア)
  8. おまけ

当たり判定

弾が敵に当たったときに敵がやられ、自機が敵に当たったときに自機がやられるようにし、ゲームらしくします。

敵インスタンスに当たり判定の ActionScript を割り当てる

フレーム2の敵インスタンスをクリックして、以下の太字の部分の ActionScript を追加してください。
onClipEvent(enterFrame) {
  _x -= speed;
  if (_x < 0) {
    _rotation = 0;
    _x = Stage.width;
    _y = Math.random() * Stage.height;
    speed++;
  }
  if (_rotation == 0) {
    if (hitTest(_root.tama_mc) && _root.tama_mc._visible) {
      _rotation = 90;
      _root.tama_mc._visible = false;
    } else if (hitTest(_root.jiki_mc)) {
      _root.gotoAndPlay(1);
    }
  }
}
このままではタイトル画面に戻ったときにマウスが消えたままになるので、フレーム1をクリックしてフレームアクションに以下の黒字の部分の ActionScript を追加してください。
Mouse.show();
stop();

ムービーの実行

ムービープレビューを実行してみてください。弾が敵に当たると敵が倒れ、自機が敵に当たるとタイトル画面に戻ります。

.fla ファイルダウンロード

プログラムの説明

_rotation = 0;
_rotation はムービークリップの回転角度です。敵がやられたときに倒れるので、再度登場したときに元に戻すようにしています。
if (_rotation == 0) {
回転角が 0、つまり敵が倒れていないときだけ当たり判定を行います。
    if (hitTest(_root.tama_mc) && _root.tama_mc._visible) {
      _rotation = 90;
      _root.tama_mc._visible = false;
ムービークリップの hitTest は、他のインスタンスとの衝突判定を行い、当たっていれば true、いなければ false を返すメソッドです。敵と弾が当たっていて、なおかつ弾が画面上に出ていたなら、敵が弾に当たったと判定します。角度を 90 度にして敵を倒し、弾を消します。
    } else if (hitTest(_root.jiki_mc)) {
      _root.gotoAndPlay(1);
    }
敵と自機が当たっていれば、タイムラインを1に戻します。つまりタイトル画面に戻るわけです。フレーム3あたりにゲームオーバー画面を作ってそこへ飛ばすのも良いでしょう。
前ページ Flash(ActionScript)でゲーム作成入門 TOP 次ページ
このエントリーをはてなブックマークに追加 そっか0

このページに関するコメントをどうぞ

お名前:


ポンポン
いままで、書いたのは、忍者。flaについてです。
解決しました。結局のところ、私のソフトは、挿入から新規シンボルを作る、シンボルに変換があるが、シンボルの変換のほうが効果ありでした。これで、スムーズのライブラリに入りました。(これがうまくいかなかった)ここから、リンケージを押して、解説のようになります。
今のとき、インスタンスを消します。ライブラリを広げると、書き出しTamaとかかれています。はじめて、なんとなく理解できました。ほかのゲームんもチャレンジしますね。仮想メモリは何のことだったのか?
2017/08/11 16:20

ポンポン
ライブリをあたると、Tamaのシンボルの図がないなぜ?インスタンスがドラグできない。疑問です。よろしく。
2017/08/10 20:17

ポンポン
目次を見ると、次の章にゲーム5個の作り方があった。downloadしたが、イライラ、gplfが形式があいません。なぜ?
ニンジヤ.flaに取り組んだ。問題が発生。手裏剣がとばない。そこで、メモリが不足したいる。flashの仮想メモリを増やしなさい?
c:、d:、をあけたが、だめ。仮想メモリを増やすのはどうするの。
手裏剣=temi_mcのようにインスタンス名をつけないの?
押してください。難しいね。
2017/08/10 18:13

ポンポン
このページの記事でゲームができた。
僕のflashmxは[flashムービのアイデア箱」の付録に30日限定のものでいした。ところで、7で動かしたいねですが、インストはするのでが、画面にアイコンまできます。しかし、これこれからはダメ。なんとかできないでしようか。いまうごいているのは、昔のwin-meなんです。Xpだったら動く?と思います。(先日、こわれた)
何で7は動かない?
質問でした。
2017/08/09 16:08

古羽嘉禎
ActionScript3.0出来ないな…
2016/12/05 17:33

naga3
お使いのFlashのバージョンと、
OSを教えてもらえませんか?
2013/05/25 08:50

dhipo2
度々すみません・・・
このページとは、
ゴルフゲームのページの一番上の事です。
よろしくお願いします。
2013/05/19 10:39

chipo2
このページの一番上の方の”実行画面”が、動かないのですが・・・
正確に言うと、矢印は動くのですが、
クリックしても、ボールが飛ばないのです・・・。
(ボールが飛んだような絵が一瞬出て、戻ってしまいます)
私のPCのフラッシュのバージョンが古いとかいった理由でしょうか・・・;;
すみませんが、教えてください。
2013/05/19 10:37

naga3
はいFlashないと出来ないです。
2013/04/24 08:08


何を当たり前のこと言ってるんですか?
2013/03/19 15:51

残りを読む »