プログラム

SetTransform()とか

個人的に謎なんですが、 D3DXMATRIX world, view_to_screen; DrawPlate( 0, 0, 0 ); // 全軸ビルボード (カメラの逆行列作成) world._11 = g_camera._11; world._12 = g_camera._21; world._13 = g_camera._31; world._21 = g_camera._12; world._22 = g_cam…

win7(64bit)の悲劇 - 「下位互換」って大事じゃないのかね -

さぁ、忘れた頃(?)にやってくる、このシリーズ(何) 今回はこの前も少し書いていた「XPとの互換性」に関して。 Win7にした関係で、VC++2008exで開発中であるわけですが、 「開発一段落したし、ディスプレイ用マシン(XP)で確認しますか…。」と試してみると、 …

win7(64bit)の悲劇 - どこから湧くのよこの警告 -

多少間が空いたけれども 今回はWin7というよりは、VC2008以降のお話。 普通にC標準関数を使っていると、こんな警告がわんさか出てくるかと思うんですが… 1>...\windows_main.cpp(147) : warning C4996: 'fopen': This function or variable may be unsafe. C…

win7(64bit)の悲劇 - どの「STR」が正解なのよ -

まだまだ悲劇は終わらない… VC2003→VC2008への移行のお話。 SetWindowText()あたりを使っているとわかるけど、 何かというと「w_char」を求められる…。 今までLPSTR(=char*)で済んだ箇所にもLPWSTRを求められること多数。 「TEXT()」マクロを使えば変換でき…

DLLにご用心

職材用に昔の自作ゲームを漁っていたら、win7だと不具合持ちなのがあるある。 特に気になったのが、自作音源の音割れ…というより、バッファリング不正。 しかも、普通に鳴るのもあるっぽいのはナニゆえ? …と思ったら、 どうもDLL読み込みで鳴らしているもの…

win7(64bit)の悲劇 - 「Current」Directoryってドコ? -

というわけで、まさかの続編。fpritfの書き込み先のお話。 この前書いた通り、win7だとファイル書き込みが不自由になっているんですが、 その対策の弊害(?)で、カレントディレクトリ操作に注意が必要になっているようです。 どういうことかと言うと… FILE *…

win7(64bit)の悲劇 - コンパイル通らなくね? -

で、VC2008で昔のプロジェクトをビルドしていたら、 なぜかビルドできないものが? こういうことらしい。 要するに メンバ関数型の関数ポインタを使う際はポインタで渡してね。 ということかね。 条件は限られているけど、エラーにするのはいかがなもんでし…

win7(64bit)の悲劇 - fopen()にご注意 -

で、 やっとかいはつできるー! と思ったら、異様ーに重い。 デバッグができない( 前頁参照 )ので、要所要所で時間を計測してみると、 ファイル操作が尋常じゃなく重い。 何か一言書き出す度に40msとかアリエナイ…。 ただ、「ファイル書き込み」なんて標準機…

win7(64bit)の悲劇 - VC.NETで開発できるのか? -

はてさて、大学生時代から使い続けていたPCがお亡くなりになったので、 少し前にメインPCを新調しました。 その関係で開発環境が、 XP(32bit)→7(64bit) に変更に。 環境の変化はあれどそのままいけるかなーと思ったら そんなことはなかったんだぜ!という話…

Hexの座標系とか

ぬ?よくよく考えてみると、Hexの座標の扱いってかなりカオスじゃね? というお話。 Hexのある位置からの等距離感覚で駒を配置すると、 2 2 2 2 1 1 2 2 1 0 1 2 2 1 1 2 2 2 2こんな感じで広がっていくと思うんだけど、 レバーで操作するとした場合、 …上下…

各型の最大値とか

charとかshortならいざ知らず、longとかになると覚えて(いる場合もあるけど)いられないよね。 ということで、 ・データ型定数(CRT) ・色々なデータ型の最大値、最小値 「LIMITS.Hに定義されています。」と書いてあるけれど、windows.hやvectorあたりにも含ま…

回転速度比較(微違)

DirectXの「回転」を扱うものの処理速度を比較しましょうのコーナーです。 (いつからコーナーになった!?) ※例によって何となくザックリと適当に計っているので参考程度でお願いいたします。

__stdcallに関する注意

__stdcallな関数を関数ポインタで使いたいときとか。

DLLの中は別世界

スクリプトをゲームに実装していて気付いたこと。 いやま、前から知っていたこともあるけど。

