配列を変数として使おうとしたのだが(質問掲示板

投稿: Material 71926 1 mini なとおとき 投稿:2011/09/03 00:31:03(最新:2011/09/03 13:29:03)
  • setVariable("仕掛け", createArray())
#レバー
getVariable("仕掛け")[0] = 0
#その他の仕掛けは[1]~

↑開始スプリクトに入力
こんな感じで「仕掛け」を配列にして
[0] = レバー
ということにします

  • if getVariable("仕掛け")[0] == 1 #レバーが下がった状態
 setEventCharacter("event0", 11102)#レバーが上がった状態の画像に変更
 setVariable("仕掛け", getVariable("仕掛け")[0] - 1)
 else #レバーが上がった状態
 setEventCharacter("event0", 11103)#レバーが下がった状態の画像に変更
 setVariable("仕掛け", getVariable("仕掛け")[0] + 1)
 end

レバーに これ(↑)を入力します
初期は上がっている状態で話しかけるたびに仕掛け[0]の数値によって
(数値が 1 の時はifのほう それ以外 の時はelseのほうが実行されます)
上がり下がりするようにしたいのですが
このレバーに話しかけると
1st argument is not array. line : 1
1st argument is not array. line : 6
こうなります
そしてレバーがうごかなくなります

これを
グーグル翻訳で翻訳すると
  第1引数が配列ではありません。ライン:1
第1引数が配列ではありません。ライン:6

こうなって

これ自体の意味は分かるのですが
どう修正すればいいのかがわかりません


コメントする

コメントするには、ログインする必要があります。

コメント一覧

Material 71926 1 mini なとおとき(投稿日:2011/09/03 13:29, 履歴)
なるほど、スプリクトさんもがんこだなぁ・・・
Nyan mini rurun9(投稿日:2011/09/03 12:54, 履歴)
「配列のn番目の要素に、値を代入する」場合の書き方が違った事が原因でしたね。


ちなみに
setVariable("仕掛け", getVariable("仕掛け")[0]-1 )
と書いた時点で、
変数"仕掛け"の以前の中身は捨てられて、新たに値が設定されているのです。
つまり配列とか全部無かった事にしているw
だからその後に配列じゃねぇのに[0]とか書いてんじゃねぇよ!て怒られるワケです。
Material 71926 1 mini なとおとき(投稿日:2011/09/03 10:18, 履歴)
NARUHODO~
Logo mini hightoller(投稿日:2011/09/03 05:47, 履歴)

setVariable("仕掛け", getVariable("仕掛け")[0] - 1)


getVariable("仕掛け")[0] = getVariable("仕掛け")[0] - 1

一度SVで名付けたら、計算代入はGVでおk
   mini ___(投稿日:2011/09/03 02:17, 履歴)
ああいえ、「値を設定していない」ということではなくて、
setVariable("仕掛け")配列という集団の中から、
実際にどの値を選択して、代入しようとしているのか
というのを指定していない、ってな意味で書いたのですよー。
Material 71926 1 mini なとおとき(投稿日:2011/09/03 02:06, 履歴)
>([0]や[1])
これはこれは最初の3行で設定しています

> getVariable("仕掛け")[0] = 0
たしかにこれかも・・・
   mini ___(投稿日:2011/09/03 01:41, 履歴)
基本変数("仕掛け")は配列になっているのに、
setVariableで添字([0]や[1])を指定していないからでしょうか。

 setVariable("仕掛け" , getVariable("仕掛け")[0]+1)[0]
とか出来たかな…。

基本変数を配列にしたときは、
 getVariable("仕掛け")[0] = 0
とかそういう使い方が出来たような思い出があります。