スクラッチ scratch

【スクラッチ】シューティングで敵の弾をつくる方法【画像たっぷり】

ブロックを組み立てるようにプログラミングできる『スクラッチ(scratch)』。

さぁなんのゲームを作ろうかとなった時に、おそらく人気ナンバーワンと思われるのが、

グラディウスなどでおなじみの『シューティングゲーム』。

今回は、『シューティングゲーム』の中でも『弾のつくりかた』をまとめています。

アオキ
説明の都合上、画面左から右に『弾(たま)』を発射するようにします。

※後ほど画面右から左、画面上から下も解説します。

Sponsored link

スクラッチでシューティング 準備

準備という事で、『キャラクター』と『弾(たま)』を用意しておきます。

今回は、敵の弾でこのフリー素材サイトから『エフェクト』で検索して持ってきました。
ぴぽや倉庫

『キャラクター』は、

今回は『fire』というメッセージを送るようにしました。

まずはこれでOK。

『弾(たま)』の方は、
緑の旗がクリックされたら、ひとまず隠しておきます。

スクラッチでシューティング 基本編 1つの弾を発射してみる

ここがポイントなんですが、
『fire』を受け取ったときに、
『弾(たま)』を動かすんじゃなくて、

『自分自身のクローン』をつくるようにします。

『クローンされたとき』というブロックを使い、つないでいきます。

  1. 『クローンされたとき』
  2. 『キャラクター(今回はdragon)』の場所にいって
  3. 表示させて
  4. ずっと右の方向に動かしつつ
  5. もし端に触れたら
  6. クローンを削除

という流れになっています。

うまくいくとこんな動きになります。

Sponsored link

画面右から左に発射させる場合

『キャラクター』・・向きを左右のみにして、向きを『-90』にします。

『弾(たま)』・・向きを『-90度』にして、『端に触れた』ら消えるようにします。

アオキ
注意点として、マイナスが全角になっているとうまく動かないので、半角で設定するようにしてください。

向き、角度の参考記事

画面上から下に表示させる場合

『弾(たま)』・・向きを『180度』にして、『端に触れた』ら消えるようにします。

向きを調整することで、

  • 画面左から右
  • 画面右から左
  • 画面上から下
  • 画面下から上

どの方向にも『弾(たま)』が発射できるようになります。

Sponsored link

スクラッチでシューティング 『弾』の発射 割り算で計算する

この方法で『弾(たま)』を発射することはできるのですが、

小さなクリエイター
『弾(たま)』を2つ同時、3つ同時に出したいんです。

というリクエストが来たとしたら、

果たしてどの向きに『発射』すればいいのか・・

となってしまいます。

『弾(たま)』を2つ同時、3つ同時に出すにはどうしたらいいかというと、

『割り算』を使うことで、向きが計算できます。

どういうことかというと、

例えば今回は、1つの『弾(たま)』を90度に向けて発射しています。

  • 180度を1で割る・・180度のまま
  • 180度を2で割る・・90度

ということで、180を2で割れば、発射したい方向がもとまります

コードはこうなります。

発射ししたい数 + 1 で割る、ということですね。

アオキ
これを応用すれば、弾をいくつでも同時に発射できるようになりまっせ。

スクラッチでシューティング 『弾』を2つ同時に発射する

『弾(たま)』を2つ以上同時に発射するには、
『割り算』を使えばいいのですが、
もう少しだけコツがいります。

流れとしては以下になります。

  1. 計算する角度を0にする・・初期化
  2. 角度を計算する
  3. クローンをつくる
  4. クローンごとに向きを決める
  5. 全てのクローンをつくった後に、同時に動かす

別記事で花火を作った時も同じような流れなので参考にしてみてください。

参考記事

全体のコードはこんな感じです。

2つ同時、3つ同時、4つ同時と後からでも変えやすいように、『変数』をつくっておきます。

  • 変数・・文字や数値を入れておく箱。中身を変更できる

今回は、

  • 『角度の変化』
  • 『弾の角度』

という2つの変数をつくりました。

  • 『角度の変化』・・弾と弾の間の角度
  • 『弾の角度』・・弾自体の角度
  1. 計算する角度を0にする・・初期化
  2. 角度を計算する
  3. クローンをつくる

