提供: Japanese Scratch-Wiki

(Category:Scratch 2.0を除去 (HotCat使用))
(他の1人の利用者による、間の1版が非表示)
1行目: 1行目:
 
{{ひらがなヘッダ}}
 
{{ひらがなヘッダ}}
{{ページの改善|<nowiki><br></nowiki>による強制改行の削除。(スマートフォンなどでは表示が崩れる恐れあり。)(<code>use-br</code>) <br>
+
[[ファイル:{{#setmainimage:Clones.png}}|thumb|224px|クローンを実際に実行した時の画像。元の画像とは異なっているが、実際には見た目から変えないと変わらない。]]
その他文法と表現など。}}
+
'''クローン'''とは、動的に(=スクリプトを用いて)[[スプライト]]を複製すること、また複製されたスプライトをいう。[[Scratch 2.0]]で導入された。
[[ファイル:Clones.png|thumb|224px|クローンを実際に実行した時の画像。元の画像とは異なっているが、実際には見た目から変えないと変わらない。]]
 
クローンとはプロジェクトが実行されている間に一つのスプライトを複製することで、このコマンドはタワーディフェンス
 
や守備系のゲームに一つのステージに複数の敵を作るのに使える。
 
クローンされたスプライトは元のスプライトと見た目は同じだが実行するブロックは別々になる。
 
過度のラグやクラッシュを防ぐため、1プロジェクトあたり300のクローン上限がある。Scratchでは、意図的にコンピューターをクラッシュさせるプロジェクトの共有を禁止している。
 
  
 +
たとえば、弾を連続して打ちたいときに、スプライトをたくさん用意するのは大変だが、クローンではブロックによりスプライトが複製できる。クローンは、停止ボタンや「すべてを止める」により一括削除できるほか、{{b|このクローンを削除する}}でひとつずつ削除できる。{{b|スタンプ}}は、レイヤーが固定され、かつスクリプトを持つことができない。
  
== Scratchを元にしたソフトウェアでのクローン ==
+
同時に存在できるクローンの数には制限があり、プロジェクト全体で、Scratch 2.0で301個、[[Scratch 3.0]]で300個で、これを超えた場合にクローンは作成されない。
 Scratchを元にして作られたソフトウェア('''Scratch modifications''')でのクローンには別々のタイプが存在し、
 
一つは"'''Panther-style cloning'''"、もう一つは"'''BYOB-style cloning'''"という。(この2つのソフトウェアは英語である)<br><br>
 
  
 '''"[[:en:Panther_%28Scratch_Modification%29|Panther]]-style cloning"'''はクローンを作成すると元のスプライトに設定したブロックは引き継がれるが新しいスプライト<br>
+
== クローンに関するブロック ==
としては扱わない。他のスプライトはクローンに'''Touch()'''コマンドは通常どおり使用することができる。<br><br>
 
 
 
 もう一つの'''"[http://snap.berkeley.edu/ BYOB]-style cloning"'''はクローンすると全く別のスプライトになり、ブロックの編集も普通に可能である。
 
クローンするには専用のブロック、'''Clone'''を使うことになる。
 
 
 
== クローンブロック ==
 
 
[[Scratch 2.0]]では、クローンに関して次の3個のブロックが導入された。すべて[[制御ブロック|制御カテゴリ]]に含まれる。
 
[[Scratch 2.0]]では、クローンに関して次の3個のブロックが導入された。すべて[[制御ブロック|制御カテゴリ]]に含まれる。
  
25行目: 13行目:
 
{{メイン|() のクローンを作る (ブロック)}}
 
{{メイン|() のクローンを作る (ブロック)}}
 
<scratchblocks>[自分自身 v] のクローンを作る</scratchblocks>
 
<scratchblocks>[自分自身 v] のクローンを作る</scratchblocks>
このブロックは、指定したスプライトをクローン(複製)する。Scratch Day 2011プレアルファバージョンでは、スプライトを選択するためのドロップダウンリストは存在しなかった。
+
このブロックは、指定したスプライトをクローン(複製)する。Scratch Day 2011プレアルファバージョンでは、スプライトを選択するためのドロップダウンリストは存在せず、自分自身のみクローンが作成できた。
 
<scratchblocks>create clone ::control</scratchblocks>
 
<scratchblocks>create clone ::control</scratchblocks>
他のクローンを[[再帰|再帰的]]にクローン化することも可能。
+
他のクローンを[[再帰|再帰的]]にクローン化することも可能だが、クローンの制限に注意が必要。
  
 
===クローンされたとき===
 
===クローンされたとき===
39行目: 27行目:
 
このキャップブロックは、実行されたクローンを削除する。
 
このキャップブロックは、実行されたクローンを削除する。
  
== スプライトをまるごと複製する ==
+
== クローンで実行されるスクリプト ==
 次の方法を使えば、クローンブロックを使わずにスプライトを複製できる。<br>
+
{{メイン|クローンとトリガースプライトを分離する}}
 
+
クローンは、スプライトのすべてのイベントブロック(ただし、{{b|緑の旗が押されたとき}}を除く。これは、旗が押されたときにクローンがリセットされるから。)に反応する。つまり、メッセージを送った場合、すべてのクローンが受け取る。そうしたくない場合は、[[クローンとトリガースプライトを分離する]]必要がある。
方法1.複製したいスプライトを右クリックし、"'''複製'''"をクリックする。<br>
 
方法2.緑の旗の上にあるスタンプのマークをクリックしてから、複製したいスプライトをクリックする。<br>
 
 
 
この方法を使った場合、スクリプト、コスチューム、音がすべて複製される。<br>
 
  
== クローンした後の変数について ==
+
クローン中で「スプライトの他のスクリプトを止める」を実行した場合、同一クローン上で実行している他のスクリプトが止まる。(親に影響を及ぼさない)
 「このスプライトのみ」を選択して作成した変数については、クローンごとに別々の値が保持される。<br>
 
  
 +
== クローンの属性 ==
 +
{{メイン|クローン情報へのアクセス}}
 +
{{メイン|クローンの応用}}
 +
スプライトがx座標などの属性を持つように、クローンそれぞれも属性を持つ。
 +
* クローンされたとき、クローンを作るときに使った「クローンを作る」ブロックが
 +
** 別スプライトにあるとき: クローンされたスプライトの親
 +
** 同一スプライトにあるとき: 親
 +
** クローンにあるとき: そのクローン の属性を継承する。
 +
* クローンの属性の変更は、他のクローンやスプライトに影響を及ぼさない。(逆も)
 +
** クローンの情報にアクセスするには、すべてのスプライトで利用できるリストが必要である。
  
 
[[en:Cloning]]
 
[[en:Cloning]]
58行目: 51行目:
 
[[カテゴリ:Scratchプログラム]]
 
[[カテゴリ:Scratchプログラム]]
 
[[カテゴリ:クローン]]
 
[[カテゴリ:クローン]]
[[カテゴリ:Scratch 2.0]]
 
 
{{デフォルトソート:くろーん}}
 
{{デフォルトソート:くろーん}}

2019年10月13日 (日) 17:59時点における版

このきじは ひらがなのページがあります。ひらがなでよむ
クローンを実際に実行した時の画像。元の画像とは異なっているが、実際には見た目から変えないと変わらない。

クローンとは、動的に(=スクリプトを用いて)スプライトを複製すること、また複製されたスプライトをいう。Scratch 2.0で導入された。

たとえば、弾を連続して打ちたいときに、スプライトをたくさん用意するのは大変だが、クローンではブロックによりスプライトが複製できる。クローンは、停止ボタンや「すべてを止める」により一括削除できるほか、このクローンを削除するでひとつずつ削除できる。スタンプは、レイヤーが固定され、かつスクリプトを持つことができない。

同時に存在できるクローンの数には制限があり、プロジェクト全体で、Scratch 2.0で301個、Scratch 3.0で300個で、これを超えた場合にクローンは作成されない。

クローンに関するブロック

Scratch 2.0では、クローンに関して次の3個のブロックが導入された。すべて制御カテゴリに含まれる。

() のクローンを作る

詳細は「() のクローンを作る (ブロック)」を参照
[自分自身 v] のクローンを作る

このブロックは、指定したスプライトをクローン(複製)する。Scratch Day 2011プレアルファバージョンでは、スプライトを選択するためのドロップダウンリストは存在せず、自分自身のみクローンが作成できた。

create clone ::control

他のクローンを再帰的にクローン化することも可能だが、クローンの制限に注意が必要。

クローンされたとき

詳細は「クローンされたとき (ブロック)」を参照
クローンされたとき

このハットブロックは、クローンが作成されるとアクティブになる。以前作成したクローンや親スプライトではなく、新しく作成したクローンでのみ実行される。

このクローンを削除する

詳細は「このクローンを削除する (ブロック)」を参照
このクローンを削除する

このキャップブロックは、実行されたクローンを削除する。

クローンで実行されるスクリプト

詳細は「クローンとトリガースプライトを分離する」を参照

クローンは、スプライトのすべてのイベントブロック(ただし、緑の旗が押されたときを除く。これは、旗が押されたときにクローンがリセットされるから。)に反応する。つまり、メッセージを送った場合、すべてのクローンが受け取る。そうしたくない場合は、クローンとトリガースプライトを分離する必要がある。

クローン中で「スプライトの他のスクリプトを止める」を実行した場合、同一クローン上で実行している他のスクリプトが止まる。(親に影響を及ぼさない)

クローンの属性

詳細は「クローン情報へのアクセス」を参照
詳細は「クローンの応用」を参照

スプライトがx座標などの属性を持つように、クローンそれぞれも属性を持つ。

  • クローンされたとき、クローンを作るときに使った「クローンを作る」ブロックが
    • 別スプライトにあるとき: クローンされたスプライトの親
    • 同一スプライトにあるとき: 親
    • クローンにあるとき: そのクローン の属性を継承する。
  • クローンの属性の変更は、他のクローンやスプライトに影響を及ぼさない。(逆も)
    • クローンの情報にアクセスするには、すべてのスプライトで利用できるリストが必要である。