色管理クラス
Posted: 2008年5月04日(日) 16:05
はじめましてmegmilkといいます
VisualC++2008EE と DXライブラリを使いRPGを作っているのですがその中の色の管理について質問です
今まで構造体を使い
ヘッダファイルにて
typedef struct{
int White;
int Black;
}g;
g Color;
と構造体をつくっておいて
ロード関数
void load(void){
Color.White = GetColor(255, 255 , 255);
Color.Black = GetColor(0 , 0 , 0);
}
としてから
DrawFormatString( 0 , 0 , Color.White ...
といった感じで問題なく使用できていたのですが
せっかくC++を使っているのでオブジェクト指向を意識して構造体ではなくクラスを使って色を管理しようと思いました。(色管理用のヘッダファイルさえうつしてしまえば違うプログラムでも同じように色を使用できるようにしたかったため)
そこで
color.h
class color_class{
public:
int White;
int Black;
color_class(){
White = GetColor( 255 , 255 , 255);
Black = GetColor( 0 , 0 , 0);
}
};
#ifdef __COLOR_H__
color_class Color;
#else
extern color_class Color;
#endif
というヘッダファイルを各cppファイルでincludeして
DrawFormatString( 0 , 0 , Color.White ...
と使用してみたところコンパイルは問題なくできるのですが色が黒のままでした。
ためしに
DrawFormatString( 200 , 200 , GetColor( 255 , 255 , 255) , "色%d" , Color.White);
という一文をいれてみたところ
色0
と表示されました。
これはColor.WhiteにGetColorの数値が入っていないということでしょうか?
まだクラスについて勉強しはじめたばかりなのですがcolor_classになにか致命的なミスがあるのでしょうか?
ご教授ねがいます。
VisualC++2008EE と DXライブラリを使いRPGを作っているのですがその中の色の管理について質問です
今まで構造体を使い
ヘッダファイルにて
typedef struct{
int White;
int Black;
}g;
g Color;
と構造体をつくっておいて
ロード関数
void load(void){
Color.White = GetColor(255, 255 , 255);
Color.Black = GetColor(0 , 0 , 0);
}
としてから
DrawFormatString( 0 , 0 , Color.White ...
といった感じで問題なく使用できていたのですが
せっかくC++を使っているのでオブジェクト指向を意識して構造体ではなくクラスを使って色を管理しようと思いました。(色管理用のヘッダファイルさえうつしてしまえば違うプログラムでも同じように色を使用できるようにしたかったため)
そこで
color.h
class color_class{
public:
int White;
int Black;
color_class(){
White = GetColor( 255 , 255 , 255);
Black = GetColor( 0 , 0 , 0);
}
};
#ifdef __COLOR_H__
color_class Color;
#else
extern color_class Color;
#endif
というヘッダファイルを各cppファイルでincludeして
DrawFormatString( 0 , 0 , Color.White ...
と使用してみたところコンパイルは問題なくできるのですが色が黒のままでした。
ためしに
DrawFormatString( 200 , 200 , GetColor( 255 , 255 , 255) , "色%d" , Color.White);
という一文をいれてみたところ
色0
と表示されました。
これはColor.WhiteにGetColorの数値が入っていないということでしょうか?
まだクラスについて勉強しはじめたばかりなのですがcolor_classになにか致命的なミスがあるのでしょうか?
ご教授ねがいます。