あきさんがどのような状況を「全てをすっ飛ばして」というのか、そしてどのようにその処理を呼んでいるのかが分からないのでちょっとズレてるかもですが・・
例えば次のように書いてみると、左クリック一回でxが3まですぐに増えてしまいます。
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
// ウインドウモードで起動
ChangeWindowMode( TRUE ) ;
// ライブラリの初期化
if( DxLib_Init() < 0 )
return -1 ;
int x = 0 ;
// ESCキーが押されるか、ウインドウが閉じられるまでループ
while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 )
{
// 画面をクリア
ClearDrawScreen() ;
if(x == 0)
{
if( ( GetMouseInput() & MOUSE_INPUT_LEFT ) != 0 )
{
x = 1;
}
}
else if(x == 1)
{
if( ( GetMouseInput() & MOUSE_INPUT_LEFT ) != 0 )
{
x = 2;
}
}
else if(x == 2)
{
if( ( GetMouseInput() & MOUSE_INPUT_LEFT ) != 0 )
{
x = 3;
}
}
DrawFormatString( 0, 0, GetColor(255,255,255), "x = %d", x ) ;
// 裏画面の内容を表画面に反映
ScreenFlip() ;
}
// ライブラリの後始末
DxLib_End() ;
// ソフト終了
return 0 ;
}
ただこれはこの処理が毎フレーム高速で呼ばれているからであって、例えばfps60で動作しているのなら、0.016秒以内に左クリックを離さないと、次のフレームでも
if( ( GetMouseInput() & MOUSE_INPUT_LEFT ) != 0 )でクリック有効と判断されて、結局高速でxが3まで増えます。
そのために
int input_LEFT = 0;
// ESCキーが押されるか、ウインドウが閉じられるまでループ
while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 )
{
// 画面をクリア
ClearDrawScreen() ;
//クリックされ続けていれば、値を増やしていく
if( ( GetMouseInput() & MOUSE_INPUT_LEFT ) != 0 )
{
//入力あり
input_LEFT ++ ;
}
//クリックが一瞬でも離れれば
else
{
//入力は0になる
input_LEFT = 0 ;
}
if(x == 0){
if( input_LEFT == 1 )
{
x = 1;
}
}
else if(x == 1){
if( input_LEFT == 1 )
{
x = 2;
}
}
else if(x == 2){
if( input_LEFT == 1 )
{
x = 3;
}
}
やっつけなのでスマートじゃないですが、このようにしてあげると押し続けられているか、押した瞬間なのかで別けることができます。
0なら入力なし、1なら押したその瞬間、1以上なら押し続けですね。
この場合だと、マウスを三回カチカチやらないとxは3まで増えません。