トップページ > 記事閲覧
色指定について
名前:ittami 日時: 2015/05/06 15:55

はじめまして。 ittamiと申します。 プログラミングを学ぶため、最近「14歳からはじめるC言語わくわくゲームプログラミング教室Visual Studio 2013編」を購入しました。DXライブラリ VisualC++用(Ver3.13f)をダウンロードし、88ページのコードを入力し実行したところ、塗りつぶしの色が書籍の解説では水色になるはずなのですが、黄色なりました。 DrawBox(0, 0, 120, 120, 0x00FFFF, TRUE)で黄色になります。試しに DrawBox(0, 0, 120, 120, 0xFFFF00, TRUE)としたら水色になりました。 旧バージョンのVisualC++用(Ver3.13d)を試したところ、 DrawBox(0, 0, 120, 120, 0x00FFFF, TRUE)で水色、 DrawBox(0, 0, 120, 120, 0xFFFF00, TRUE)で黄色になり、書籍の内容通りになりました。 バージョンアップで仕様が変更になったのでしょうか? よろしくお願いします。
メンテ

Page: 1 |

Re: 色指定について ( No.1 )
名前:管理人 日時:2015/05/07 06:57

はじめまして、DXライブラリの管理人です > バージョンアップで仕様が変更になったのでしょうか? 仕様は変更してませんが、Direct3D 11 を使用した場合の色の値の意味は変化しました 何か変な表現になってしまいましたが、元々色の値の意味は実行環境によって変化する 仕様になっていて、それに対応するために関数 GetColor を使用して取得するようになっているので、 「14歳からはじめるC言語わくわくゲームプログラミング教室Visual Studio 2013編」の88ページの プログラムのように直接値を指定するのは一般的にはしません ( 例えば今回のバージョンアップ以前でも 16bit カラー環境では 0x00FFFF は 水色ではなく白となります ) なので、「14歳からはじめるC言語わくわくゲームプログラミング教室Visual Studio 2013編」では 「0x00FFFF は水色である」という表現がされていますが、それは誤りで正しくは 「デスクトップ画面の設定で 32bit カラーの画面になっていて( フルスクリーンモードの場合は SetGraphMode の第三引数が 32 で呼び出していて )、且つ Direct3D 9 を使用した場合は 0x00FFFF は水色になる」となります こちらの書籍の著者である大槻さんも「超本格! サンプルで覚えるC言語3Dゲーム プログラミング教室」を執筆されている際に私がご指摘するまでそのことにお気付きで 無かったようなので、それ以前に執筆された「14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編」では誤った表現になってしまっているのだと思います (- -;; ( 本件に付いては大槻さんにご連絡をしておきました ) というわけで、長くなってしまいましたが、色の値は GetColor を使用して取得するようにしてください m(_ _)m
メンテ
Re: 色指定について ( No.2 )
名前:ittami(解決) 日時:2015/05/07 11:17

こんにちは。ittamiです。 プログラミング初心者の初歩的な質問に、丁寧に解説していただき恐縮しております。 おかげさまで疑問が晴れました。ご教示いただいた通りGetColor関数を使用して 勉強を続けていこうと思います。ありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存