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

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

リプレイの不具合を直してからアップデートしようと思っていたのですが
一向に直る気配がないので、他の不具合ぶぶんの修正と解像度の変更を追加して
Ver6.4として公開します↓

Solid State SURVIVOR Ver6.4(右クリック→対象をファイルに保存で保存して下さい)
今回の変更点はコチラ↓
ステージ5で、隠しアイテムが別のキャラクタに変化してしまうバグを修正
タイトル画面での誤字を修正。serect→select
タイトル画面でボタン表示が間違っていたのを修正
自機セレクトの時計表示がおかしかったのを修正
ウィンドウモード時に画面解像度を変更できるよう変更
 リプレイ機能を暫定廃止
ステージ3で隠しアイテムが11個出現していたので10個に修正

以前のバージョンから設定を引き継ぐ為には・・・
キー設定や、隠し機体などの設定はconfigフォルダを上書き
ハイスコアはhiscoreフォルダを上書き
で反映されるはずです。


まず画面解像度の変更機能についてですが、オプション画面で変更でき
32x24ドットづつ拡大縮小出来るようにしてみました。
設定ファイルに自動的に保存されるので一度変更すればOKです。
s-WS000113.jpg
320x240ドット時

s-WS000116.jpg
1440x1080ドット時
但し、解像度を変更すると処理が重くなってしまうので非力なマシンではツライかもしれません。

そして、リプレイ機能は暫定で廃止しました。
また、何か原因がわかれば修正しようとは思っていますが、現状の不具合が残ったままの
バージョンだと、それが気になってしまって次のゲーム作製も行えない感じだったので
自分の中で一つの区切りをつけたくて、暫定廃止という事にしました。
なので、ひょっとしたら一年後とかに直ってるかもしれませんし、ずっと直らないかもしれません。

と言う事で、Solid State SURVIVORの開発はとりあえず終了です。(バグフィックスなどは行いますが)
2006年の4月からプログラムの勉強を始めて2年半。本当にゲームなんて作れるのだろうか?と
不安でしたが、それなりに作る事が出来ました。
特に、作り始めの頃は何度も挫折しそうになったりもしたのですが、このブログのお陰で
モチベーションを保つ事が出来たと思います。いつも見て頂いているみなさん有難う御座います^^

ゲームを作製してみて感じた事。
@頭で考えるよりも、とりあえずプログラムを動かして考えた方が理解は早い
サンプルプログラムなんかの数字を自分で変更して実行する、みたいな事を
繰り返していった方が、本を読んで理解するよりも判りやすかったです。

@わからない事は悩まずに後回し。出来る事からやる。
悩んでしまうと、その部分から先に進めませんし、非常にやる気が削がれます。
出来る事からやっていけば、それに付随して理解できる時もありますし。
個人的には配列変数を理解するのが一番大変でしたが
わからないので後回し→普通の変数をいっぱい使って作製→コレを纏めれば良いんじゃね?
→ああ!ここで配列変数か!って感じで理解していきました。

@最初は簡単な物を作ってプログラムの仕組みを覚えた方が良い
最初から壮大な物を作ろうとすると、モチベーション保つのが非常に大変だと思います。
まずは、プログラムする方法を覚えてから、本格的に作り始めるのが良いかと。

@行き当たりばったりで作製すると、後で修正するのが大変
私がまさにコレなのですが、当初はあまり何も考えずに作っていったのですが
後から追加、後から追加でプログラムがメチャクチャになりますし、追加するのも大変です。
私の場合、特に苦労したのがモードセレクト。
最初はそんな物入れる気もなかったので、イージーとハード用に一から追加する事に
なってしまって大変でした。

@勉強した事をずっと覚えておくのは大変なので、メモ等に残しておくと便利
頻繁に使うプログラム等は覚えておけるのですが、たまにしか使わない物などは確実に忘れます。
忘れてしまうと、また勉強しなければならず効率が悪いです。
ブログなんかに書いておけば、後でそのエントリを見れば思い出すのも早いので
メモっておくのは非常にオススメです。

