|
您好, 看了下您的程式發現您的程式是"一鍵觸發循環, 再一鍵停止"的方式:
if(event_press(PS4_SQUARE)) onoff2=!onoff2; //目前是按下方塊切換onoff2 (當按下PS4方塊時, onoff2被設定為1, 再按一次方塊onoff2被設為0..以此類推)
if(onoff2){ (當onoff2=1時, 就執行combo repeat2, onoff2=0時則不執行)
combo_run(repeat2);}
因此你按一次方塊鍵, 就會一直執行combo reapeat2巨集, 因為onoff2一直是1, 除非你再按一次方塊鍵, 把onoff2設為0, 才會停止執行combo repaet2巨集.
按你的要求是有按才執行, 放開就停止, 則把條件判斷式改為下面的寫法:
if(get_val(PS4_SQUARE)) {
combo_run(repeat2);}
(如果PS4方塊鍵有被按下去則執行{}裏面的程式, 也就是combo_run(repeat2)這個程式指令, get_val()表示克麥得到()裏面這個案件的數值, 也就是有被按下, 反之若沒有按下方塊鍵則不會執行下面{}裏的程式.)
get_val()語法為get_val(PS4_SQUARE), ()內為按鍵代號, 後面不接數值.
set_val()不能放在if的()裏, 這指令是去設定某按鍵的數值, 不能拿來做條件判斷依據.
至於
if(event_press(PS4_SQUARE)), 這個意思是, 當PS4方塊鍵有被按下就會執行{}內指令, 但只做一次, 也就是您按下並壓住方塊鍵他只會做一次combo repeat2, 這是不同之處.
以上供您參考 |
|