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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
1121
koashowenterキー4解決


koashow

リンク

2008/11/21(Fri) 18:57:30|NO.20931

「enterキー」が押されたらgosudで飛びたいのですが
うまくできません。

↓のようなスクリプトがあったので

repeat  redraw 0 color 255,255,255 boxf color 0,0,0 pos 0,0 mes "Loop : "+cnt+"\nスペースで抜けるよ" getkey k,32 if k:break redraw 1 wait 1 loop redraw 1 mes "抜けたよ"

の getkey k,32
 if k:break を使って、

getkey k,13
if k:gosub *labelのようにしたのですが
できませんでした。
この場合どのようにしたらよいのでしょうか?



この記事に返信する


inovia

リンク

2008/11/21(Fri) 19:09:00|NO.20933


if k:gosub *test
ではサブルーチンジャンプでまた戻ってきてしまい結局無限ループしてしまうので、必ず最後にbreakさせてください。

if k:gosub *test:break


repeat redraw 0 color 255,255,255 boxf color 0,0,0 pos 0,0 mes "Loop : "+cnt+"\nスペースで抜けるよ" getkey k,32 if k:gosub *test:break redraw 1 wait 1 loop redraw 1 mes "抜けたよ" stop *test dialog "サブルーチンジャンプを行いました。" return



koashow

リンク

2008/11/21(Fri) 19:29:54|NO.20934

すいません、言葉がたりなかったです。


pos 300,200 font "MS ゴシック",60,16 objmode 2 s="" input s,500,100 getkey k,13 ←ここから if k = 13{ gosub *label }           enterが押されたら stop *label        ←ここに飛びたいです end

申し訳ないです。
上のスクリプトのようにしたいです。



inovia

リンク

2008/11/21(Fri) 19:47:20|NO.20935

もしかして、input内でENTERを押された時の処理をしたいのでしょうか?
getkeyだと日本語入力のときENTERを押した時も反応してしまうのonkeyを使います。


onkey gosub *key pos 300,200 font msgothic,60,16 objmode 2 s="" input s,500,100 sid=stat//オブジェクトIDを代入 stop *key if wparam=13{//ENTERキーを押された時の処理 objsel -1 if stat=sid{//入力ダイアログないで押された場合の処理 dialog "押されたざま〜すよ。" } } return



koashow

リンク

2008/11/21(Fri) 20:03:32|NO.20936

おお〜!
できました。
inoviaさんありがとうございました!



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