のコード部分が以下です。

クローンを全て作った後に『発射』メッセージを送るようにしています。

4.クローンごとに向きを決める

のコードはこうなります。

5.全てのクローンをつくった後に、同時に動かす

がこんなコードになります。

発射メッセージを受け取ったときに、
全てのクローンを同時に向きの方向に動かしています。

もう一つ。

スクラッチでは計算がちょっと遅いのか、
1秒間隔だとうまく角度の初期化がされなかったので、
間隔を1.5秒くらいにしておきます。

うまくブロックが組めるとこんな動きになります。

Sponsored link
アオキ
『変数』を使うのはちょっと慣れが必要かもです。

3つでも4つでも5つでも

同じ流れで、

弾の向きを 180 割る 4 ・・45度ずつ

として、

3回繰り返せば、3発同時に発射できます。

弾の向きを 180 割る 5・・36度ずつ
で4回繰り返せば、4発同時に発射できます。

弾の向きを 180 割る 5 ・・30度ずつ
で5回繰り返せば、5発同時に発射できます。

5発同時に発射するとこんな動きになります。

スクラッチでシューティング まとめ

変数を使うところと、
角度を割り算で計算するところは、

はじめはちょっと慣れが必要かもと思いますが、

使っているうちに感覚がわかってくるんじゃないかなと思います。

同じようなコードで、2発、3発、4発、5発と発射できるので、

『関数』をつくるともっとスッキリつくれるかなと思うので、

いずれ記事にしたいと思います。

アオキ
いずれシューティングゲームしっかりつくりたいなぁ(なかなか時間がとれておりまへん・・
created by Rinker
翔泳社
¥1,944 (2019/07/16 23:31:47時点 Amazon調べ-詳細)

『スクラッチ』ではこんな記事も読まれています。

1. 【スクラッチ】ジャンプをする方法〜3ステップでジャンプできるようになる〜

2. 【スクラッチ】角度や回転を使う方法【動画】【初心者向け】

3. 『スクラッチ』で花火をつくる方法【動画あり】【初心者向け】

4. 【スクラッチ】シューティングで敵の弾をつくる方法【画像たっぷり】

5. スクラッチでセーブする方法を考えてみる〜基本的な考え方〜

6. スクラッチプログラミングでマリオ風の横スクロールアクションゲームを参考にいいとこ取りしてみる

7. スクラッチ(scratch)とマインクラフト(minecraft)を連携させて子ども向けプログラミングのネタを増やしてみた

8. 【スクラッチ】時間が経つと敵が増えて難しくしたい、というリクエストを叶えるために

9. プログラミングと三角関数〜小学生でもすんなりわかる三角関数を目指して

 

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


関連記事

  1. CoderDojo

    【とにかくオススメ】子どものプログラム練習にマインクラフトがオススメな4つの理由

    子ども向け無料プログラミング道場『CoderDojo熊本』を立ち上げて…

  2. スクラッチ scratch

    『スクラッチ』で花火をつくる方法【動画あり】【初心者向け】

    ブロックを組み立てるようにプログラミングができる『スクラッチ(scra…

  3. スクラッチ scratch

    【スクラッチ】ジャンプをする方法〜3ステップでジャンプできるようになる〜

    子ども向け無料プログラミング寺子屋『CoderDojo熊本』開催中…

  4. スクラッチ scratch

    スクラッチでセーブする方法を考えてみる〜基本的な考え方〜

    子供向け無料プログラミング寺子屋『CoderDojo熊本』にて参加され…

Sponsored link

最近の記事

  1. リベラルアーツ

    『ニュータイプの時代』〜リベラルアーツとテクノロジーの融合〜
  2. プログラミング

    『プログラミング教育』より大事な事を考えてみる~AI時代を見据えて~
  3. 数学

    【微分】わかりやすくプログラミング目線で整理してみる【初心者向け】
  4. クリエイティブコーディング

    三角関数の使い方〜わかりやすさ重視でまとめてみた【動画あり】
  5. Laravel

    【Laravel(PHP)】でできる事をわかりやすく(ざっくりと)まとめてみた【…
PAGE TOP