KEY_CLEAR

Last-modified: 2008-05-18 (日) 21:05:10

関数群名

SACT2

機能

 キーボードのキーやマウスボタンの押下状態のフラグをクリアします。

定義

KEY_CLEAR(bool bClearJoypad = true)
実装
void KEY_CLEAR(bool bClearJoypad = true)
{
	SACT.Key_ClearFlag();
	if(bClearJoypad) SACT.Joypad_ClearKeyDownFlag(0);
}

引数

bClearJoypad
 ジョイパッドの押下状態も解除するかどうか?(不明)

戻り値

なし

解説

 キーボードのキーやマウスのボタンが押された場合、実際にキーが離されても
 KEY_CLEAR が呼び出されるまでシステム内部では押された状態を保持され、
 KEY_IS_DOWN 呼出でtrueが返ります。
 ifで押下状態を取得する場合、if内でKEY_CLEARをかけるようにするといいでしょう。

サンプル

  • 1
    sact_timer_t tm;
    for(;;)
    {  KEY_CLEAR;if(KEY_IS_DOWN(0x10)){tm.Set(0);}
    N(tm.Get);B;W(10);MES_CLS;
    }
  • 2
    sact_timer_t tm;
    for(;;)
    {  if(KEY_IS_DOWN(0x10)){tm.Set(0);KEY_CLEAR;}
    N(tm.Get);B;W(10);MES_CLS;
    }

 前者はきわめて精度が落ちます(当たり前の話ですが)。
 あとWはキークリアするので、これがない方が安定しますし、10以上の場合不安定になります。 

サンプル出力例

 なし

定義位置

System\SACT\UI\sact_input.jaf

関連

KEY_IS_DOWN

KEY_CLEARされるもの

関数・構造体
CSactMenu
sact_back_log_t
sact_back_log2_t
HideMsgFrame
SACT_A_IMPLEMENT
SACT_W
MSG_DrawMsgUseWait
MSG_AUTO_WAIT
MsgKeyWaitLoop
MSG_KEY_WAIT
key_group_t
SP_SELECT

まとめ
 AやWはクリアがかかります。
 また、オートやメッセージ送りなどでもかかるので注意してください。