基本変数の配列(質問掲示板)
投稿: fragile
投稿:2012/05/06 14:32:06(最新:2012/05/07 00:13:07)
setVariable("block", createArray()) getVariable("block")[0] = createArray() getVariable("block")[1] = createArray() getVariable("block")[2] = createArray() getVariable("block")[3] = createArray() def block(n, x, y, w, h) speak("sss") #表示されない getVariable("block")[0][n] = x getVariable("block")[1][n] = y getVariable("block")[2][n] = w getVariable("block")[3][n] = h end block(0,1,2,3,4) speak(getVariable("block")[2][0]) #null getVariable("block")[2][0] = 3 speak(getVariable("block")[2][0]) #3 #----------test----------# def ko(p,k,o) speak("ppp") #表示される setVariable(p, createArray()) getVariable(p)[k] = o end ko("atami", 0, 4) speak(getVariable("atami")[0]) #4
ここを参考に
ブロック(床)の座標を一括して入力する関数を作っているのですが,
実際に使用してみるとnullが返ってきてしまいます。
errorが出ないことから値の入れ方が間違っていると思うのですが
どこが間違っているのでしょうか?
コメントする
コメントするには、ログインする必要があります。
コメント一覧
Rmakeのご利用ありがとうございます。
blockはスクリプトエンジンの内部で
使用されている隠れた関数で、それと衝突してしまったため
正常に動作していないものと思われます。
とりあえずの対処としては
関数のblockを別の名前にすることで
動作するかと思います。
隠れて使われているものには以下のものがあります。
block, add, sub, mul, div, quate, substitution,
call, eq, neq,
lt, le, gt, ge, cond, and, or, not, minus, mod
関数の宣言に使われた場合などは
エラーなど出すべきかと思いますので
改善は考えたいかと思います。
よろしくお願いします。
blockはスクリプトエンジンの内部で
使用されている隠れた関数で、それと衝突してしまったため
正常に動作していないものと思われます。
とりあえずの対処としては
関数のblockを別の名前にすることで
動作するかと思います。
隠れて使われているものには以下のものがあります。
block, add, sub, mul, div, quate, substitution,
call, eq, neq,
lt, le, gt, ge, cond, and, or, not, minus, mod
関数の宣言に使われた場合などは
エラーなど出すべきかと思いますので
改善は考えたいかと思います。
よろしくお願いします。
にしたところ<<RESULTのように[0][0]がnullになりました。
配列が不正なのでスペルミスを疑い,検索してみましたがミスはないようです。
どこが間違っているでしょうか?
setpaper関数呼び出し
paper関数呼び出し
("paper")[0][0] → 0を代入
setpaper関数に戻る
("paper")[0] → createSpriteの戻り値を代入
RESULTの順ですね
このため
("paper")[0]には子配列がないのでエラーとなり
NULLが返されています
回答ありがとうございます。
また関係無いかもしれませんが、setSpriteRect()において素画像からの切取位置x,yと座標セットxx,yyが同じという事は考えにくいので、その辺には注意が必要です