スプライトAからスプライトBを動かす
サッカーボールをけるにはどうするのという相談があった。けったらななめにボールが動くようにしたいというわけだ。
それには、他のスプライトを操作できるといいんだけど、と思って探してみた。
直接操作できる【ブロック】や【関数】はないみたい。
けれどデータをグローバル(どこでも使える)にしておけばデータは他のスプライトで使える
それから【メッセージを送る】ってのがあって、これで他のスプライトを動かせる。
この2つを使って、サッカーボールをけってみよう、
ということは、どうするかというと
選手のスプライトで
0,xzahyo と yzahyo という変数を他のスプライトでも使えるようの準備しておく(作るときに指定できます)
・・・本格的なプログラムとここら辺から少しずつ作りが違ってきます。
プログラムを覚えたい人は、だんだん、本格的なプログラムも覚えた方が良いかもしれない・・・
1.選手がサッカーボールに触(さわ)ったら
2,選手の座標(ざひょう)を得て、xzahyo,yzahyoに入れる。
3,ボールのスプライトに動けって【メッセージを送る】をする
次に、ボールのスプライトで
0,【メッセージを受け取った】ら
1,ボールの座標と、選手の座標の位置がどれだけ違うかを引き算で調べる
例えばx座標は、距離が3 y座標は距離が-6 なんて調べる
3,ボールを距離によって、動かす
ってことになる。
やってみよう、まず矢印キーで選手(ボール)が動くようにしている。
ボールがメッセージを受け取ったら
ボールがメッセージを受けとっらた、ブロック(定義)を動かす
定義には、xzahyouとyzahyouを渡す。
そして次のようにする。
idoxとidoyはボールを動かす距離で、動きすぎるから2で割っておいた。
下に、作り方がよく分かりにくいところを、図示した。
xitiとyitiは、定義の中から引っ張り出せばでてくる。
これでボールを蹴ったように見えるけど、
ボールの動きがぎごちないなぁ・・・
次進む