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

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

HSP本家掲示板を見ていたら、非常に便利なソフトを発見しました。
1度も使用されない変数についてと言うスレッドで紹介されていたのですが
「代入されていない静的変数を列挙するプログラム」と言うもので、ようは一度も使用されていない
変数をピックアップするという物。

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

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

あと、関係ないですがassertという命令を使えば、任意の位置でデバックウインドウを表示
させる事が出来るようです。これも、もっと早くに知りたかった(汗)
PR
先日購入したパソコンには無線LANが内蔵されており、11n対応の物でした。
でも、使っていた無線ルータは古いものだったので11bでしか接続出来なかったんですよね。
ちなみに11bは通信速度が11Mbps(理論値)で11nは130Mbps(理論値)なので、およそ13倍です。

かといって、11bでも特に遅い訳でもなかったので、あんまり気にしてなかったのですが
たまたま近所の電気店にいったら、改装セールでとっても安くで無線ルータが売っていたので
思わず購入してしまいました^^
s-DSCF5684.jpg
購入したのは、コレガのCG-WLBARGEというやつ。
コレガというのが気になったのですが、価格コムで見た最安値よりも数千円安かったので
値段に釣られて購入^^;

で、早速設置して速度を測ってみました↓
s-Edge1.jpg
今までなら5Mbpsも出ていれば良い方だったので、かなり満足な結果となりました。
でも、体感速度としてはちょっと速くなったかな~?ぐらいなんですよね・・・
昔、ダイアルアップからCATV(1Mbps)に変えた時は、通信速度の速さに驚愕したものですが
そういう感動はありませんでした。

それにしても良い時代になったもんだ・・・昔はモデムをピーピーガーガー言わせて接続して
出る速度が56Kbps。ちなみに1Mbps=1000Kbpsなので、いかに遅いかわかると思います。
しかもプロバイダ料+電話代まで掛かるというオマケつき^^;
テレホーダイが始まった途端に、通信が重くなったのも良い思い出ですねぇ。
通信の設定もややこしくて、何回もやり直した覚えがあります。
それが、今じゃルータ設置して簡単な設定をするだけで、すぐに繋がって100Mbpsですもんね。
技術の進歩は凄いです。
今後、どうなっていくんでしょうかね?1000Mbpsとかになっちゃうんでしょうか。
そんな速度になっても人間がついていけそうにないですが(汗)

なんにせよ、無事使えて良かったです。どうも私はコレガの製品とは相性が悪いらしく
過去に良い思いがなかったので。
とは言っても、この無線ルータもファームウェアをアップデートするまで通信速度が
安定しませんでしたが、今は問題なく動いてくれています^^
注文していたリフレクスが届きました^^
s-DSCF5683.jpg
体験版やったときは前のパソコンだったので動作もキツかったのですが、新しいパソコンでは
サクサク動いてくれて嬉しい限りです^^
で、早速プレイ。
もう、メチャクチャいいです。演出といい音楽といい、とにかくカッコイイ。
前半面も良いのですが、後半面も盛り上げ方は上手いの一言。
ゲーム的にもショット+反射シールドと言う組み合わせで、シンプルなのに奥が深い感じで
面白いです。
グラフィックも多分レイフォースが好きなんだろうな~的な感じで私好みですし、なにより
2Dでの3D演出が至るところにあって、おっさんにはグッと来る事間違いないでしょう^^
0feba724.jpg
縦穴を昇りつつ、ボスと戦う場面。

0d874ab5.jpg
底からボスが出てくる演出。
とにかく細かい所まで凝っていて、砲台のシャッターとか細かく作ってありますし見ていても
飽きないです。(実際は見てる暇はあんまりないですが(汗))
リプレイ機能が無いのが悔やまれます。

あと、惜しいな~と思ったのが、自機が被弾した時のエフェクトが控え目で良くわからない点。
いつの間にか当たってたって事が多いです。
あと、シールドが満タンになった時は、なにかしら合図があると良かったかな~と。
まぁでも、どちらも慣れれば問題ないレベルだとは思います。
それと、コンフィグの画面モード1280x960ってのが起動出来なかったんですが、私のパソコンには
1280x960の画面モードが無かったようで、1024x768以下なら起動出来ました。

ゲームとしては覚えゲーなので、最初はすぐに死んでいた場面でも何回かやるうちに
クリア出来るようになりますし、ゲームオーバーの度にコンティニューが増えるってのも
良いアイデアだと思いました。
往年のタイトーシューが好きな人なら超オススメだと思います。
そして、また私のゲーム作製時間が削られていくのです(笑)
リプレイファイルをいっぱい保存出来るようにし、再生時に選択出来るようにする為に
まず、今までステージ毎に別々に保存していたリプレイファイルを一つにまとめました。
これは以前書いた方法で纏める事が出来たのですが、問題はいっぱい保存出来るように
する事でした。

今までなら、リプレイファイルは一つしかないので常に上書きすれば良かったのですが
出来れば、ファイル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ステージ追加、隠し機体追加等。
でもノーウェイトモード以外は時間が掛かるので、一旦公開してからの追加になるかも)
と言ったところでしょうか。

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