softyaさんへ
コード:
#include "DxLib.h"
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR lpC, int nC){
ChangeWindowMode(TRUE);
if(DxLib_Init() == -1) return -1;
int mojicol = GetColor(255,255,255);
DrawFormatString(280,30,mojicol,"ルーレット");//題字
SetMouseDispFlag(TRUE);//マウスを表示状態にする
int posX,posY;
int white = GetColor(255,255,255);
while(CheckHitKey( KEY_INPUT_ESCAPE)==0 && ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){
if( ProcessMessage() == -1){
break;
}
//ここからボタン表示
int roulette = LoadGraph("roulette.png");
GraphFilter( roulette, DX_GRAPH_FILTER_DOWN_SCALE, 2 ) ;
DrawGraph(40,430,roulette,FALSE);
DrawFormatString(300,430,mojicol,"リセット");
int stop = LoadGraph("stop.png");
GraphFilter(stop, DX_GRAPH_FILTER_DOWN_SCALE,2);
DrawGraph(500,430,stop,FALSE);
//ボタン表示ここまで
GetMousePoint(&posX,&posY);
if(posX >= 39 && posX <= 245 && posY >= 423 && posY <= 454){
if((GetMouseInput() & MOUSE_INPUT_LEFT) != 0){
DrawString(20,20,"ルーレットボタンを押している",white);
}
}else if(posX >= 270 && posX <= 300 && posY >= 470 && posY <= 480){
if((GetMouseInput() & MOUSE_INPUT_LEFT) != 0){
DrawString(20,20,"リセットボタンを押している",white);
}
}else if(posX >= 340 && posX <= 400 && posY >= 500 && posY >= 550){
if((GetMouseInput() & MOUSE_INPUT_LEFT) != 0){
DrawString(20,20,"ストップボタンを押している",white);
}
}
}
DxLib_End();
return 0;
}
ルーレットボタンは反応するようになりましたが、
隣のボタン(リセットボタンは画像が変に映るので文字で代用しました)が反応しません
各ボタンのif文の直前にGetMousePointを置いても同様です
ルーレットボタンで中央に大きく表示される数字がパカパカとランダムでアニメーション(分かりにくいですが・・)
具体的に言うと、マリオカートのアイテム欄のような感じで数字が動き、
ストップボタンでそれを止め、
次にルーレットボタンを押した時には中央下に出た数字を(2,5,12...)←このような感じに表示するものを想定しています。
※リセットボタンを押すまでは出た数字は重複しないようにしたい
ランダムに数字を取得するのはsrandを使えばいいのでしょうか?