まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
先日公開したSolid State SURVIVORですが、コメント欄にてタイトルが落ちるとの報告を頂きました。
でも自分の所では何度試してみても再現出来なかったのですが、報告を頂いた方のOSがXPだった事もあり、試しに知り合いのXPマシンで検証してみると・・・
なんと、100%バグが再現されました!本来は喜ぶ事ではないのですが、この時はとても嬉しかったです(笑)
ですが、ココからが地獄の始まりでした(汗)
昨日の夕方頃に知り合いの所でバグの修正を試みたのですが全く治らず、それを見かねた知り合いがパソコンを貸してくれました。
で、家に帰って来てからも延々悩み続けて、やっとエラーが出ないようにする事が出来ました!
まず最初に気づいたのは、音を全て再生させない(TSS、WAV共に)ようにするとバグが出なくなると言う事でした。
TSSかWAVのどちらの音を再生させてもバグが出ます。
一瞬プラグインが悪いのかな?とも思ったのですが、良く考えてみると以前公開したDirectX版ボスのサンプルでは、このバグは出なかったんですよね。
基本敵なスクリプトの書き方は、Solid State SURVIVORと同じなので、ボスのサンプルでやっていない事が悪さをしてるのかな?と思い考えてみると
Solid State SURVIVORでは、リプレイファイルを再生させるって所が新たに加わっています。
で、このリプレイファイルを再生させる為に変数の初期化を行っているのですが、変数の中でも配列変数の初期化の方法がおかしかったようで
具体的には↓このように記述していたのを
*************************************
*gamencls
enemy=0 ;検索開始番号
repeat
ef.enemy=0
et.enemy=0
espeed.enemy=0
reh.enemy=0
kaiten12.enemy=0
kaiten13.enemy=0
kaiten16.enemy=0
pang91.enemy=0
jikitamaname.enemy=0
eh.enemy=0
ename.enemy=0
eneh.enemy=0
enehx.enemy=0
enehy.enemy=0
eff.enemy=0
es_kill enemy
enemy++
if enemy>1540 : break
loop
wait 10
tit=0
bairitu=0
combo=0
gameov=0
ky=0
goto *rogo
************************************
↓このように記述するとバグが出なくなりました。
************************************
*gamencls
tit=0
bairitu=0
combo=0
gameov=0
ky=0
ab=0
enemy=0 ;検索開始番号
repeat 1540
ef.enemy=0
et.enemy=0
espeed.enemy=0
reh.enemy=0
kaiten12.enemy=0
kaiten13.enemy=0
kaiten16.enemy=0
pang91.enemy=0
jikitamaname.enemy=0
eh.enemy=0
ename.enemy=0
eneh.enemy=0
enehx.enemy=0
enehy.enemy=0
eff.enemy=0
es_kill enemy
enemy++
loop
wait 10
goto *rogo
************************************
スプライトNOを1540まで設定しているので、バグありの方は初期化後にbreakでループを抜けるようにしていたのですが
そうではなくて、repeat 1540として強制的にループを抜けるようにするとバグが出なくなりました。
でも、なんで出なくなったのかが良くわからないんですよね(汗)
そもそも他のパソコンだと治ってるかわかりませんし^^;
とりあえず修正したファイルをアップしましたので、完成もしていないようなゲームで申し訳ないのですが、バグが出ていた方はもう一度
ダウンロードして頂いて試してみて頂けませんでしょうか?
Solid State SURVIVOR ver1.1(右クリック→対象をファイルに保存で保存して下さい)
宜しくお願い致しますm(_ _)m
それとHSPDXFIX.DLLも間違えて古い物を配布してしまっていたので、最新?の物と差し替えました。
コンティニュー画面の時、本来は黒の半透明のバックが出るようにしていたのですが、古いDLLだと出ないパソコンがあるようです。
本来は↓こんな感じになります。
それと、ちょっと嬉しい事がありました^^
シューティングゲーム好きな方なら一度は見た事があると思われる、弾幕型さんに、なんとこのブログが紹介されていました!
結構前から良く見ていたサイトで、STG関連のニュースは殆どココで仕入れていたんですよね。
で、フリーのSTGなんかも良く紹介されていて、ココに紹介されるのが一つの目標だったので載っているのを見た時は非常に嬉しかったです^^
しかし、ここの中の人のアンテナの広さは凄いですね。いつも何でこんなに情報を掴むのが速いのだろう?と思っていましたが
まさか私のブログまでチェックされていたとは驚きでした^^;
でも自分の所では何度試してみても再現出来なかったのですが、報告を頂いた方のOSがXPだった事もあり、試しに知り合いのXPマシンで検証してみると・・・
なんと、100%バグが再現されました!本来は喜ぶ事ではないのですが、この時はとても嬉しかったです(笑)
ですが、ココからが地獄の始まりでした(汗)
昨日の夕方頃に知り合いの所でバグの修正を試みたのですが全く治らず、それを見かねた知り合いがパソコンを貸してくれました。
で、家に帰って来てからも延々悩み続けて、やっとエラーが出ないようにする事が出来ました!
まず最初に気づいたのは、音を全て再生させない(TSS、WAV共に)ようにするとバグが出なくなると言う事でした。
TSSかWAVのどちらの音を再生させてもバグが出ます。
一瞬プラグインが悪いのかな?とも思ったのですが、良く考えてみると以前公開したDirectX版ボスのサンプルでは、このバグは出なかったんですよね。
基本敵なスクリプトの書き方は、Solid State SURVIVORと同じなので、ボスのサンプルでやっていない事が悪さをしてるのかな?と思い考えてみると
Solid State SURVIVORでは、リプレイファイルを再生させるって所が新たに加わっています。
で、このリプレイファイルを再生させる為に変数の初期化を行っているのですが、変数の中でも配列変数の初期化の方法がおかしかったようで
具体的には↓このように記述していたのを
*************************************
*gamencls
enemy=0 ;検索開始番号
repeat
ef.enemy=0
et.enemy=0
espeed.enemy=0
reh.enemy=0
kaiten12.enemy=0
kaiten13.enemy=0
kaiten16.enemy=0
pang91.enemy=0
jikitamaname.enemy=0
eh.enemy=0
ename.enemy=0
eneh.enemy=0
enehx.enemy=0
enehy.enemy=0
eff.enemy=0
es_kill enemy
enemy++
if enemy>1540 : break
loop
wait 10
tit=0
bairitu=0
combo=0
gameov=0
ky=0
goto *rogo
************************************
↓このように記述するとバグが出なくなりました。
************************************
*gamencls
tit=0
bairitu=0
combo=0
gameov=0
ky=0
ab=0
enemy=0 ;検索開始番号
repeat 1540
ef.enemy=0
et.enemy=0
espeed.enemy=0
reh.enemy=0
kaiten12.enemy=0
kaiten13.enemy=0
kaiten16.enemy=0
pang91.enemy=0
jikitamaname.enemy=0
eh.enemy=0
ename.enemy=0
eneh.enemy=0
enehx.enemy=0
enehy.enemy=0
eff.enemy=0
es_kill enemy
enemy++
loop
wait 10
goto *rogo
************************************
スプライトNOを1540まで設定しているので、バグありの方は初期化後にbreakでループを抜けるようにしていたのですが
そうではなくて、repeat 1540として強制的にループを抜けるようにするとバグが出なくなりました。
でも、なんで出なくなったのかが良くわからないんですよね(汗)
そもそも他のパソコンだと治ってるかわかりませんし^^;
とりあえず修正したファイルをアップしましたので、完成もしていないようなゲームで申し訳ないのですが、バグが出ていた方はもう一度
ダウンロードして頂いて試してみて頂けませんでしょうか?
Solid State SURVIVOR ver1.1(右クリック→対象をファイルに保存で保存して下さい)
宜しくお願い致しますm(_ _)m
それとHSPDXFIX.DLLも間違えて古い物を配布してしまっていたので、最新?の物と差し替えました。
コンティニュー画面の時、本来は黒の半透明のバックが出るようにしていたのですが、古いDLLだと出ないパソコンがあるようです。
本来は↓こんな感じになります。
それと、ちょっと嬉しい事がありました^^
シューティングゲーム好きな方なら一度は見た事があると思われる、弾幕型さんに、なんとこのブログが紹介されていました!
結構前から良く見ていたサイトで、STG関連のニュースは殆どココで仕入れていたんですよね。
で、フリーのSTGなんかも良く紹介されていて、ココに紹介されるのが一つの目標だったので載っているのを見た時は非常に嬉しかったです^^
しかし、ここの中の人のアンテナの広さは凄いですね。いつも何でこんなに情報を掴むのが速いのだろう?と思っていましたが
まさか私のブログまでチェックされていたとは驚きでした^^;
PR
この記事にコメントする
無題
>なんだかバグチェックをさせているようで大変申し訳ないです。
人様の書いたプログラムを読むのもいろいろ勉強になります(^^)お気になさらずに〜
それから弾幕型への掲載おめでとうございます。ktさんのblog自体、1冊の本にできそうな内容ですから紹介文にも思わずうなずいてしまいました。
ところで『Sold State Survivor』Ver1.1をDLしました。今度は内部エラー起きません。問題なく動いています。不具合の絞り込みが神がかってますね〜(笑)すごいです。
後学のために教えていただければと思うのですが、最終行の『goto *rogo』はgosub〜returnから抜け出ちゃっているように感じられるのですがOKなんでしょうか?
それからhspdxfixの半透明ですが、ktさんが書かれているとおり私のノートPCでは半透明が出ませんでした。そういうものかと思っていたのですが、hspdxfixが古かったとは……ってことは、私が今まで使っていたDLLも古かったんですね orz
って、今『Divide by 0』さんの掲示板で新しいhspdxfixDLしてきたのですが、ノートPCでもモーションブラーできるようになりましたよ!(笑)
人様の書いたプログラムを読むのもいろいろ勉強になります(^^)お気になさらずに〜
それから弾幕型への掲載おめでとうございます。ktさんのblog自体、1冊の本にできそうな内容ですから紹介文にも思わずうなずいてしまいました。
ところで『Sold State Survivor』Ver1.1をDLしました。今度は内部エラー起きません。問題なく動いています。不具合の絞り込みが神がかってますね〜(笑)すごいです。
後学のために教えていただければと思うのですが、最終行の『goto *rogo』はgosub〜returnから抜け出ちゃっているように感じられるのですがOKなんでしょうか?
それからhspdxfixの半透明ですが、ktさんが書かれているとおり私のノートPCでは半透明が出ませんでした。そういうものかと思っていたのですが、hspdxfixが古かったとは……ってことは、私が今まで使っていたDLLも古かったんですね orz
って、今『Divide by 0』さんの掲示板で新しいhspdxfixDLしてきたのですが、ノートPCでもモーションブラーできるようになりましたよ!(笑)
無題
keigoさん>
ありがとうございます。
無事、動いたようでよかったです^^
最終行の『goto *rogo』のところは確かにgosub〜returnから抜け出してておかしいです。
で、最初この部分を手直ししてみたのですがバグが解消されなかったので
原因を絞り込む為にあえてこの部分は残していました。
なので、この部分は手直しする予定です。と言うかkeigoさんに指摘されなかったら気づかなかったと思います^^;
hspdxfixは普通に配布されている物だと半透明の時の不具合がおこるようなんですよね。
私もDivide by 0さんの掲示板を見るまで知りませんでした。
色々と検証して頂き有難う御座いました。
今後とも宜しくお願い致しますm(_ _)m
ありがとうございます。
無事、動いたようでよかったです^^
最終行の『goto *rogo』のところは確かにgosub〜returnから抜け出してておかしいです。
で、最初この部分を手直ししてみたのですがバグが解消されなかったので
原因を絞り込む為にあえてこの部分は残していました。
なので、この部分は手直しする予定です。と言うかkeigoさんに指摘されなかったら気づかなかったと思います^^;
hspdxfixは普通に配布されている物だと半透明の時の不具合がおこるようなんですよね。
私もDivide by 0さんの掲示板を見るまで知りませんでした。
色々と検証して頂き有難う御座いました。
今後とも宜しくお願い致しますm(_ _)m
無題
とりあえず気合いを入れてプレイ中なのでゲームの感想など。
・敵の配置と攻撃が絶妙ですね。攻撃は激しいのですが、倒すと弾がアイテムになる中型機の存在で思い切って攻撃に行けるところと、こらえて丁寧にプレイしなければならないところにメリハリがあります。
・自機のビットから発射される弾、ボス第一段階の回転砲台から発射される弾など、しっかり発射される座標が回転に合わせて変化しているところが凝っていていいですね。
・安全策で進もうと思っているのに、絶妙な場所に蜂アイテムが置いてあるので、ついつい取りに行ってしまいます。コンボゲージと合わせてゲーマー泣かせの仕様ですね。やり込むほど熱い展開が待っていそうです。
・なんと言っても面ラストのバキュラでWARNING音が流れた後、一瞬の間を置いてボス曲とともに現れる真っ赤な機体が痺れます。このかっこよさはシューティングならではの楽しみですね。
・バキュラが破壊できるのはなんか嬉しいです(笑)
ボスのプログラムを読んでいて思ったのですが、私は処理に時間がかかるのを恐れてSIN,COSを使わずに三角関数テーブルを用意したりするのですが、実際はSIN,COS使っても全然問題なさそうですね。目から鱗というか、勉強になります。今度から私も使ってみようと思いました。
ところで私のブログで勝手に動画を載せて紹介してしまったのですが……まずかったら削除します。
・敵の配置と攻撃が絶妙ですね。攻撃は激しいのですが、倒すと弾がアイテムになる中型機の存在で思い切って攻撃に行けるところと、こらえて丁寧にプレイしなければならないところにメリハリがあります。
・自機のビットから発射される弾、ボス第一段階の回転砲台から発射される弾など、しっかり発射される座標が回転に合わせて変化しているところが凝っていていいですね。
・安全策で進もうと思っているのに、絶妙な場所に蜂アイテムが置いてあるので、ついつい取りに行ってしまいます。コンボゲージと合わせてゲーマー泣かせの仕様ですね。やり込むほど熱い展開が待っていそうです。
・なんと言っても面ラストのバキュラでWARNING音が流れた後、一瞬の間を置いてボス曲とともに現れる真っ赤な機体が痺れます。このかっこよさはシューティングならではの楽しみですね。
・バキュラが破壊できるのはなんか嬉しいです(笑)
ボスのプログラムを読んでいて思ったのですが、私は処理に時間がかかるのを恐れてSIN,COSを使わずに三角関数テーブルを用意したりするのですが、実際はSIN,COS使っても全然問題なさそうですね。目から鱗というか、勉強になります。今度から私も使ってみようと思いました。
ところで私のブログで勝手に動画を載せて紹介してしまったのですが……まずかったら削除します。
無題
v1.1プレイしました。
エラーはウチの環境では以前のバージョンでも出なかったのですが、直ったようで何よりです。
コンティニュー時の半透明の帯は以前のは出ていませんでした。今回のはちゃんとありました。
ゲーオーバー時にtssファイルの再生が音飛びする問題ですが、「パッドを挿していない」状態だと、フルスクリーンであっても音飛びしませんでした。ウインドウモードではパッドが挿さっていても音飛びはしません。
あと、これは個人的な要望ですが、パッドのボタンコンフィグが出来るようになる予定はありますでしょうか。
メーカーによってボタン割り当てが違うので可能なら嬉しいです。
エラーはウチの環境では以前のバージョンでも出なかったのですが、直ったようで何よりです。
コンティニュー時の半透明の帯は以前のは出ていませんでした。今回のはちゃんとありました。
ゲーオーバー時にtssファイルの再生が音飛びする問題ですが、「パッドを挿していない」状態だと、フルスクリーンであっても音飛びしませんでした。ウインドウモードではパッドが挿さっていても音飛びはしません。
あと、これは個人的な要望ですが、パッドのボタンコンフィグが出来るようになる予定はありますでしょうか。
メーカーによってボタン割り当てが違うので可能なら嬉しいです。
無題
keigoさん>
感想有難う御座います。道中はなるべく、だらだら続かないように気をつけて作ってみました。
でも、調子に乗って作っていたので、ちょっと道中が長すぎたように思っています^^;
ボスの回転砲台は良く見ると、ちょっと発射位置がずれてるんですが、ちゃんとあわせる事が出来ませんでした(汗)
ボス登場シーンは自分でも気に入っています^^本当はガルーダ2のボス登場シーンみたいに背景を横スクロールさせてから登場させたかったんですが、上手く作れませんでした・・・
バキュラには昔の苦い思いをぶつけています(笑)
動画拝見しました。自分の作ったゲームがyoutubeで見れるのって、なんだか変な感じです^^;
自分以外の人のプレイを見たの初めてなので大変興味深く見させて頂きました。
もちろん公開して頂いて全然問題ありません^^
ASDさん>
問題なくプレー出来たようで良かったです^^
TSSの音飛びですが、原因がいまだに追求出来ていないんですよね。
で、御指摘頂いたゲームパッドなんですが、私の所でもASDさんと同じような結果となりました。
更に、パッドを挿して起動させ、その後パッドを抜いて起動させるとFPSが激落ちすると言う不具合も出て来てしまったので
このゲームパッド関係に何か問題がありそうな感じなので、一度調べて見ます。
ご指摘有難う御座いましたm(_ _)m
それとボタンのコンフィグは実装予定です。ホントは実装させてから配布したかったのですが、
なんせ3月末までに公開したかったので、コンフィグまで実装出来ませんでした^^;
感想有難う御座います。道中はなるべく、だらだら続かないように気をつけて作ってみました。
でも、調子に乗って作っていたので、ちょっと道中が長すぎたように思っています^^;
ボスの回転砲台は良く見ると、ちょっと発射位置がずれてるんですが、ちゃんとあわせる事が出来ませんでした(汗)
ボス登場シーンは自分でも気に入っています^^本当はガルーダ2のボス登場シーンみたいに背景を横スクロールさせてから登場させたかったんですが、上手く作れませんでした・・・
バキュラには昔の苦い思いをぶつけています(笑)
動画拝見しました。自分の作ったゲームがyoutubeで見れるのって、なんだか変な感じです^^;
自分以外の人のプレイを見たの初めてなので大変興味深く見させて頂きました。
もちろん公開して頂いて全然問題ありません^^
ASDさん>
問題なくプレー出来たようで良かったです^^
TSSの音飛びですが、原因がいまだに追求出来ていないんですよね。
で、御指摘頂いたゲームパッドなんですが、私の所でもASDさんと同じような結果となりました。
更に、パッドを挿して起動させ、その後パッドを抜いて起動させるとFPSが激落ちすると言う不具合も出て来てしまったので
このゲームパッド関係に何か問題がありそうな感じなので、一度調べて見ます。
ご指摘有難う御座いましたm(_ _)m
それとボタンのコンフィグは実装予定です。ホントは実装させてから配布したかったのですが、
なんせ3月末までに公開したかったので、コンフィグまで実装出来ませんでした^^;
無題
またまた勝手に動画アップしてしまいました。
今度はボス戦の攻略です。もうちょっとでノーミスクリアできそうなんですが……まだ練習がいりそうです。
ソースつけていただいているんでボス戦だけ集中練習してたり……(汗
今度はボス戦の攻略です。もうちょっとでノーミスクリアできそうなんですが……まだ練習がいりそうです。
ソースつけていただいているんでボス戦だけ集中練習してたり……(汗
無題
keigoさん>
ブログ拝見しました。とても詳細に攻略されていて、作った者としては非常に嬉しいです^^
避けかたも、私が想定した方法と違っていて興味深く見させてもらいました。
ちゅうかFPSメチャ安定してますね〜。
私の環境では、結構FPSが上下するので、もっと処理が軽くなるよう色々と考えてる所なんですが
引越しの準備があるので、なかなか進みません^^;
ブログ拝見しました。とても詳細に攻略されていて、作った者としては非常に嬉しいです^^
避けかたも、私が想定した方法と違っていて興味深く見させてもらいました。
ちゅうかFPSメチャ安定してますね〜。
私の環境では、結構FPSが上下するので、もっと処理が軽くなるよう色々と考えてる所なんですが
引越しの準備があるので、なかなか進みません^^;
無題
いつも拝見させてもらっています!
いやぁーとてもとてもすばらしいゲームになっていて感動してしまいました!
僕も少しずつですがゲームをくみ上げていってますのでソースがとても役に立っています!
でちょっと質問なんですが、ファイルの中にあるpicの中に入っている画像は爆発のエフェクトとか自機とか全部一つになっていますけどあれはどうやって一つにしてあるんですか?
いやぁーとてもとてもすばらしいゲームになっていて感動してしまいました!
僕も少しずつですがゲームをくみ上げていってますのでソースがとても役に立っています!
でちょっと質問なんですが、ファイルの中にあるpicの中に入っている画像は爆発のエフェクトとか自機とか全部一つになっていますけどあれはどうやって一つにしてあるんですか?
無題
はじめまして、PCオタといいます。
僕もHSPでゲームを作っています。それで、ここには前来ていろいろ参考になりました。
ゲームはやるのも好きなので、もう一回来てみたら完成していたのでやらせていただきました。
Win98でやっているので結構重いかなと思ったらあまり重くなく、やりやすかったです。
でも、メモリがなくなったのか、他のやったらフリーズしました・・・。(メモリ 128M)
僕もHSPでゲームを作っています。それで、ここには前来ていろいろ参考になりました。
ゲームはやるのも好きなので、もう一回来てみたら完成していたのでやらせていただきました。
Win98でやっているので結構重いかなと思ったらあまり重くなく、やりやすかったです。
でも、メモリがなくなったのか、他のやったらフリーズしました・・・。(メモリ 128M)
カレンダー
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が特に好きで、並木学氏は最高!
ブログ内検索
最古記事