0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

色を10進数で指定する

Last updated at Posted at 2024-02-26

関連記事

開発環境

  • 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違うだけでも色の出力に大きく影響することがあります。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?