• 締切済み

VBでのシューティングゲーム

こんにちは VB6.0を使ってシューティングゲーム作りしてるですが、弾を発射することはできたのですが弾が当たっても消えません(当たり前ですが 判定でIf文を使うのはわかっているのですが、そこからがわかりません・・・ どなたかご教授お願いします。 内容としては、image3(弾)がimage1(敵)に当たったらimage1が非表示になるって感じにしたいです。 image1も3もタイマーを使っています、よろしくお願いします。

みんなの回答

  • gcqd75ce
  • ベストアンサー率8% (6/67)
回答No.4

2ヶ月前に回答したもんですけど、 入門の本をよく読む。 質問掲示板なんで、こうゆう書き方はムカツキますよね? まぁ、あきらめられたのならしょうがないけど。 if文の中にif文を作るのは苦手ですか? あと、論理演算のトコを勉強すると答えがみえてくるかなぁ^^; ANDとかORとかです。 もし、弾の範囲が敵キャラの範囲にあるかどうかの判定プログラムを作る場合は 必要ですよ。 それとプログラムを作る前にフロチャートを書くとか。 敵キャラの絵を描いて(x、y)(x1、y1) 弾の絵を描いて(t、z)(t1、z1) とか。 ノートに鉛筆で実際に書く描く書く。

  • gcqd75ce
  • ベストアンサー率8% (6/67)
回答No.3

簡単簡単。 弾の現在値+弾の大きさの範囲に敵の位置+敵の大きさが入ればいいだけ。 V6は知らね。 全ての言語で同じ内容の処理ができる。アハハ。

回答No.2

>難しいですね・・・、言葉では簡単に言えるのにコードにしようと思ったらまったくわかりません。 >一度見ただけではわからないので、何度も見直してやっていこうと思っています。 例えば、image3とimage1はどこかで動かす処理をしているわけですよね。 つまり、 位置の計算処理 ↓ 描画処理 この位置計算処理部に、 両者の当たり判定処理を組込むだけです。 両者の距離の出し方がわからないというのは…プログラム以前の問題ですが、三角定理で求まりますよ。 コードにしようとして何がわからないのか、具体的に書いてくれないと 回答しようがありません。

回答No.1

あまり具体的に書かれていないのですが、 とりあえず、回答してみます。 まず、弾が当たったかどうかの当たり判定処理が必要です。 当たり判定とは、その名の通り当たっているか当たっていないかを判別します。 判別には基本的には両者の距離から判断します。 例えば、球体AとBの2つがあり、AとBが当たっている場合は AB間の距離<=Aの半径+Bの半径 それ以外なら、当たっていません。 これはお分かりですか? この判定を組込むだけです。 まず必要なのは、弾と敵の当たり判定領域(上記の例なら、AとBの半径)の設定(定義)が必要です。 そして、常に両者間の距離計算を行います。 つまり、60fpsのシューティングゲームなら、 1秒間に60回この計算を行って判定処理しています。 最近の弾幕系シューティングにおいても基本的には同じ手法で 当たり判定処理をしています。 image3とimage1の判定領域を仮に10と設定していれば、 image3とimage1の距離が20以下になれば当たっているので、 image1を非表示(破棄)するようにすればいいです。

ganndaruso
質問者

お礼

難しいですね・・・、言葉では簡単に言えるのにコードにしようと思ったらまったくわかりません。 一度見ただけではわからないので、何度も見直してやっていこうと思っています。 回答ありがとうございました。

関連するQ&A

  • フラッシュでシューティングゲームを作りたい

    フラッシュでシューティングゲームを作りたいのですが、当たり判定や弾の発射の仕方などを公開されているサイトをご存知でしたら教えてください。 よろしくお願いします。

  • 簡単なシューティングゲーム制作

    下記の内容を目標に簡単なシューティングゲームを作っているのですが、アドバイスをいただけたら幸いです。 ・敵(ライブラリーからステージに複数配置・移動・スピード・敵同士の間隔に可変性を持たせる・弾にヒットしたら消える) ・自機(・マウスに追従・マウスクリックで弾発射・弾を制限なしで連射可・敵にヒットしたらスコア表示) ・制限時間 ・スコア表示 参考サイトなどありましたら、教えていただけると助かります。 大変申し訳ありませんが、宜しくお願いいたします。

  • N88BASICでシューティングゲームを作りたい!!

    N88BASICを使って簡単なゲームをつくってみたいんですけど どうもうまくいかないんですよ。 昔なつかしのインベーダーゲームを作ろうとがんばっているのですが 敵と自機を配置したんですけどそれを動かすにはどうしたらいいのでしょうか? もう敵を動かすのはめんどうなので自機だけキー入力で 左右に動かせるようにしたいんです。 そうするにはどういう命令を書けばいいのでしょうか? それとシューティングゲームなので弾を発射するとか 当たったらやられるとかそういう肝心なところの プログラムがわかんないんです。 どなたか教えてもらえないでしょうか お願いします。m(-_-)m

  • Lite1.0でのシューティングゲームですが

    いつも大変参考にさせていただいております。 さて、本題ですが、Lite1.0でシューティングゲームを作成しているのですが 動きと当たり判定の連動がうまく行きません。 今現在設定している敵MCのあたり判定は以下の通りです。 //自機(攻撃側)とのあたり判定 if (../pc:_y >= _y - 10 and _y + 10 >= ../pc:_y) { if (../pc:_x == _x) { if (/game:hp <> 0) { if (/game:dmg <> 1) { tellTarget ("../pc") { gotoAndPlay("dmg"); } tellTarget ("../../hp") { nextFrame(); } } } } } //弾とのあたり判定 if (../tama:fire == 1) { if (../tama:_y >= _y - 10 and _y + 10 >= ../tama:_y) { if (../tama:_x >= _x -10 and _x + 10 >= ../tama:_x) { tellTarget ("../tama") { gotoAndStop(1); } gotoAndPlay("baku"); } } } インスタンス名の説明をします。 pcが自機、tamaは自機が発射する弾。 gameがシーン1に置かれている全体のMC。 hpが自機のパワー数、dmgはダメージ。 このASを敵MCの1フレーム目に記載しております。 そして、2フレーム目に gotoAndPlay(_currentframe - 1); 3フレーム目~7フレーム目には /game:score += 10; ラベルはbakuとしています。 そして、8フレーム目に stop(); ラベルをendとしています。 タイムラインは(全てMC) シーン1→game→ステージ(敵や弾・自機)→敵(あたり判定をしているMC) となっております。 そして、以前の質問にあった、こちらの動きを付けたいと考えております。 ↓ http://oshiete1.goo.ne.jp/qa2802247.html あたり判定は問題なく出来ているのですが、 これに動きをつけると動作しなくなってしまう・・・ と言いますか、どのように連動させるべきかうまいこと分かりません。 ゲームのイメージとしてはインベーダーゲームと思って下さい。 また違った方法で動きをつける様になるのでしょうか。 説明が長くなってしまって申し訳ございませんが 宜しくお願いいたします。

  • Flashで、簡単なシューティングゲーム制作

    下記の内容を目標に簡単なシューティングゲームを作っているのですが、アドバイスをいただけたら幸いです。 ・敵(ライブラリーからステージに複数配置・移動・スピード・敵同士の間隔に可変性を持たせる・弾にヒットしたら消える) ・自機(・マウスに追従・マウスクリックで弾発射・弾を制限なしで連射可・敵にヒットしたらスコア表示) ・制限時間 ・スコア表示 参考サイトなどありましたら、教えていただけると助かります。 大変申し訳ありませんが、宜しくお願いいたします。

  • シューティングゲームの作り方

    また行き詰ってしまったので質問させてください。 趣味のプログラミングでシューティングゲームを作ろうと思っていて、下記URLのコードまでは完成しました。 しかし、色々と問題があります。 (1)自機が敵機に当たったときには、衝突応答の関数が実行されるのに、弾が敵に当たった時には実行されないのがなぜだかわからない。 (2)背景の画像をスクロールさせるのに効率のいい方法(できるだけ重くない処理) (3)自機を枠の外に行かないようにするには… (4)”マウスのボタンをクリックするたびに弾を発射”ではなく、”押している間は常に弾を発射する”という処理にするにはどうすればいいのか… (5)マウスを押したままでも、自機の移動を可能にするには…(画像を表示させると、クリック状態で自機の移動ができなくなる) (6)右クリックの禁止ができません。どのサイトを見ても同じようなコードしか書いてなく、そのコードでは右クリックの禁止ができません…(divにoncontextmenu="return false;") (7)その他、下記URLのコードの無駄や、ゲームを作るならもっとこういう書き方の方がいい!などありましたら教えていただけるとうれしいです。(何より動作の軽いゲームを作りたい(javascriptで。今回他の言語等は考えていません。)) (8)それから、注文が多くて申し訳ありませんが、(7)以外は下記のコードをベースに解決方法を教えていただければ幸いです。 http://www7b.biglobe.ne.jp/~k326/javascript/STG.html 8つも一度に質問するのも気が引けましたが、何度も投稿するよりは…と思ったのでまとめさせていただきました。自分なりにグーグルで10サイト以上は見て回ったのですが、解決できませんでした。(検索の仕方が悪いのかもしれません…)どうかご教授お願いします。 ※趣味の範囲なので、できれば「センスない」などの中傷はしないでください。お願いします。 ※動作チェックはIEです。とりあえずはIEでできるように…と考えています。 ※2000文字に入りきらなかったので、直接コードを記述せずにURLを載せる事にしました。

  • バイオハザードっぽいシューティングゲーム

    ここ5年以内のシューティングゲームを探しているのですが、内容はバイオハザードっぽいのがいいんですが弾集めるのとかめんどくさいんで 、バイオっぽいかつ最初からマシンガンとか打ちまくれるゲーム教えてください。

  • C# シューティングゲーム 初心者です。

    作製環境はVisual C# 2005です。 C#を使って簡単なシューティングを作製しようとしています。初心者なのでフォームからいろいろ配置して作製しているのですが分からないことが多くて困っています。敵機の移動についてpictureboxを使っていちいちタイマーで動かしてしまっているので多く敵機を作ると動きが重くなってしまいます。楕円か何かの図形をそのまま動かして敵にしたいのと、その場合の当たり判定について詳しく分かる方は教えてほしいです。 大変初歩的な質問ですが何卒お願い申し上げます。それなりのシューティングゲームを作製したいと思っています。

  • 昔のシューティングゲーム

    昔アーケードでハマったゲームをふと思い出して、 タイトルも思い出せないのですが、今もプレイ出来るか知りたいです。 13~4年前にゲーセンにあったシューティングゲームです。 特徴はこんなかんじです。 ・縦スクロール ・攻撃ボタンは3つで、押す組み合わせによって攻撃方法が変わる ・ボタンを3つ全部押すと、機体の周りを剣が回り、敵の弾を消す ・得点を稼ぐと武器レベルが上がる ・敵が色分けされていて、同じ色の敵を連続して倒すと高得点 ・ウルトラマンみたいなボスが出てくる こんな感じですが、タイトルや家庭用で出ているかなど、 分かる方いましたら回答お願いします。

  • トンボのパソコンゲーム

    昔遊んだトンボを主体としたパソコンゲームのタイトルを探しています。 当時windows98でやっていたので、1998年前後だと思います。内容はシューティングで、トンボをキーボードの矢印キーで操り、スペースキーで弾? を発射して蝶々やバッタなどの昆虫を倒していきます。敵の攻撃を一度でも食らうと死んでしまいます。 古いゲームですが、回答よろしくお願いします。

専門家に質問してみよう