画面を切り替えるのはいいのですが問題なのはクリックを押し続けた状態で画面が切り替わった後、切り替わった後の画面で画面が切り替わる場所にマウスを持っていった場合画面が切り替わってしまいます。
これを避けるのに押し続けていますよ の スイッチを事前に入れるようにしたのですが、判定箇所が8箇所 と 24箇所 と 2箇所 と 右クリックかXボタン が混在している画面で 判定箇所を設定するために forを使って ループさせているのですが 押し続けてますよの判定をうまく設定できません。
どのようにしたら設定できますか?
わかりづらい質問で申し訳ありません
問題のコードは載せますが、全部のコードを見せたほうがいいかもしれません。
int i,j;
static int s_Nu;
static bool u_bousi = false;
static bool d_bousi = false;
static bool But_sw = false;
if( ( Br_M == 2 ) && ( s_MOVE == 0 ) ){
for( j = 0; j < ki; j++ ){
if( ki_sl == j ){
switch( sin_next ){
case brown_1_i:
Bu_PointX_next = j;
if( Bu_PointX != Bu_PointX_next ){
Bu_PointX = Bu_PointX_next;
switch( Bu_PointX ){
case 0:
Bu_Nu = B1;
for( i = 0; i < Bu_Nu; i++ ){
Bu_Fl[i] = Build_1_FL[i];
}
break;
case 1:
Bu_Nu = B2;
for( i = 0; i < Bu_Nu; i++ ){
Bu_Fl[i] = Build_2_FL[i];
}
break;
case 2:
Bu_Nu = B3;
for( i = 0; i < Bu_Nu; i++ ){
Bu_Fl[i] = Build_3_FL[i];
}
break;
case 3:
Bu_Nu = B4;
for( i = 0; i < Bu_Nu; i++ ){
Bu_Fl[i] = Build_4_FL[i];
}
break;
case 4:
Bu_Nu = B5;
for( i = 0; i < Bu_Nu; i++ ){
Bu_Fl[i] = Build_5_FL[i];
}
break;
case 5:
Bu_Nu = B6;
for( i = 0; i < Bu_Nu; i++ ){
Bu_Fl[i] = Build_6_FL[i];
}
break;
case 6:
Bu_Nu = B7;
for( i = 0; i < Bu_Nu; i++ ){
Bu_Fl[i] = Build_7_FL[i];
}
break;
case 7:
Bu_Nu = B8;
for( i = 0; i < Bu_Nu; i++ ){
Bu_Fl[i] = Build_8_FL[i];
}
break;
}
d_mode = d_second_md;
}
break;
//case brown_3_i:
// Wa_PointX = i;
// break;
//case brown_4_i:
// Tr_PointX = i;
// break;
}
}
}
//スリップしてしまうバグがある とりあえず目立たなくはさせている
if( Bu_Nu >30 ){ s_Nu = 2; }
else if( Bu_Nu >24 ){ s_Nu = 1; }
else{ s_Nu = 0; }
if( ( ( CheckHitKey( KEY_INPUT_UP ) == 1 ) || ( Br_y == 1 ) ) && ( Bu_PointY[ Bu_PointX ] > 0 ) ){
//if( But_sw == false ){
if( u_bousi == true ){
u_bousi = false;
Br_y = 0;
}
else{
s_MOVE = 1;
Br_SY = -1;
//But_sw = true;
}
//}
}
if( ( ( CheckHitKey( KEY_INPUT_DOWN ) == 1 ) || ( Br_y == 2 ) ) && ( Bu_PointY[ Bu_PointX ] < s_Nu ) ){
//if( But_sw == false ){
if( d_bousi == true ){
d_bousi = false;
Br_y = 0;
}
else{
s_MOVE = 1;
Br_SY = 1;
// But_sw = true;
}
//}
}
if( ( CheckHitKey( KEY_INPUT_X ) == 1 )||
( ( GetMouseInput() & MOUSE_INPUT_RIGHT ) != 0 )
){
if( But_sw == false ){
Br_M = 1;
Br_M_next = 1;
But_sw = true;
}
}
else{
But_sw = false;
}
if( s_MOVE == 1 ){
BrSmollCounter = 0;
}
for( i = 1; i < 25; i++ ){
if( But_sw == false ){
if( s_m_sl == i ){
if( Bu_Fl[ i - 1 + Bu_PointY[ Bu_PointX ] * 6 ] == 1){
bu_sn = i - 1 + Bu_PointY[ Bu_PointX ] * 6;
Br_M = 1;
Br_M_next = 2;
But_sw = true;
}
else{
But_sw = false;
}
}
}
}
s_m_sl = 0;
}