忍者ブログ
まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

とりあえずゲーム部分は殆ど完成しました^後はオープニングをどうするか?ぐらいです。
で、隠し要素の部分を作っていっています。
(このブログで書いてる時点で隠し要素でもないような気がしますが^^;)
まずは、DoGAで自機キャラクタを作製
s-WS000061.jpg

次にキャラクターなんとか機で人物キャラクターを作製
s-WS000060.jpg

で、それぞれを足してプレイヤーセレクト用の画像を作りました
s-typec92.jpg
スクリプト作製はこれからです^^;
どんな感じにしようか悩み中なのですが、他の2機体とは違った感じにしようと思っています。

あと、ステージ終了時のボーナス項目を一つ増やしました。
s-WS000062.jpg
コンボ保持ゲージに関するボーナスなのですが、このゲージの上限を覚えておいて
上限値×100がボーナスとして入るように追加しました。
元々、初心者救済のつもりで入れた保持ゲージだったのですが、それだと上級者の人には
物足らないかなぁ?と思い入れてみました。
保持ゲージを上げる為には、近接攻撃を行わなければならないので、スコアアップを狙うと
必然的に難易度があがるかなと。

とりあえず、追加機体が完成したら概ね完成ですので、今週中に完成版をアップ出来たら
よいな~と考えてます^^
PR
HSP本家掲示板を見ていたら、非常に便利なソフトを発見しました。
1度も使用されない変数についてと言うスレッドで紹介されていたのですが
「代入されていない静的変数を列挙するプログラム」と言うもので、ようは一度も使用されていない
変数をピックアップするという物。

これ、非常に便利です。というのも、HSPは変数を使用する為の宣言という物がないので
どこでも簡単に新しい変数を使い始める事が出来ます。
逆に言うと、変数名を間違って書いてもエラーにはならないんです。(プログラム的にエラーに
なる事はあるかもしれませんが)
短いスクリプトなら発見も簡単かもしれませんが、長いスクリプトとなると、その中から変数の
書き間違いを探すのは大変です。
でも、このソフトを使用すれば未使用変数を簡単に探せるので、未使用変数=書き間違い変数
って事で、発見が非常に簡単です^^

試しに使ってみました↓
WS000016.JPG
こんな感じで何行目の何々が未使用って感じで羅列されるので、とてもわかりやすいです。
今までも変数の書き間違いでのエラーで何度も泣かされて来たので、もっと早くに
このソフトに出会っていたかったです^^;

あと、関係ないですがassertという命令を使えば、任意の位置でデバックウインドウを表示
させる事が出来るようです。これも、もっと早くに知りたかった(汗)
リプレイファイルをいっぱい保存出来るようにし、再生時に選択出来るようにする為に
まず、今までステージ毎に別々に保存していたリプレイファイルを一つにまとめました。
これは以前書いた方法で纏める事が出来たのですが、問題はいっぱい保存出来るように
する事でした。

今までなら、リプレイファイルは一つしかないので常に上書きすれば良かったのですが
出来れば、ファイル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
こんな感じで配列変数とリピートを使ってファイルの有無を調べて、リプレイを保存するファイルを
決定しています。

で、ゲーム終了時に保存するかどうかを選択するようにしてみました。
6efad913.jpg
保存するファイル名は空いている数字の若い順番に勝手に選択するようにしました。
選択して保存するようにしようかとも思ったのですが、選ぶのも面倒かなと思いまして。

リプレイ観賞時は、選択して再生するようにしています。
88e15825.jpg
画面の都合上、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以外のジャンルのゲームも作れそうな気はしますが^^;

とりあえず、リプレイ関連は作製がほぼ終わったので(デバックは別として)残りは
@真ボスの攻撃を追加、もしくは変更
@ネームエントリー曲の作製
@エンディングをもうちょっと懲りたい
@ストーリーを考えて、オープニング等も入れたい(でもストーリーなど思いつかないので多分無理)
@隠し要素の追加
と言った所でしょうか。あと、もう一息・・・・・・と思いたい^^;
イージーとハードモードを作っていたのですが、なんか出来てしまいました(汗)
もっと時間掛かると思っていたのに、いざ作りだすとコピペしまくりで数字を変えるだけなので
とってもスムーズに作製する事が出来ました。
こんな事ならc74バージョンに収録出来た気が・・・^^;

後、作ろうと思っている部分は・・・
真ボスの攻撃を追加、もしくは変更
ネームエントリー曲の作製
リプレイファイルを一つにまとめる
リプレイファイルをいっぱい保存出来るようにし、再生時に選択出来るようにする
リプレイ再生をステージ毎に行えるようにする(バグだらけになりそうなので止めるかも)
エンディングをもうちょっと懲りたい
ストーリーを考えて、オープニング等も入れたい(でもストーリーなど思いつかないので多分無理)
隠し要素の追加(今考えているのは、ノーウェイトモード、EXステージ追加、隠し機体追加等。
でもノーウェイトモード以外は時間が掛かるので、一旦公開してからの追加になるかも)
と言ったところでしょうか。

それにしても、一体いつ完成するのかと思っていたましたが、やっと完成が見えて来ました^^
先日アップした修正パッチですが、ちゃんと修正出来てなかったので(汗)
さらに修正パッチをアップしました。

Ver5.0c/Ver5.1c→Ver5.2cアップデートパッチ
【修正内容】
@ステージ5の中ボスを倒すと、たまにエラーが出ていたのをこんどこそ修正
@ステージ5の中ボスを倒すと本体がたまに逃げないのを修正
@ステージ5で敵キャラがたまに別のキャラに変わってしまうのを修正
@ステージ5まで遊んでから、別のステージを遊ぶと背景がおかしくなるのを修正

ステージ5関連ばっかりですね・・・
ステージ5の中ボスを倒すと、たまにエラーが出ていた問題は倒す時の爆発の計算で
小さい数字を大きい数字を割ろうとしていたのが原因みたいだったので、今回こそ直っているはず。

ステージ5まで遊んでから、別のステージを遊ぶと背景がおかしくなるってのが
いまだに良くわかっていなくて、あるスプライト番号をes_effectで変形させると
その変形させたパラメータがずっと残ってしまって、後で遊んだ時にグラフィックがおかしく
なるんですよね・・・
結局、タイトルに戻るときに強制的にes_effectのパラメータを0にする事で回避してるのですが
今までこんな事はなかったので、なぜパラメータが残ってしまうのか良くわかっていません^^;

まぁ、とりあえずバグはなおっていると思うので、また暇があったら調べようと思っています。
Twitter
カレンダー
04 2024/05 06
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 31
最新コメント
[04/20 kt.]
[04/19 うぇむ]
[11/24 kt.]
[11/21 NONAME]
[11/24 kt.]
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
忍者ブログ [PR]