C++(DXライブラリ)で画像を使ったボタン作成
画像の上をクリックすると次の画面へ変わるようなボタンを作りたいと思っています。
調べているとリンク内容 このページの2つ目の回答(Dixq (管理人)さんの回答)がとても納得できたのでボタンの位置を色で分けて判断させようとしました
(↑の丸の上にボタンの画像を貼り付ける予定です)
色々と試行錯誤してみましたがうまく動作することが出来ずお手上げ状態です。回答よろしくおねがいします。
また、もっと良いボタンの作り方などがありましたら教えてくださると嬉しいです。
発生している問題
GetPixelSoftImage(MenuMap, MouseX, MouseY, &r, &g, &b, &a);
でr,g,b,aの値が変わらず、初期値のままになってしまう
printfDx("%x ", RED_ColorCode);
などでColorCodeと付いている変数の数値を確認したところすべて先頭にFFがついていた(完全な透明?)
該当のソースコード
C++,DXライブラリ
1 int MouseX, MouseY, Mouse = GetMouseInput(); 2 int r=0, g=0, b=0, a=0; 3 int MenuMap = LoadSoftImage("picture/MenuMap.png"); 4 if (Mouse & MOUSE_INPUT_LEFT != 0) { 5 DrawGraph(0, 0, MenuMap, FALSE); //丸の位置確認のため表示 6 GetMousePoint(&MouseX, &MouseY); 7 GetPixelSoftImage(MenuMap, MouseX, MouseY, &r, &g, &b, &a); 8 int Click_ColorCode = GetColor(r, g, b); 9 int RED_ColorCode = GetColor(255, 0, 0); 10 int GREEN_ColorCode = GetColor(0, 255, 0); 11 int BLUE_ColorCode = GetColor(0, 0, 255); 12 13 if (Click_ColorCode == RED_ColorCode) 14 SceneMgr_ChangeScene(eScene_Start);//画面移動 15 if (Click_ColorCode == GREEN_ColorCode) 16 SceneMgr_ChangeScene(eScene_Config);//画面移動 17 if (Click_ColorCode == BLUE_ColorCode) 18 SceneMgr_ChangeScene(eScene_Buy);//画面移動 19 }
試したこと
GetPixelやGetColorなどでクリック時のマウスの座標の色と丸の色の一致を判断する
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。