Scratchでスプライトとスプライトがぶつかったかどうかを判定するには「〜〜に触れた」という調べるブロックを使うことができます。しかしこのブロックでは、1ドットでも重なってしまったらイベントが発生してしまいます。そのため、このようなロケットの自キャラを用意した場合、炎や煙の部分にも当たり判定ができてしまいます。

そのため、表示用のスプライトとは別に当たり判定用のスプライトを用意して、常に当たり判定用のスプライトに表示用のスプライトが重なるようにします。

最後にこのスプライトを見えないようにする必要がありますが、「隠す」ブロックを使ってしまうと、「〜〜に触れた」というイベントが発生しなくなってしまいます。そのため、次の方法のいずれかで見えなくします。
- 当たり判定用のスプライトが表示用のスプライトに完全に隠れるような大きさにして、表示用のスプライトを最前面に移動する
- 幽霊の効果を100%にする
- 表示用のスプライトを複製して、当たり判定部分以外の場所を消しゴムで消したものを当たり判定用のスプライトにして、重なって表示されても見た目が問題ないようにする。
それぞれ一長一短あります。適した方法を使ってください。
サンプルプロジェクト