掲示板って、文字数制限あったんですね(--;)

投稿者:Material 7186 1 mini ikosami 投稿日:2014/01/16 16:14

エラー分だけ書いてもわからないと思い、
スクリプト全部貼ろうと思ったら
掲示板の文字数制限に引っかかったので
ここに書きます。


ちなみに、このゲームは転がりゆく玉のスマホ版です。

いっそ公開してしまえば・・・とも思ったのですが、
まだ、床と壁しかないうえに
動かないので・・・

とはいっても、aoihikawaさんに教えてもらった方では
ちゃんと動いているので、
      GV(:ball_i)[i].change_motion :move
      #GV(:ball_i)[i].set_position GV(:ball)[i][0]*30+100 ,GV(:ball)[i][1]*30

ここの、上に#つけて、下の#をとれば動きます。



エラーの原因は、
個人的には、「 |s|の部分をどうかしなくてはいけなかったのでは? 」
という感じがしています。
https://core.rmake.jp/projects/181


1行だとすごく見づらかったので
意味があるかどうかわかりませんが私的な基準でしてみました

 mruby error: formal argument cannot be a constant,
 code_name: 226 181 :start.rb, line: 268,
 column: 33.mruby error: syntax error,
 unexpected '(', expecting '|',
 code_name: 226 181 :start.rb, line: 268,
 column: 34.mruby error: formal argument cannot be a constant,
 code_name: 226 181 :start.rb, line: 269,
 column: 22.mruby error: syntax error,
 unexpected '(', expecting '|',
 code_name: 226 181 :start.rb, line: 269,
 column: 23.

コメントする

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

コメント一覧

Zararu128x128 mini dycoon(投稿日:2014/01/16 20:25, 履歴)
ソースコードをコピーして
適当な画像を設定して動作を確認してみました。
https://core.rmake.jp/projects/185
しかし、エラーは起きませんでした。

いくつか確認したいと思います。
  • エラーの行がソースコード上の行と一致していないように思いますがこのコードで起こっているのでしょうか?
  • アプリは最新バージョンを使用されているでしょうか?

一応コードで気になった点としては
x, yの初期化がscene.on_initでおこなわれているため、
commands.move_toと別の変数になってしまっています。
ブロック間で変数を同じものにしたい場合は、それより上のブロックか一番根元となる場所で
変数の初期化をおこなわなくてはなりません。
たとえば、ソースコードの一番上で
x = 0
y = 0

とすれば、変数が同じものになるかと思います。

Material 7186 1 mini ikosami(投稿日:2014/01/17 11:38, 履歴)
>>エラーの行がソースコード上の行と一致していないように思いますがこのコードで起こっているのでしょうか?
なぜか一致しないのですが
上のほうに書いてある
      GV(:ball_i)[i].change_motion :move
      #GV(:ball_i)[i].set_position GV(:ball)[i][0]*30+100 ,GV(:ball)[i][1]*30


      #GV(:ball_i)[i].change_motion :move
      GV(:ball_i)[i].set_position GV(:ball)[i][0]*30+100 ,GV(:ball)[i][1]*30

にするとまともに動いたので,
このコードを使用していないときにはエラーは出ませんでした。


>>アプリは最新バージョンを使用されているでしょうか?
パソコン買い換えて、アプリを今週ダウンロードしたので
おそらく最新だと思われます。



x,yをもともとマップ設定に使用していたので
xx,yyにして、
ソースコードの上で初期設定をしたら
エラーが起きなくなったのですが、
なぜかすべて同じ場所に動くようになってしまいました・・・

GV(:ball_i)[i].change_motion :move

GV(:ball_i)[0].change_motion :move
にしたら一つ目の玉だけ正常に動いたので、
ほかの場所が間違っているとも思えません・・・


あと、確認に手間をかけてしまいそうなので、
トップページに乗らないようサムネイルなしで、公開しておきました。
https://core.rmake.jp/projects/181

ついでに、画像が正常に動かないため
玉が落ちたかどうか判別するために
左上に表示するようにしました。
Zararu128x128 mini dycoon(投稿日:2014/01/17 19:03, 履歴)
change_motionを呼んでもすぐにはlambdaの部分は実行されないので、
lambdaの部分が実行される頃には最後に代入されたxx, yyの値になってしまいます。
前に示した例は、とりあえずの概念を説明するためにスプライトが1つの場合にしか使えません。
set_data, get_dataを使ってスプライトごとにデータを割り当てる必要があるかと思います。
https://core.rmake.jp/doc/reference/rmake_common_sprite#13_4

Material 7186 1 mini ikosami(投稿日:2014/01/17 20:34, 履歴)
すぐには実行されなかったのですか・・・

あと、URLにロックがかかっています・・・
Zararu128x128 mini dycoon(投稿日:2014/01/18 00:44, 履歴)
すみません。URL間違えましたので修正しました。
https://core.rmake.jp/doc/reference/rmake_common_sprite#13_4
Material 7186 1 mini ikosami(投稿日:2014/01/18 10:59, 履歴)
なんだか、

「スプライト内に変数を仕込むことができる」
というように理解したのですが、

ここに、x,yの値を入れるということですか?



  st.motion :move do |commands|
    commands.loop false
    commands.move_to(lambda do |s| get_data :s_x end, 
      lambda do |s| get_data :s_x end, 5)
  end


こういう意味であっていますか?
Zararu128x128 mini dycoon(投稿日:2014/01/19 12:09, 履歴)
get_dataはパズルで使われているのでそれと見比べてみてください。
https://core.rmake.jp/projects/148
ctrl + f で検索すると見つけやすいかと思います。
Material 7186 1 mini ikosami(投稿日:2014/01/19 13:51, 履歴)
これだけ答えてもらっておいて申し訳ないのですが、
今の段階では、とても理解できる気がしないので、
これを使うのは、もう少し構造を理解できるようになってからにします・・・

すみません・・・