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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0610
インパックスinput命令とif命令5解決


インパックス

リンク

2006/6/10(Sat) 20:16:37|NO.1048

1と入力すると、ボタンが出てくるプログラムを作りたいのですが、
input a,100,100,100
if a=1:goto *s
stop
*s
button "aiueo",*w
stop
*w
end
というものを打ってもダメでした。どうすればいいのですか? 教えてください!!!



この記事に返信する


トホホッティー

リンク

2006/6/10(Sat) 20:42:38|NO.1049

以下のようなのはどうですか?


*main screen 0 input a,100,100,100 *ain onkey *oksl await 1 onkey 1 goto *ain *oksl onkey 0 *okok if a=1 :goto *bota goto *ain *bota button "終了",*endend stop *endend end



Drip

リンク

2006/6/10(Sat) 21:45:39|NO.1050

Dripです。

 インパックスさん、こんにちは。
トホホッティーさんのやり方はonkeyの使用方法を間違えていますね。^^;
onkeyは一度宣言したらもう操作する必要はありません。次の例を参考にしてみてください。

input a,100,100,100 onkey *s stop *s await if a=1:button "aiueo",*w stop *w end



トホホッティー

リンク

2006/6/10(Sat) 21:50:10|NO.1051

修正ありがとうございます。
大変失礼いたしました。

着眼点はよかったのですが、使い方を間違えていたとは。

今後ともよろしくお願いいたします。



Steep

リンク

2006/6/11(Sun) 00:13:02|NO.1054

input命令のヘルプにはこう書いてある。

> カレントポジションにオブジェクトとして入力ボックスを配置します。

input命令はオブジェクトを配置するだけで、入力されるまで待ってくれるわけではない。
入力ボックスを配置した後、即次の命令を実行する。

この場合、inputを実行した時点では a になにも代入されておらず、
直後のifで偽と判定されてしまう。
その後入力できる状態になった時には、既に stop まで実行が終了している。

何かが入力されたら判定という形にするには、
他の方が解説しておられるように onkey を使用するか、
ループで入力を監視する必要がある。

input a, 100, 100, 100 repeat ; if (b ! a) & (a = 1) : gosub *s if b ! a : if a = 1 : gosub *s b = a wait 10 loop *s button goto "aiueo", *w return *w end



インパックス

リンク

2006/6/13(Tue) 23:39:37|NO.1093

あ!!!
出来ました!色々と教えていただき本当にありがとうございました!!
今後とも宜しくお願いします!!



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