関連記事
開発環境
- Windows11
- Visual Studio 2022
- DXライブラリ Ver3.24d
色の指定
DrawPixel関数やDrawBox関数では色の指定を16進数で行うことができます。
例
DrawPixel( 100, 100, 0xFFFFFF ); // ピクセルの描画
DrawBox( 200, 200, 300, 300, 0xFFFFFF, TRUE ); // 矩形の描画
DXライブラリでは色コードを直接指定する代わりに、RGBの各値を10進数で指定し、その値から色コードを生成するGetColor
関数が用意されています。
#include "DxLib.h"
int WINAPI WinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpcmdLine, _In_ int nCmdShow )
{
// ウィンドウモード
ChangeWindowMode( TRUE );
// DXライブラリの初期化
if( DxLib_Init() == -1 )
{
// -1ならエラーとしてゲーム終了
return 0;
}
// 10進数でRGBを指定して色コードを取得
unsigned int color = GetColor( 255, 0, 0 );
// 矩形を描画
DrawBox( 50, 50, 150, 150, color, TRUE );
// プログラムの一時停止
WaitKey();
// DXライブラリの破棄
DxLib_End();
return 0;
}
実行結果
GetColor関数には第一引数にR(赤)、第二引数にG(緑)、第三引数にB(青)の値を0~255の範囲で指定します。戻り値で色コードが受け取れるので、この値をDrawBox等の関数に渡してください。
注意
色コードはRGBが1つの整数で管理されています。そのため、0から255の範囲を超える値を指定すると出力される色に影響が出ます。これにより、意図しない色が表示されたり、色が全く表示されないなどの問題が発生する可能性があるので注意が必要です。
// 10進数でRGBを指定して色コードを取得
unsigned int red = GetColor( 255, 0, 0 );
unsigned int yellow = GetColor( 255, 256, 0 ); // Gの値が255を超えている
// 矩形を描画
DrawBox( 50, 50, 150, 150, red, TRUE );
DrawBox( 200, 50, 300, 150, yellow, TRUE );
実行結果
変数yellowは黄色のつもりで設定したところ、結果的に赤色が表示されました。値が1違うだけでも色の出力に大きく影響することがあります。