HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
1026
yi一時停止4未解決


yi

リンク

2010/10/26(Tue) 22:19:22|NO.35500

キーボード入力で処理を一時停止する方法がわかりません。
一応作ってみましたがたまにしか止まらなかったり処理が飛ばされたり
サブルーチン外のreturnは無効です とかいうエラーが出たりしてしまいます。


repeat stick ck,0,1 //スペースキー if ck&16 { repeat onkey gosub *key if a==1 { a=0 break } wait 20 loop } 処理1 repeat ng stick ck,0,1 //スペースキー if ck&16 { repeat onkey gosub *key if a==1 { a=0 break } wait 20 loop } 処理2 loop stop *key if wparam==32 { a=1 } return stop

どうぞよろしくお願いします



この記事に返信する


inovia

リンク

2010/10/26(Tue) 23:03:13|NO.35504


onkey gosub *key mes "スペースキーで 一時停止/解除" repeat title ""+cnt wait 5 loop stop *key onkey 0 if wparam == 32 { // 一時停止(スペースキーで抜ける) repeat stick k,0 if k&16:break wait 5 loop } onkey 1 return



kek

リンク

2010/10/27(Wed) 02:39:58|NO.35506

どういうものを作りたいのかはっきりしないけど、こんな感じにも書ける


//スペースキーでポーズ状態を切り替える //エンターキーでタイトルの表示スタイルを切り替える pauseFlag = 0 methodType = 0 repeat await 16 //入力チェック stick key,0 if key & 16 { pauseFlag = (pauseFlag + 1) \ 2 } if key & 32 { methodType = (methodType + 1) \ 2 } //停止時は処理をスキップ if pauseFlag : continue //処理を分岐 if methodType == 0 { title strf("%02d:%02d:%02d:%03d", getTime(4), getTime(5), getTime(6), getTime(7)) }else{ title strf("%02d:%02d:%02d", getTime(4), getTime(5), getTime(6)) } loop end



info

リンク

2010/10/27(Wed) 02:54:56|NO.35507

 ラベル型メインルーチン、の場合でしたら、こんな風にも書けます。
 根本的には、inovia さんの 処理と変わりません。


onkey gosub *key label_Defie = *main , *dummy label_main = label_Defie.flg *main title strf("cnt %d" , i) wait 1 i++ goto label_main *dummy wait 100 goto label_main *key if iparam = 0x1b { flg ^= 1 label_main = label_Defie.flg } return



info

リンク

2010/10/27(Wed) 02:56:47|NO.35508

追記 : エスケープキーを押したら処理を停止します。



ONION software Copyright 1997-2023(c) All rights reserved.