"自作ゲーム"カテゴリーの記事一覧
-
謎なのかなんなのか。
timeGetTime関数が使えませんよ!
この関数を使う下準備は済ませてあるはずですが、
どうも上手くいか無いんですよね~・・「識別子エラー」
windows.hの後にmmsystem.h、そしてwinmm.lib
をを依存ファイルに指定もしくは#pragmaで。
timeGetTime()にカーソルを合わせると定義されている
事は確認できるのですがねぇ、実行すると認識していない
と出てしまいます。そもそもなぜこの関数を使いたいかと
良いますと、各武器のファイアレイトやリロードを時間で
管理したいからです。
幸いなことにEasy3Dの命令でそれに近いものが有りました
ので、それでやるしかないですね。
PR -
関数内での変数宣言はスタック領域と言うメモリ領域に、記録される。
その関数を抜けると自動消滅してしまいます。関数外で定義すると
グローバル変数となり静的領域に記録されます。しかし多すぎると
失敗してしまうそうで。
一度だけ実行される関数で宣言した場合、もちろんその変数の寿命
はその関数を抜けた時で、もしその変数の内容を他の関数に持って
行きたい場合はreturnで値を返すか(この時点でコピー)、グローバル
変数や関数の引数に変数のアドレスを渡し、代入するなどをする必要
がありますね。
自動消滅は変数管理に便利ですが、かといって要領の大きいサイズのグ
ローバル変数を何個も作ると、あまり宜しくない気がします。
そこでグローバルだけど静的領域ではなくヒープ領域に保存すれば積もる
事も無く記憶できる容量も多くなるのでは?という案が出ましたが・・・
ただ、このようなことは教本には載っていないので、実際に試してみる
しかないのでしょうね。実際に試したところ問題なく動作はしますが、
内部的にきちんと働いてくれているのかが気になりますね。アドレス
を見れば大体分かると思いますが、そのために試すのは面倒くさそうですw
例:
int *g_Val = new int();
果たしてどうなのでしょうかねぇ
?
-
さてさて、C++に移行した最大の理由は変数の管理のしやすさと言うことで、
最大限に生かしますよ~。今回初となるのは武器の他にガジェットと呼ばれる
特殊な道具を追加します。
007でおなじみジェームズ・ボンドが使う秘密道具を想像して頂ければお分かり
になりますかな?
現段階で武器には個々ジャム(弾詰まり)、弾丸のスピード、貫通力、2丁持ち、
とう特性を持たせる予定です。(すでに構造体を作成済み)
やはりC++は構造体により変数の管理が楽で良いですね^^
これでいちいち複雑な関数を作らずにすみそうです。 -
放送は土日祝日のみ、にしたいと思います。
と言うのはFPS制作に専念するため。やはり一人で
全て作り上げるのは並大抵のものじゃないと実感です。