と言った所でしょうか。
と言う事で、今後は次回作に向けて頑張って行こうかと思っております。
まずは、C++とDXライブラリを使ってみて(使えるようになるのかわかりませんが^^;)
HSP+HSPDXFIXとの実行速度の差を比べてみたいんですよね。
あまりにも差があるんだったらDXライブラリに移行したいですし、大して変わらないんだったら
HSPの方が慣れているので良いですし。
そして、次回作はどんなSTGを作ろうかな~と色々と妄想中です^^
PR
リプレイを実装しようと思った時に作製したのが、以前書いたpeek poke命令を使用した保存方法
でした。
そして、リプレイの不具合の原因がひょっとしたらpeek pokeにあるんじゃないかと思って
メモリノートパッド命令を使用した保存方法を試してみたので、その方法を書いておきます。
ちなみに結論から言うと、リプレイの不具合は直りませんでしたorz

スクリプトはコチラ↓
メモリノートパッド命令を使用したリプレイ保存スクリプト
動かすとこんな感じ
s-10_23.jpg
■が敵、●が敵弾、▲が自機で、敵弾に当たるとリプレイを保存して、再生かゲームプレイかを
聞いてきます。

メモリノートパッド命令は使用方法も殆どpeek poke命令と同じ様な感じなのですが
指定した変数が必ず文字列になるので、intやstrで変換する必要はあります。
あと、リプレイファイルが簡単に覗けてしまうのも難アリかも。
でもnoteadd命令は、最初にリプレイファイル用に確保したメモリサイズを超えても
自動的にメモリを確保してくれるので、バッファオーバーフローにならないのは便利です。
サンプルスクリプトではテキストファイルに保存していますが、拡張子はなんでもOKみたいなので
replay.datとかにした方がソレっぽいかな?

かなり期待してメモリノートパッド命令に置き換えてみたのですが、結局リプレイの不具合は直らず
なので、リプレイ部分の不具合ではなく、ゲーム部分に何か問題があるのでは無いかと
思いはじめているのですが、何が原因なのかは全く見当がつきません^^;
ウインドウ表示の時に画面サイズを変更する事が出来ないのだろうか?
と以前考えた事があったのですが、当時試して見た時はウインドウサイズだけ大きくなって
ゲーム画面は大きくする事が出来ずに諦めていました。
こんな感じ↓
s-WS000111.jpg
es_screenのウインドウサイズ指定を大きくしただけです。
この方法では、結局全てのスクリプトを拡大用に変更する必要があり現実的ではありませんでした。
ところがHSP本家掲示板を見ていたら、こんな方法があったのか!と言う方法が
hspdxfixの画面コピーと言うスレッドで紹介されていました。
しかも紹介されていたのは以前ホーミングレーザーの件でお世話になったエコQさんです。
この人はホント凄いな~と感心するばかりです^^

具体的な方法はhspdxfixの画面コピーのスレッドに紹介されているので省きますが
使用する命令はwidthのみ。(厳密には違いますが)
widthは画面サイズを変更する命令で、ヘルプを見てみると
**************************************************************************
ウィンドウのクライアントサイズ(実際に表示される大きさ)とウィンドウ表示
位置を変更します。
クライアントサイズは、screen命令やbuffer,bgscr命令で初期化された画面サ
イズより大きくすることはできません。
**************************************************************************
とあります。
ちゅうか、HSPDXFIXを使用した時点で、HSP標準命令の画像処理系?命令なんて使用出来ない
ものだとばかり思っていましたが、widthで画面サイズを変更するとちゃんと変わるんです!
例えば・・・
s-WS000110.jpg
↑何も設定しないで起動させた状態。640x480ドット

これをwidth 1280,960として起動させてみると・・・
s-WS000109.jpg
ちゃんと2倍にして表示してくれました^^
これはイイ!って事で、設定メニューに組み込もうかと思っています。
でも古いPCやグラボだと、ソフトウェアによる拡大縮小になるようで、動作が重くなるみたいなので
その辺の注意は必要かも。

ちなみに、画面サイズはドット単位で縦横比率も関係ないので、こんな事も出来ます↓
s-WS000108.jpg
昔の中国のカンフー映画みたいだ(笑)

あとwidthのヘルプにもあるように、screen命令やbuffer,bgscr命令で初期化された画面サ
イズより大きくする事は出来ないので、最初にscreen 0, ginfo_dispx,ginfo_dispy等の
(ginfo_dispx,ginfo_dispyはデスクトップのサイズ)
大きくしたい最大値を記述する必要はあります。


