2016-04-26 9 views
1

私はスクラッチで雪の背景を作成し、次のコードに出くわしています:私は、スプライトのクローニングにWikiを読んで、この文で困惑したクローンスクラッチスプライトの変数 - グローバルまたはローカル?

enter image description here

:すべてのための

変数スプライトは各クローンで同じになりますが、このスプライトの変数は各クローンごとに異なります。

質問:クリックブロック

私は自分自身のクローンを作成します。クローンとの両方のブロックをクリックすると、ブロックは変数y posを共有しますが、これらは独立して(つまりoopsの意味で)タイプ 'this'の変数、つまりクローンオブジェクトに対してのみインスタンス化された別の変数です。私はチックでそれを表示することはできませんので、私はそれがクローンにローカルであると仮定していますか?

y posグローバル(クラス変数)ですか?私は後者を推測していますが、上記の文章は役に立たない。

+0

スクラッチのy軸は-180〜180であり、-360〜360btwではありません。 – Scimonster

+0

アニメーションを遅くすることです –

+0

私はこれを自分で見つけましたが、アニメーションは画面の下端の代わりに途中で停止します - 試してみてください! –

答えて

1

これが正しく動作するためには、変数yposはローカル(このSpriteのみ)でなければなりません。そうしないと、2つは互いに干渉します。

+0

これは私が 'say statements'を使って見つけたもので、ローカルだと思います。アフェクタークローンと非アフェクタークローンが見つかりました。他の人のコードのコメントがスクラッチで非常に重要である理由を推測したり、あなたの頭を傷つけることになります。 –

0

可変アクセシビリティは、作成方法によって異なります変数メニュー(つまり、名前を選択する場所)に変数を作成すると、変数を「すべてのスプライト」または「これだけ」でアクセス可能にするかどうかを尋ねられます。 「すべてのスプライト」を選択すると、変数はグローバルに作成され、すべてのスプライトによってアクセス可能(および変更可能)になります。 「これだけ」を選択すると、ローカル変数が作成され、各スプライトによって個別にアクセス可能になります。


私は助けました。 -GreenHawk1220

1

また、スクラッチのローカル変数は、各クローンの別々のインスタンスです。グローバル変数は一度だけ存在し、すべてのオブジェクトで同じです。スクラッチにはクラス変数はなく、同じオブジェクトのクローン間で共有されます。