シューティングゲーム作製について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
(´・ω・`)

シューティングゲーム作製について

#1

投稿記事 by (´・ω・`) » 15年前

現在2名でシューティングゲームの作製に取り組んでいます。


プログラムを組んでいく中でわからないことがありました。
ステージ1というのを仮に完成させたとして、次ステージに移り変わる時にどのような関数を駆使して作製していけばよいか悩んでいます。

また、ステージの移り変わりの際にどのようなファイル構造で作製していったら良いのか知りたいので、参考になるファイル構造などがあれば教えて頂けたら幸いです。

回答よろしくお願いします。

画像

jay

Re:シューティングゲーム作製について

#2

投稿記事 by jay » 15年前

僕もそれには苦労しましたねぇ・・・。
そのアルゴリズム(考え方)だけ書いてみますね。

まずステージをクリアしたら(ボスを倒したら?)
clear_flagでもなんでもいいので、変数を1にします(フラグを立てる)
clear_flagは普段0にしておく訳ですね。

そしてclear_flagが1になったらステージを変更するための処理をする関数を作動させる訳ですね。

その関数でやるべきことは大きく3つです
 ・余計なものを消す
   ステージ1で使われた敵の情報やBGMなどステージ2で使わないものは消します。

 ・必要なものを初期化
   自機の位置を初期位置に戻すなど、必要な値を初期化します。
   自機のパワーや残機など、消さずに引き継ぐべきものは消さないように注意して下さい。

 ・次のステージのデータを読み込む
   次のステージの背景や敵の情報など、必要な情報を読み込みます。
   
(いずれもプログラムの使用によっては他のタイミングで行うこともります)

ステージを変更した後はclear_flagを0にすることを忘れないように。


まぁ、あくまでも考え方なので
これを参考に自分なりのやり方でやればいいと思いますよ。

(´・ω・`)

Re:シューティングゲーム作製について

#3

投稿記事 by (´・ω・`) » 15年前

返答ありがとうございます!

わかりやすくまとめて頂けたので
おかげでゲーム作製を進める大きなヒントとなりました。

今後とも質問していくと思うで
その時はよろしければ返答よろしくお願いします。

(´・ω・`)

新しく質問です

#4

投稿記事 by (´・ω・`) » 15年前

○自機の移動自に上下は表示してくれるんですが、左右は表示してくれません。

龍神録のサンプルプログラムを取り、章通りに作製を進めていました。
とりあえず自機の移動をさせようと思い、章9までは順調に進んでいます。

そこで画像を差し替えてみようとし、戦闘機の画像を追加しました。
上下移動は動いている間も表示してくれるんですが、左右となるとキーを押している間自機が消えてしまいます。また、キーを離すと移動された先で表示してくれます。


動いている間も表示し続けたいのですがどうすればいいでしょうか。

変更した点は以下の通りです。


○char.cpp

#include "../include/GV.h"

void calc_ch(){
ch.cnt++;
ch.img=(ch.cnt%24)/12; ← 6から12に変更
}


○load.cpp

LoadDivGraph( "../dat/img/char/p2.png", 2 , 2 , 1 , 60 , 60 , img_ch[0] ) ;
}                ↑   
        (保存した名前に変更)
戦闘機1枚につき、計2枚の画像(ブーストの表現)。横には2枚。縦には1枚。縦横は60ピクセルです。
                      

白い時空

Re:新しく質問です

#5

投稿記事 by 白い時空 » 15年前

おそらくch_move()の中にある

if(CheckStatePad(configpad.left)>0)//左キーが押されていたら
ch.img+=4*2;//画像を左向きに
else if(CheckStatePad(configpad.right)>0)//右キーが押されていたら
ch.img+=4*1;//画像を右向きに

この部分が原因です。ここで、左右移動時の画像に変更しています。
差し替えた画像では左右移動時の画像がないので、表示されなくなっているのだと思います。
削除してないなら、削除してみてください。

wing

Re:新しく質問です

#6

投稿記事 by wing » 15年前

int img_ch[2][12] ←これも変更する必要があると思います。
(「変更した点は以下の通りです。」になかったので。)

(´・ω・`)

Re:新しく質問です

#7

投稿記事 by (´・ω・`) » 15年前

問題解決しました。

削除していないとちゃんと表示されないんですねー
配列の中身も変更しておきました。

みなさん回答ありがとうございます!

(´・ω・`)

新しく質問です

#8

投稿記事 by (´・ω・`) » 15年前

11章の「エクセルを使って敵の出現データを作ってみよう」を実践しました。

敵機が10機出現して戻って終わり。という流れなのですが、19機も出現してきてしかも敵機同士の間隔が結構
開いています。

追加、変更等も指示された通りに行ったのですが上手くいかず…

まだ変更するべき点などがあればご教授お願いします。

jay

Re:新しく質問です

#9

投稿記事 by jay » 15年前

えっと、まず質問に答える前に(´・ω・`)さんに言わなければならないことがありますね。
掲示板の規約にも書いてある通り、原則として一度質問して問題が解決したら”解決マーク”をつけなければなりません
そして別の質問をしたい時は新しくスレを立てる、これがこの掲示板のやり方だそうです。
あなたはこの掲示板を利用し始めてまだそんなに間がたっていないようですし、これ以上は僕からとやかく言いません
でも次からは気をつけて下さいね(ついでに利用規約をちゃんと読んで下さいね)


で、質問の答えですが
「エクセルを使って敵の出現データを作ってみよう」
に書いてあるとおり、通常の敵はエクセルによってデータを管理されています

プログラム上に問題が無いのならエクセルデータに問題があるのではないでしょうか?
エクセルに19機分のデータが登録されていれば敵も19機出てきます。

まずはそこを確認してみて下さい 画像

(´・ω・`)

Re:新しく質問です

#10

投稿記事 by (´・ω・`) » 15年前

回答ありがとうございます!

現在共にゲーム開発しているメンバーが不在なので後に確認することにします。
指摘ありがとうございます。

利用規約を読まずこの掲示板を利用していました。申し訳ありません・・・
次回から気をつけます。
画像

閉鎖

“C言語何でも質問掲示板” へ戻る