まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
リプレイファイルをいっぱい保存出来るようにし、再生時に選択出来るようにする為に
まず、今までステージ毎に別々に保存していたリプレイファイルを一つにまとめました。
これは以前書いた方法で纏める事が出来たのですが、問題はいっぱい保存出来るように
する事でした。
今までなら、リプレイファイルは一つしかないので常に上書きすれば良かったのですが
出来れば、ファイル00、ファイル01、ファイル02・・・・・・と保存されていくようにしたかったんです。
でもファイルが有るか無いかをどうやって調べればよいのか?と悩んだり検索したりしてたのですが
ふと、以前そんな命令を使ったような気がするな~と思って調べてみたらありました^^
existと言う命令なのですが、この命令はファイルのサイズを取得する命令なのですが
もしファイルが存在しなかった場合は、-1がstrsizeに返ってくるんです。
なので、こんな感じで↓書けば
exist "./replay/replay0.dat"
if strsize=-1 : bsave "replay0.dat" ,replay,gtime
みたいな感じで書けば、「replay0.datが無ければreplay0.datにリプレイファイルを書き込む」
と言った事が出来るようになります。
逆に if strsize=-1の=を if strsize!-1にすれば、ファイルが有った場合と言う感じで使う事も出来ます。
実際のゲーム内では
dim replaycnt,18
repeat 18
exist "./replay/replay"+replaycnt.cnt+".dat"
if strsize=-1 : fname="./replay/replay"+replaycnt.cnt+".dat" :break
loop
こんな感じで配列変数とリピートを使ってファイルの有無を調べて、リプレイを保存するファイルを
決定しています。
で、ゲーム終了時に保存するかどうかを選択するようにしてみました。
保存するファイル名は空いている数字の若い順番に勝手に選択するようにしました。
選択して保存するようにしようかとも思ったのですが、選ぶのも面倒かなと思いまして。
リプレイ観賞時は、選択して再生するようにしています。
画面の都合上、18ファイルまで保存出来るようにしました。
それにしても、もっとカッコイイデザインにならんもんかと思うのですが、こういうのは難しいですねぇ。
とりあえずフォントにMSゴシックを使ってる時点でダメダメな気がします。
でも、画像で文字を表示させようとすると、とっても大変なんですよね・・・かといってMSゴシック以外の
フォントを使うと、他のパソコンに入っていない可能性もありますし、難しい所です。
あと、ファイルの情報がわかりやすいように、自機タイプ/ゲームモード/オートボムの有無/
FPSアベレージ/到達ステージ数/スコアを表示させるようにしてみました。
FPSアベレージってのは、FPSの平均値で処理落ちの目安として入れてみました。
計算方法も簡単で、毎フレームごとにFPS数を足していって、それをフレーム数で割るだけです。
例えば
1フレーム目 FPS 60
2フレーム目 FPS 55
3フレーム目 FPS 50
だとしたら
(60+55+50)÷3でFPSアベレージは55
みたいな感じで計算しています。
それにしても、ゲームを作り始めて思ったのがSTGを作りたかったはずなのに、STG部分以外の
作製もかなり多い事です。
タイトル、オプション、キーコンフィグ、エンディング・・・多分全作製工程の1/3位は時間掛かってるんじゃ
ないかと思います。
でも、そのお陰でSTG以外のジャンルのゲームも作れそうな気はしますが^^;
とりあえず、リプレイ関連は作製がほぼ終わったので(デバックは別として)残りは
@真ボスの攻撃を追加、もしくは変更
@ネームエントリー曲の作製
@エンディングをもうちょっと懲りたい
@ストーリーを考えて、オープニング等も入れたい(でもストーリーなど思いつかないので多分無理)
@隠し要素の追加
と言った所でしょうか。あと、もう一息・・・・・・と思いたい^^;
まず、今までステージ毎に別々に保存していたリプレイファイルを一つにまとめました。
これは以前書いた方法で纏める事が出来たのですが、問題はいっぱい保存出来るように
する事でした。
今までなら、リプレイファイルは一つしかないので常に上書きすれば良かったのですが
出来れば、ファイル00、ファイル01、ファイル02・・・・・・と保存されていくようにしたかったんです。
でもファイルが有るか無いかをどうやって調べればよいのか?と悩んだり検索したりしてたのですが
ふと、以前そんな命令を使ったような気がするな~と思って調べてみたらありました^^
existと言う命令なのですが、この命令はファイルのサイズを取得する命令なのですが
もしファイルが存在しなかった場合は、-1がstrsizeに返ってくるんです。
なので、こんな感じで↓書けば
exist "./replay/replay0.dat"
if strsize=-1 : bsave "replay0.dat" ,replay,gtime
みたいな感じで書けば、「replay0.datが無ければreplay0.datにリプレイファイルを書き込む」
と言った事が出来るようになります。
逆に if strsize=-1の=を if strsize!-1にすれば、ファイルが有った場合と言う感じで使う事も出来ます。
実際のゲーム内では
dim replaycnt,18
repeat 18
exist "./replay/replay"+replaycnt.cnt+".dat"
if strsize=-1 : fname="./replay/replay"+replaycnt.cnt+".dat" :break
loop
こんな感じで配列変数とリピートを使ってファイルの有無を調べて、リプレイを保存するファイルを
決定しています。
で、ゲーム終了時に保存するかどうかを選択するようにしてみました。
保存するファイル名は空いている数字の若い順番に勝手に選択するようにしました。
選択して保存するようにしようかとも思ったのですが、選ぶのも面倒かなと思いまして。
リプレイ観賞時は、選択して再生するようにしています。
画面の都合上、18ファイルまで保存出来るようにしました。
それにしても、もっとカッコイイデザインにならんもんかと思うのですが、こういうのは難しいですねぇ。
とりあえずフォントにMSゴシックを使ってる時点でダメダメな気がします。
でも、画像で文字を表示させようとすると、とっても大変なんですよね・・・かといってMSゴシック以外の
フォントを使うと、他のパソコンに入っていない可能性もありますし、難しい所です。
あと、ファイルの情報がわかりやすいように、自機タイプ/ゲームモード/オートボムの有無/
FPSアベレージ/到達ステージ数/スコアを表示させるようにしてみました。
FPSアベレージってのは、FPSの平均値で処理落ちの目安として入れてみました。
計算方法も簡単で、毎フレームごとにFPS数を足していって、それをフレーム数で割るだけです。
例えば
1フレーム目 FPS 60
2フレーム目 FPS 55
3フレーム目 FPS 50
だとしたら
(60+55+50)÷3でFPSアベレージは55
みたいな感じで計算しています。
それにしても、ゲームを作り始めて思ったのがSTGを作りたかったはずなのに、STG部分以外の
作製もかなり多い事です。
タイトル、オプション、キーコンフィグ、エンディング・・・多分全作製工程の1/3位は時間掛かってるんじゃ
ないかと思います。
でも、そのお陰でSTG以外のジャンルのゲームも作れそうな気はしますが^^;
とりあえず、リプレイ関連は作製がほぼ終わったので(デバックは別として)残りは
@真ボスの攻撃を追加、もしくは変更
@ネームエントリー曲の作製
@エンディングをもうちょっと懲りたい
@ストーリーを考えて、オープニング等も入れたい(でもストーリーなど思いつかないので多分無理)
@隠し要素の追加
と言った所でしょうか。あと、もう一息・・・・・・と思いたい^^;
PR
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
リンク
カテゴリー
最新記事
(04/04)
(12/26)
(12/25)
(11/17)
(10/11)
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
最古記事