スクロール方向によらない移動

何となく、沙羅曼蛇みたいな感じのゲームを作ろうとしたとき、 3D座標準拠で作ろうとすると、少し困ったことが起こります。 いろいろとあると思うけど、とりあえずパッとサイデリア思い浮かんだのは、 自機の移動方向と入力方向の対応関係ですか。 まぁ、行…

直したので、

if文を直し終わったので、早速本編のザコに組み込んでみる。 …ついでに、負荷がどんなものか見てみる。 (5年以上使い込んでいるマシンだったり、デバッガ上起動だったり、windowモードだったりなので、そんなに当てにならないと思うけど。) 一応、以下スペッ…

「if」の実装

大丈夫かと思っていた汎用スクリプトだけど、どうもif関連の挙動がおかしい…。

waveファイルに関係ないデータを埋め込む

突然ですが、waveファイルがwaveファイルと認識されて演奏可能になる条件ってなんでしょうね? 詳細はちょいと不明ですが、大体↓な感じ。 ・最低限のヘッダが構成されている。 (RIFF/WAVE/fmt /dataの各チャンクが正確に定義されていること。) ・上記「RIFF…

今更フラッシュ!(技名)

前述の通り、少しmixiアプリを組んでいる関係上、今更ながらflashに手を出してみてます。*1 いやま、flash自体は昔少しかじったことがあったんですが、今回はActionScript主体で比較的真面目にやってます。 で、Javascriptとか特にそうなんですけど、 僕はこ…

コンストラクタ事情

C++でコンストラクタを記述している時に発覚した事実。 「C++はC#と違ってコンストラクタ内でコンストラクタが使えるんだよね」 ということで、 ENEMY::ENEMY( int X, int Y, int Z ) { x = X; y = Y; z = Z; } ENEMY::ENEMY( int X, int Y, int Z, int T ) …

ランダムを使って確率操作

某スクリプトにて、↓な記述を発見。 trigger = ifelse( (Random % 3)=0, A, ifelse( (Random % 2)=0, B, C ) )これで、A・B・Cの各事象が1/3の確率でランダムに発生するんだとか。 本当かいな?と思ったので、検証してみる。

ゲームを作る上であると便利なもの その2 - obj設置基本クラス -

第一回「obj基本クラス」 というわけで、第二回。 今回はobj設置なお話。

「バグ」と「仕様」

・プログラマ(開発側)に有利なものは「仕様」、 ・不利なものは「バグ」。 …なわけはないか(苦笑) ・プログラマ(開発側)の想定範囲内のものは「仕様」、 ・想定外(もしくは対処外)のものは「バグ」。 というところですか。

JavaScriptの引数とか

微妙に納得いってなかったんだけど、 あれは値じゃなくてobjectが渡されると考えた方がいいのかも。 function Func( num ) { var n = 0; //n = n +num; // エラー(…だったと思う) n = n +eval(num); } こんな感じで引数に数値を渡してそれを扱おうとしても、…

MIDI音源のディスプレイに何か表示してみる

プログラムかどうかあやしいけど。 以下、今回の参照元。 ・音源のディスプレイに文字を表示させてみよう。 ・エクスクルーシブで自由自在(InternetArchiveから拾い上げたもの)

関数ポインタ追記

関数ポインタのうまい使い方を書き忘れてた。 同じ書式で重い処理と軽い処理を同居させられます。

関数ポインタの使い方?

今回は「関数ポインタ」に関してなんとなく。 まず一言。 C++、Java等の ・「関数のオーバーロード」 ・「関数のオーバーライド」 あたりが使えない・理解できないなら、 使わない方がいい、というか使ってはいけない。 なぜなら、関数ポインタを使わなくて…

スレッド生成を少し使いやすくする

何となくスレッド生成周りをまとめるついでに、 少し互換性(?)も上げてみる。

C#で文字列複写

参照系の参照を渡した先で変更しても、元が変更されてしまう模様。 ・具体例 string str_a = "abc", str_b = str_a; // 参照を渡す // 渡した先で変更すると… str_b = "123";こうすると、「str_a」「str_b」共に「123」が入っています。 …まぁ、参照を渡して…

iniファイルアクセスに潜む罠

今時iniファイルですか という話もあるとは思うけど、 何と言っても 「インストール不要」で「アクセスが楽」な設定ファイルということで、 僕はよく使っています。 (一応、僕のゲームに使っている 「Config.ini」 は基本的にどのゲームでも使えるようになっ…