「クローン」の版間の差分

提供: Japanese Scratch-Wiki

(rewrite)
(Category:Scratch 2.0を除去 (HotCat使用))
51行目: 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座標などの属性を持つように、クローンそれぞれも属性を持つ。

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

内部エラー

提供: Japanese Scratch-Wiki

[Xc5T9Rke10I0c1pYvrqKCwAAAAo] /w/index.php?title=%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3&curid=38&diff=20330&oldid=20329 TypeError from line 123 of /home/scratchwiki/wikis/en/w/extensions/PageImages/includes/LinksUpdateHookHandler.php: Argument 2 passed to PageImages\Hooks\LinksUpdateHookHandler::scoreFromTable() must be of the type array, integer given, called in /home/scratchwiki/wikis/en/w/extensions/PageImages/includes/LinksUpdateHookHandler.php on line 90

Backtrace:

#0 /home/scratchwiki/wikis/en/w/extensions/PageImages/includes/LinksUpdateHookHandler.php(90): PageImages\Hooks\LinksUpdateHookHandler->scoreFromTable(integer, integer)
#1 /home/scratchwiki/wikis/en/w/extensions/PageImages/includes/LinksUpdateHookHandler.php(55): PageImages\Hooks\LinksUpdateHookHandler->getScore(array, integer)
#2 /home/scratchwiki/wikis/en/w/extensions/PageImages/includes/LinksUpdateHookHandler.php(32): PageImages\Hooks\LinksUpdateHookHandler->doLinksUpdate(LinksUpdate)
#3 /home/scratchwiki/wikis/ja/w/includes/Hooks.php(195): PageImages\Hooks\LinksUpdateHookHandler::onLinksUpdate(LinksUpdate)
#4 /home/scratchwiki/wikis/ja/w/includes/deferred/LinksUpdate.php(176): Hooks::run(string, array)
#5 /home/scratchwiki/wikis/ja/w/includes/jobqueue/jobs/RefreshLinksJob.php(276): LinksUpdate->doUpdate()
#6 /home/scratchwiki/wikis/ja/w/includes/jobqueue/jobs/RefreshLinksJob.php(121): RefreshLinksJob->runForTitle(Title)
#7 /home/scratchwiki/wikis/ja/w/includes/jobqueue/JobRunner.php(275): RefreshLinksJob->run()
#8 /home/scratchwiki/wikis/ja/w/includes/jobqueue/JobRunner.php(185): JobRunner->executeJob(RefreshLinksJob, LBFactorySimple, BufferingStatsdDataFactory, integer)
#9 /home/scratchwiki/wikis/ja/w/includes/MediaWiki.php(941): JobRunner->run(array)
#10 /home/scratchwiki/wikis/ja/w/includes/MediaWiki.php(900): MediaWiki->triggerJobs()
#11 /home/scratchwiki/wikis/ja/w/includes/MediaWiki.php(720): MediaWiki->restInPeace(string)
#12 /home/scratchwiki/wikis/ja/w/includes/MediaWiki.php(739): MediaWiki->{closure}()
#13 /home/scratchwiki/wikis/ja/w/includes/MediaWiki.php(543): MediaWiki->doPostOutputShutdown(string)
#14 /home/scratchwiki/wikis/ja/w/index.php(43): MediaWiki->run()
#15 {main}