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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0920
kaienrepeatで変数5解決


kaien

リンク

2007/9/20(Thu) 01:40:25|NO.11123

どうも、kaienです。
毎回、質問に答えていただきありがとうございました。
今日も質問があります。おねがいします。

*main x=60: a=0 name1="" : name2="" : name3="" : name4="" :name5="":name6="" of1=0 : mg1=0 : hp1=0 : sp1=0 repeat 5 a+1 if a=2 : name1=name2 if a=3 : name2=name3 if a=4 : name3=name4 if a=5 : name4=name5 if a=2 : of1=of2 if a=3 : of2=of3 if a=4 : of3=of4 if a=5 : of4=of5 if a=2 : mg1=mg2 if a=3 : mg2=mg3 if a=4 : mg3=mg4 if a=5 : mg4=mg5 if a=2 : hp1=hp2 if a=3 : hp2=hp3 if a=4 : hp3=hp4 if a=5 : hp4=hp5 if a=2 : sp1=sp2 if a=3 : sp2=sp3 if a=4 : sp3=sp4 if a=5 : sp4=sp5 pos x,40 : font "",17, input name1,,,6 pos x,100 input hp1,,,3 pos x,160 input of1,,,3 pos x,220 input mg1,,,3 pos x,280 input sp1,,,3 x+100 loop pos 500,370 objsize 100,70 button "設定完了→",*battle stop *battle

このような、スクリプトを作ったのですが、
いずれの変数も1にしか、数値(文字)が入りません。
どうすれば入るでしょうか?

アドバイス等などよろしくお願いします。



この記事に返信する


通りすがり

リンク

2007/9/20(Thu) 08:43:10|NO.11125

 何をしたいのか良く分かりません目的を書いて下さい。
  inputboxを5列5行作って終わっているだけです。
  ifで何かやっていますが、空の変数を代入しまくっているだけです。
  inputの変数名が何に成るのかよく考えて下さい。

 注意事項の「不要部分の多い長いスクリプトの投稿は ご遠慮ください。」は見ました
 か、下記のように最小限のスクリプトにして下さい。

	name1="" : name2="" : name3=""
repeat 2 a+1 if a=2 : name1=name2 if a=3 : name2=name3 pos x,40 : font "",17, input name1,,,6    ;←変数 name1 は何になりますか x+100 loop stop



f

リンク

2007/9/20(Thu) 08:48:09|NO.11126

変数の1と言うのはname1とかhp1とかof1とかmg1とかsp1とかの事?

inputで指定されてる変数が変数1系だけなんだから、当然でね?
それに対処すれば直るんでね?

つか、配列変数使った方が良いんじゃね?



kaien

リンク

2007/9/20(Thu) 17:11:22|NO.11129

お忙しいところ返信ありがとうございました。

>何をしたいのか良く分かりません目的を書いて下さい。
確かに、すいません。目的は、inputbox一つ一つに違う変数を入れて
一気に、全てのinputboxから数値(文字)を読み取りたいのです。

>ifで何かやっていますが、空の変数を代入しまくっているだけです。
>inputの変数名が何に成るのかよく考えて下さい。
空の変数代入しまくってたんですね。
inputの変数名が変わらないから一つだけに入ってしまうんでしょうか?

>注意事項の「不要部分の多い長いスクリプトの投稿は ご遠慮ください。」は見ました
>か、下記のように最小限のスクリプトにして下さい。
すいません、うまくまとめられなくて。

>変数の1と言うのはname1とかhp1とかof1とかmg1とかsp1とかの事?
>inputで指定されてる変数が変数1系だけなんだから、当然でね?
そうです。



Elfizm

リンク

2007/9/20(Thu) 17:28:18|NO.11130

ループを使わず

pos 60,50 input name1,,,6 pos 160,50 input name2,,,6 pos 260,50 input name3,,,6 pos 360,50 input name4,,,6 pos 460,50 input name5,,,6

という風にすれば解決すると思います。

ループを使ってスマートに解決したいならfさんの言うように
配列変数を勉強して使うことをオススメします。
以下、配列変数を使った場合のサンプルです。上のスクリプトとほぼ同じ結果を得ることができます。


sdim name,5 repeat 5 pos 60 + cnt*100, 50 input name.cnt,,,6 loop



kaien

リンク

2007/9/20(Thu) 20:22:21|NO.11131

返信ありがとうございました。配列変数でやってみます。
通りすがりさん、fさん、Elfizmさん
ありがとうございました。

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



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