マウスで左クリックされたところのピースを動かすという処理を行いたいのですが,
左クリックをするとチャタリング?が発生し,一回クリックしたつもりでも10回クリックしたことになってしまいます.
このため,ピースの交換が高速で何回も行われ,ちらつきが起きます.
左クリックがされたら一回だけカウントしたいのですがどうすればよいでしょうか.
宜しくお願いします.
以下はマウスの入力チェックを行い,15枚のピースのどこが選択されたかを調べる関数です.
int MousePointCheck(void){
int MouseX,MouseY;
static int MouseXbuf,MouseYbuf;
static int MousePlace;
//マウスの座標取得
GetMousePoint(&MouseX,&MouseY);
//左ボタンが押されたら
if( GetMouseInput() && MOUSE_INPUT_LEFT){
//どこの列か X
if(MouseX>0 && MouseX<=120) MouseXbuf=0;
if(MouseX>120 && MouseX<=240) MouseXbuf=1;
if(MouseX>240 && MouseX<=360) MouseXbuf=2;
if(MouseX>360 && MouseX<=480) MouseXbuf=3;
//どこの行か Y
if(MouseY>0 && MouseY<=120) MouseYbuf=0;
if(MouseY>120 && MouseY<=240) MouseYbuf=1;
if(MouseY>240 && MouseY<=360) MouseYbuf=2;
if(MouseY>360 && MouseY<=480) MouseYbuf=3;
//上記からどのピースがクリックされたか判断
MousePlace=MouseXbuf+4*MouseYbuf;
//クリックされたピース番号を返す
return MousePlace;
}
//クリックされなかった場合
else return -1;
}