それにしても、リプレイの不具合が直らない。コレ言うの何回目だ^^;
もう自分で思いつく改善方法は出尽くしてしまって、何をしたら良いのかも判らない状態なんですよorz
なので、リプレイに関しては無かった事になるかも(汗)
本当は、さっさと完成させてHSPコンテスト用に何か作製したかったんですが
それも出来ずじまいですし。
あと10日で何か作れないかな~なんて思ってるんですが、なかなかアイデアが纏まりません^^;
リプレイの不具合を直そうと思って、アレやコレやと試しているのですが全く出口が見えて来ません。
リプレイ用の変数を用意して纏めてみたり、以前のようにファイルをバラバラにして記録してみたり
自機の座標を記録するようにしてみたり、読み込み画像形式を変えてみたり、
HSPのバージョンを変えてみたり、HSPDXFIXのバージョンを変えてみたり
アレしてみたり、コレしてみたり・・・・・・・・・・・・・・・・・・・・・・・・直らない(涙)

記録したパソコンだと、ちゃんと再生されるのですが・・・
WS000104.JPG
検証用にステージ毎のカウントタイムを表示させてみると、このカウントタイムがズレてしまう様子。
でも、なぜズレるのかが判らないんですよね。
同じプログラムなのに何故?と言った感じです。

一つ判っている事はズレる場合は、どのパソコンでも全く同じズレ方をするって事です。
逆に言うと、記録したパソコン以外では、どのパソコン(私が試した範囲ですが)でも
全く同じ動きをするって事です。

当初思っていたのは、パソコン毎に微妙に計算が違っていてズレてるのかな?と思ったのですが
もしそうだとすると、全く同じ動きになるってのはおかしいと思うんですよね。
でも原因がわからないorz
ちゃんとリプレイが動いていた時期もあったので、何か原因があると思うのですが・・・
9/19 PM15:20追記//
//自機レーザーが画面上部ですり抜けるのを修正
//Ver表記は6.3のままです。
Solid State SURVIVOR Ver6.3(右クリック→対象をファイルに保存で保存して下さい)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Solid State SURVIVORをVer6.3にアップデートしました。
アップデート内容はコチラ↓
ステージ3ボス第一形態から第二形態に以降しない事があったのを修正
リプレイの不具合をちょっと修正(この修正で記録したパソコンなら正常に再生されるようになった・・・はず)
リプレイ再生時は、強制的にポーズを解除するように変更
リプレイ選択画面でリプレイを選択して、その後タイトルに戻るとモードやスコアがおかしくなるのを修正
敵弾が見にくい場面での敵弾の色を変更

ファイルはコチラ↓
Solid State SURVIVOR Ver6.3(右クリック→対象をファイルに保存で保存して下さい)

まず、ステージ3ボス第一形態から第二形態に以降しないバグですが
ひじろぐさんでご報告があり調べてみると、どうやらボス本体+羽に同時に近接攻撃を行うと
ボスの体力が減りすぎて、第二形態に移行するスクリプトを読みに行かなかった様子。
なので、第ニ形態に移行する為の幅を、ちょっと大きく取るように変更しました。

で、肝心のリプレイなのですが、リプレイには二つの不具合がありました。
1.起動の第一回目に記録して、第一回目に再生しないと正常に再生されない。
2.その正常に再生されるファイルでも、記録したパソコン以外では正常に再生されない。

1の不具合については、変数の初期化が上手くいってないのだろうと思い、デバックウィンドウと
にらめっこしながら、0になってない変数を探し、ゲーム開始時に0になるようにしてみたら
何回再生させても、起動の第一回目で記録しなくて、正常に再生されるようになったので
多分、直ったのではないかと・・・思いたい^^;

でも、2の不具合がやっかいで、記録したパソコンで正常に再生されるファイルでも、他のパソコンで
再生させると、ズレるんですよね。
しかも、特定の場所とかでもなく、どういうタイミングでズレるのかが全くわかりませんorz
でも、ズレ方はどのパソコンでも同じズレ方をするので、何か原因があると思うのですが・・・

あと、4面等の赤系の背景の時に敵弾がピンクだと見にくいかと思って色を変更してみました。
s-WS000100.jpg
ちょっとは見えやすくなったと思います。

それと関係無いですが、HPフリー音楽素材のs3bossをちょっと変更しました。
メロディの音量を上げて、ドラムにおかずを足してみました。
Twitter
カレンダー
02 2024/03 04
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]