色指定は、GetColorを使おう
これまで初音ミク冒険記の内部では、
色の指定を0xFFaabbccのように定義していました。
これは、この本に書かれていたことを参考にしてたからです。
が、正しくはGetColor(R, G, B)のように指定しないとダメのようです。
DXライブラリの掲示板にある「色指定について」というスレッドに
書籍の著者である大槻さんも 「超本格! サンプルで覚えるC言語3Dゲームプログラミング教室」を 執筆されている際に私がご指摘するまで そのことにお気付きで無かったようなので、 それ以前に執筆された 「14歳からはじめるC言語わくわくゲームプログラミング教室Visual Studio 2013編」では 誤った表現になってしまっているのだと思います (- -;;
とのこと。
かげさんが持っているのは、
2008編の本なので当然間違った状態の頃でして・・・![]()
ということでGetColorを使って正しくしないとダメなことに。
ちなみに環境によって違うというのは、こんな状態です。

上が、かげさんが期待している色で
下が、環境によって発生してしまう色です。
実は、実際にこの表示が出るまで、
先のDXライブラリの掲示板の記事は読んでいたのに放置してました・・・![]()
Windows8.1でVisual Studio 2013でビルドしたものを
Windows7で実行したら、こんなふうになりました・・・
ということで直すことになりました。
例)0xFF008040→GetColor(0, 128, 64)
のように0xが付いている側は16進数で、GetColorの引数は10進数です。
このため、「電卓」を起動してメニュー「表示」-「プログラマ」にして
16進を選んでから80と入力して10進を選ぶことで
128を得るといった16進数→10進数の基数変換が必要です。
それと全部を直せてはいないのですが
メッセージ表示のLuaスクリプトが
2013でビルドすると正常に動くのに
2008でビルドするとバイト数が奇数の時にフリーズするようになりました・・・![]()
デバッグ用に色の名前をメッセージ表示するようにLuaスクリプトを組んだ時に発覚。
色しか変えてないはずなのに・・・![]()
今のところ、Luaから表示するメッセージ表示で半角表示するところは
無かったはずなので、とりあえず放置しておきます。
もし、VisualStudio側やDXライブラリ側が原因の
文字コード関連のバグだとすると修正しても無駄になるかもしれないので
事象などはチケット登録しておいて、ちょっと時間を置くことにします。
| 【固定リンク】 | 【コメント (0)】 | 【トラックバック (0)】
このエントリーへのリンク
トラックバック
この記事へのトラックバックの一覧です: 色指定は、GetColorを使おう:



コメント
このブログの新着コメントをRSSリーダに登録する為のxml