scratchのはじめ方

 ensyu-c, lecture, PcTips, software  scratchのはじめ方 はコメントを受け付けていません。
10月 052018
 

Scratchを使って、プログラミングをはじめます。

ここでは、ヒント(チュートリアル)を見て、
実際にドラッグしていきながら、
どのように動かすのかを理解していきます。

では、はじめましょう。

まず、Scratchで作る をクリック。
(公式サイトからつくるをクリック。)

  1. ヒントが右に表示されているか、確認します。
  2. すると右側にチュートリアルのテーマが表示されます。
  3. 表示されていなければ、ヒントをクリック。
    もしくは右側のクエッションマークをクリック。
  4. 13個あるテーマを順に進めます。
  5. 指示に従って、プログラムを作成していきますが、
    ブロックをドラッグしていくだけですので、
    直感的に進めていけます。
  6. では、まず最初から。
    Scratchをはじめようをクリック。
  7. 始める、もしくは動かしはじめるをクリック。
    どちらでもかまいません。
  8. 〜歩動かすをドラッグとありますので、
    左側のスクリプトから、10歩動かすを探します。
  9. 今見ているヒントの左横がスクリプトエリアと呼ばれています。
    ここに、10歩動かす と書いてある青いブロックをドラッグします。
  10. つぎに音を追加します。
    スクリプトのメニューから音をクリック。
    〜のドラムを〜泊鳴らす を探します。
  11. 探せたら、スクリプトエリアにドラッグ。
    10歩動かすの下にくっつけます。
  12. このように順番にブロックをつなげていけば、
    コード(プログラム)完成です。
  13. 手元のコンピュータにダウンロードをクリック。
  14. デスクトップに保存します。
  15. 次のテーマに移ります。
  16. テーマ終了ののち、ダウンロードしたファイルを(複数のテーマを終了したときは圧縮してから)、課題提出。

 

スピードアップアイテムを追加する-HSP

 ensyu-c  スピードアップアイテムを追加する-HSP はコメントを受け付けていません。
7月 232017
 

課題のスピードアップアイテム追加のプログラムを作成する際の手順

data にある chgstage.hspに、アイテム power.bmp を使用して、
自機から打ち出される弾の数を追加したものが、
powerup.hsp です。

speed.bmpを使用して、
自機から打ち出される弾のスピードを速くするためには、
powerup.hsp を参考にして(コピーして)、
修正していきます。

そこで、まずどこが違っているのかを見つけます。

Power up アイテムを追加した場合の変更点

2行目

2行目のd3m.hspは、23行目のd3timer()が書かれているファイルです。
これを include で呼び出して、使っていきます。

8,9行目で6番のbufferに、power.bmp を読み込んでいます。

43行目左

自機弾の数の初期値と最大値の設定 39-41行目が45-50行目に変更

43行目右

110行目

最初のif で、pwfが1(画面上にpowerupアイテムが表示されている)かどうかを判断しています。

2つ目のif で、画面の下まで達したら、pwfを0(ゼロ:画面上にpowerupアイテムが出ていない)にします。
pwy : powerupアイテムの表示されている位置(y座標)
wys : ウィンドウの縦のサイズ

つぎのif では、百回のループのうち1回アイテムを表示するようにしています。

4つの目のif で、時間をはかり10,000 msに達したら、弾の数(tmx)をもとに戻します。

最後のif では、画面に表示中であれば、
ゲットできたかを判断するサブルーチン(getchk_p)に飛びます。

228行目

自機が表示中のとき、自機とpowerupアイテムがぶつかったかどうかを判断し、
ぶつかった場合にゲットしたとして、弾の数を増やしています。
234行目では、始まりの時間を設定しています。

ぶつかっていなければ、そのままgcopy 6〜で、6番のbufferからアイテムの画像をコピー、表示します

speed up アイテムを追加する場合

  1. powerup.hspを読み込みます、(ファイルから開く、あるいは黒い画面にドラッグ。)
  2. 名前をつけて保存、speedup.hspのように名前をつけます。
  3. 8, 9行の2行をコピー、新しくbufferをつくり(7番とでもしましょう)、
    speed.bmp を読みます
  4. 45行目-47行目tmxinitなどの変数を参考に、スピードアップのための
    変数を設定します。(例えば、tsp、tspinit、tspmaxのような名前で設定)
  5. 110行目にあるように、spx、spy、spfのような名前の変数を使って、
    112-129行目をコピー、そのまま下に貼り付けし、
    speedupアイテム用のスクリプトを作成します。
    getchk_pをgetchk_spなどにしましょう。
  6. 230-239行目のスクリプトをコピーし、そのまま後ろに貼り付けます。
  7. *getchk_sp に変更し、pwの付いた幾つかの変数を、tspなどに変えます。
  8. 最後のgcopyの6番を7番などspeedupアイテムを読み込んだ番号に変更します。
  9. 自機弾をすすめているところを探します。
  10. -=16の数字を変数に変更し、完成です。

ゲームの作成8

 ensyu-c, lecture  ゲームの作成8 はコメントを受け付けていません。
5月 292017
 

敵キャラの種類を増やす <stage 15>

  1. 敵キャラBを複製します。
  2. ボスキャラboss.png を読み込みます。
  3. 名前をボスキャラに変更します。
  4. 敵キャラの弾丸を複製します。
  5. ebullet.png を読み込みます。
  6. 名前をボスキャラの弾丸に変更します。
  7. ボスキャラのスクリプトを以下のように変更します。

  8. ボスキャラの弾丸に移ります。
  9. 以下のように変更します。
  10. 完成です。

詳しくは、以下の書籍をどうぞ。
とてもわかりやすく書かれているため、
楽しんでプログラムできます。

ゲームの作成7

 ensyu-c, lecture  ゲームの作成7 はコメントを受け付けていません。
5月 222017
 

13のステージは、三角関数(sin, cos)のしくみを使い、
敵がカーブを描いて、進むようにします。

stage13の三角関数の方は、参考に動きを確認し、
次に進みます。

敵キャラの動きを複雑に <stage 13>

  1. 敵キャラのスクリプトに移ります
    ・y座標を-2ずつ変える、のブロックの上に、
    x座標をsinで計算したものを追加します。
    ・◯✕◯を使い、左側に2を右側にsinを入れます。

    ・爆発したとき、動き回らないよう逆の動きを加えます。
  2. 上の敵キャラを複製し、2体にします。
  3. 2体を残し、他の敵キャラを削除します。
  4. このとき敵キャラは、sinを使ってx座標を求めているので、
    いつも出てきた直後、右向きに移動します。
  5. あと2体作成したいのですが、sinをcosに変えてみます。
    こうすることで、左向きに移動します。
  6. まず、sinを用いた1つを複製します。
  7. cosなど合計4箇所を変更します。
  8. cosの敵キャラを複製し、2体にして完成です。

敵キャラの種類を増やす <stage 14>

  1. 敵キャラのスプライトを複製します。
  2. コスチュームに移ります。
  3. enemy2.png を開きます。
  4. enemyを削除します。
  5. 敵が5体になりました。
  6. 敵キャラ5を敵キャラBに変更します。
  7. ほかの4体も敵キャラA、A2、A3と変更します。
  8. スクリプトに移り、4箇所、変更します。
    ・回転せず、真っ直ぐ進む
    ・x座標の乱数を変更
    ・定義の中をenemy2に変更
    ・90度に向ける、を追加

    ・敵キャラを倒した時、スコアを200加点します。
  9. 敵から弾丸が発射されるようにします。
  10. 弾丸を右クリック、複製をクリック。
  11. ebullet.png を開きます。
    元の弾丸は削除しておきます。
  12. 下図のようにスクリプトを修正。
  13. 敵キャラBに移り、下記スクリプトを追加します。
    ・プレイ中かどうか
    ・◯かつ◯を使い、
    左の◯:敵キャラが通常のコスチュームか(爆発中でないか)
    右の◯:自機との距離が近いか
    をはめ込みます。
  14. stage14終了

詳しくは、以下の書籍をどうぞ。
とてもわかりやすく書かれているため、
楽しんでプログラムできます。

ゲームの作成6

 ensyu-c, lecture  ゲームの作成6 はコメントを受け付けていません。
5月 222017
 

スタートとゲームオーバーの画面追加 <stage11>

  1. ステージをクリック。
  2. 背景をクリック。
  3. 2つの画面を追加。
  4. 以下のように配置を変え、名前を変更します。
  5. スクリプトに切り替え、以下のようにブロックを追加。
    ・はじめは背景をスタートにします。
    ・スペースキーが押された時、背景をプレイ中にします。
    ・残機数が0を受取り、背景がプレイ中なら、ゲームオーバーに変更。
  6. ゲーム開始後、効果音を鳴らします
    ・背景がプレイ中なら、終わるまでBGMを鳴らします。
    ・ゲームオーバーかリセットを受け取ったら、すべての音を止めます。
  7. 自機のスクリプトに移ります。
    以下の6項目を修正します。
    ・リセットを受け取った時、スコアを0、残りを3にする
    ・リセットを受け取った時、隠すを追加

    ・ゲーム開始を受け取った時、自機を真ん中に移動する、に変更
    ・ゲーム開始を受け取った時、自機を左右に移動する

    ・残り=0なら隠す代わりに、メッセージを送信
    ・ゲームオーバーを受け取った時、隠すを追加
  8. 弾丸のスクリプトに移ります。
    ・リセットやゲームオーバーを受け取った時、隠す
    ・プレイ中のみ、弾丸を発射する。
    もし、を追加、調べる、から以下のブロックを選び、修正。

  9. 敵キャラのスクリプトに移ります。
    ・緑の旗がクリックされたら、をゲーム開始を受け取ったとき、に変更

    ・プレイ中のみ、移動する
    ・リセットやゲームオーバーを受け取った時、隠す
  10. 敵キャラのスクリプト全体

ハイスコアの記録 <stage 12>

  1. 自機のスクリプトを変更
    ・データー変数を作る、からハイスコアを作成。
    ・ハイスコアをスタート画面だけに表示します。(ゲーム開始で隠す)
    ・リセットやゲームオーバーを受け取った時、表示。
    ・ゲーム開始を受け取った時、自機を真ん中に表示。
    ・ゲームオーバーを受け取ったとき、自機を隠し、
    スコアがハイスコアを上回ったなら、スコアを新しくハイスコアとする。

詳しくは、以下の書籍をどうぞ。
とてもわかりやすく書かれているため、
楽しんでプログラムできます。

ゲームの作成5

 ensyu-c, lecture, PcTips, software  ゲームの作成5 はコメントを受け付けていません。
5月 212017
 

ゲームのスコアと自機の残機数の記録 <stage 10>

  1. 自機をクリック。
  2. データをクリック。
  3. スコアと入力。
  4. OKをクリック。

    ・スコア関連のブロックが表示されます。
  5. 下図のように旗がクリックされたら、スコアを0にします。
  6. 次に敵キャラをクリック。
  7. 最後のスクリプトに、
    スコアを100ずつ変えるを加えます。
  8. この設定により、敵キャラを一機撃墜すると、
    スコアが100増えます。
  9. 次に自機は3回、敵と衝突すると消えるようにします。
  10. 自機をクリック。
  11. データ変数を作るとクリック。
  12. 残りと入力。
  13. このスプライトのみをチェック。
  14. OKをクリック。
  15. スコアと残りが並んで表示されます。
  16. スタート時の残機数を3機にするため、
    初期化のスクリプトに、ブロック「残りを3にする」を追加。
  17. 自機と敵キャラが衝突した、を受け取ったとき、
    隠す、を、残りを−1ずつ変える に変更。
  18. 敵キャラに移動。
  19. 自機と敵キャラが衝突した を送るとき、隠します。
  20. 自機に移動。
  21. 衝突したとき、残りが0なら隠し、
    そうでなければ、0.2秒明るくして衝突を表現します。
    緑の部分は、演算のブロックを使います。
  22. 自機のその他の部分
  23. 敵キャラの残りの部分

詳しくは、以下の書籍をどうぞ。
とてもわかりやすく書かれているため、
楽しんでプログラムできます。

ゲームの作成4

 ensyu-c, lecture, PcTips, software  ゲームの作成4 はコメントを受け付けていません。
5月 212017
 

ブロックの作成<stage 9>

  • 敵キャラをクリック。
  • 敵キャラのスクリプトの以下の4行をブロックを使い、簡略化します。

    ・その他−ブロックを作る とクリック。
    ・オプションをクリック。

    ・テキストをクリック。
    ・初期化する と入力。
    ・OKをクリック。
  • 「初期化する」のブロックが出現します。
  • 同時に、右側のスクリプトエリアに定義「初期化する」のブロックが表示されます。
  • 4行を下に繋げます。
  • 次にx座標を変えられるように、変更します。
  • 定義「初期化する」を右クリック。
  • 編集をクリック。
  • 「数値の引数を追加」をクリック。
  • number1の代わりに初期x座標と入力。
  • OKをクリック。
  • x座標を〜 の乱数の部分をドラッグし、外に出します。
  • 初期x座標を空いた部分にドラッグ。
  • 乱数の部分を右クリック。
  • 複製をクリック、2つにします。
  • 「初期化する」の1の部分に複製した乱数のブロックをドラッグ。
  • 定義の部分をもう少しわかりやすいように修正します。
    定義「初期化する」を「x座標を」に変更し、
    後ろのテキストに、「で初期化する」を入力。

    図 定義部分の完成

詳しくは、以下の書籍をどうぞ。
とてもわかりやすく書かれているため、
楽しんでプログラムできます。

ゲームの作成3

 ensyu-c, lecture, Mac, PcTips, software  ゲームの作成3 はコメントを受け付けていません。
5月 212017
 
  • 敵キャラの爆破アニメの追加 <stage 9>
    1. 敵キャラをクリック。
    2. コスチュームをクリック。
    3. 「ファイルから新しいコスチュームをアップロード」をクリック。
    4. bom.pngを開く。
    5. bom.pngが追加されます。
    6. 最初はenemyのコスチュームにして、100%の大きさで表示します。
      ・敵キャラのスクリプト1
    7. 敵キャラに着弾したを送るのあとに、以下を追加します。
      コスチュームをbomにする
      20回繰り返す
      大きさを5ずつ変える
      幽霊の効果を5ずつ変える
      ・敵キャラのスクリプト2

       敵キャラのスクリプト2
    8. 爆発後も回り続けるので、動かないようにします。
      20回繰り返すの後に、以下の2つのスクリプトを追加します。
      ・Y座標を2ずつ変える
      ・左に5度回す

       敵キャラのスクリプト2の修正

詳しくは、以下の書籍をどうぞ。
とてもわかりやすく書かれているため、
楽しんでプログラムできます。

ゲームの作成2

 ensyu-c, lecture, PcTips, software  ゲームの作成2 はコメントを受け付けていません。
5月 152017
 
  1. 弾丸の発射 <stage 7>
    1. スペースキーを押すと、自機から弾丸を発射する機能を作ります。
      ・弾丸 bullet.png を読み込みます。
      ・名前を 弾丸 に変更します。
      ・縦向きに変更します。
      ・動きをクリック。

      ・「90度に向ける」の90を0に変えて、クリック。

      すると、縦に変わります。
    2. スペースキーが押された時だけ、
      弾丸が自機から表示され、
      画面の上方向へ進むようにします。
      ・メッセージ1を受け取ったときのブロックを使い、
      新しいメッセージを作成。

      ・敵キャラに着弾した、と入力。

      ・敵キャラに着弾したら、隠します。
    3. 敵キャラへの着弾判定
      ・敵キャラに戻ります。
      ・弾丸の黄色に触れたとき、メッセージ「敵キャラに着弾した」を送ります。
      ・y座標を-180にして、画面上方に移動しておきます。
      ・同様にして、自機と敵キャラの衝突判定を設定します。
      ・自機に触れたら、メッセージ「自機と敵キャラが衝突した」を送ります。
    4. 自機キャラに戻ります。
      ・「自機と敵キャラが衝突した」を受け取ったとき隠します。
      ・自機が消えたままになるため、旗がクリックされたら、表示するようにします。
  2. 効果音とBGMの追加 <stage 8>
    弾丸を発射したときの効果音やバックグラウンドミュージックを追加します。
    <弾丸>のスプライトをクリック。
    ・音のカテゴリーにあるブロックを使ってスクリプトを作ります。
    ・ポップを削除します。

    音をライブラリーから選択。

    laser1を開きます。

    <ステージ>をクリック。

    ・ファイルから新しい音をアップロード

    ・BGMを開きます。
    以下のスクリプトを入力。
    注)79の音符を〜、など大きな数字の部分は直接入力します。

    <参考>
    ・もし、Scratchの音ライブラリー以外の音源を使う場合は、
    著作権の侵害に注意します。音楽ファイルを配布しているサイトなどを利用した場合は、適切な情報を「作品に対する貢献とメモ」に掲載します。
    ・BGMに使うフリー音楽素材の1つに
    Senses Circuit http://www.senses-circuit.com があります。
  3. 現時点での敵キャラのスクリプト
    ・弾丸の黄色に触れたとき、lazer2の音を鳴らすを追加します。
  4. 現時点での弾丸のスクリプト

詳しくは、以下の書籍をどうぞ。
とてもわかりやすく書かれているため、
楽しんでプログラムできます。

ゲームの作成1

 ensyu-c, software  ゲームの作成1 はコメントを受け付けていません。
5月 072017
 
  1. 自機の作成 <stage 2>
    1. 自機の読み込み

      を開きます。
    2. 自機の名前を変更します。
      iのマークをクリック。

      自機に変更します。
    3. 左右の矢印キーで自機を移動します。
      ・右(左)向き矢印キーが押された、と もし〜なら、
      を組み合わせます。
      ・繰り返して矢印キーが押されているか(ずっと)を調べます。
      ずっと、で囲みます。
  2. 自機にロケット噴射のアニメーションを加えます。<stage 3>
    ・コスチュームに切り替えます。
    ・player2, player3 を読み込みます。
    ・player2を右クリック、copy(複製)を選びます。

    ・4番目に配置します。

    ・自機のコスチュームを切り替えて(次のコスチューム)、表現します。

    ・ステージをクリック。

    ・背景をクリック。
    ・backdrop1になっていることを確認。

    ・塗りつぶすをクリック。

    ・右側の白い背景をどこでもいいのでクリック。
    すると黒い背景に変わります。

    もし、ほかの色に変えるときは、下の一覧から選びます。
  3. 敵キャラの作成 <stage 4>
    1. 敵キャラenemy.png を読み込みます。
    2. 敵キャラに名前を変更。
    3. ステージの上端(y座標=180)から敵キャラが回転(5度回す)しながら、画面下(y座標を-2ずつ)に進みます。
    4. ステージの下端(y座標<-180)まで移動すると、ステージの上端からまた出現します。
  4. 敵キャラの複製 <stage5>
    ・敵キャラを二体に増やしていきますが、
    いつも同じ場所から同時に出てしまうと困るので、
    登場する場所(x座標を-220から220)と
    タイミング(1から5までの乱数)をずらします。
    ・左のスプライトの一覧にある敵キャラを右クリック。
    ・複製をクリック。
    ・2回繰り返して、4機の敵にしましょう。
    ・自機に戻ります。
    ・敵キャラにぶつかったら消えるように設定します。
    ・色を調べるブロックを使用

<参考>
詳しくは、以下の書籍をどうぞ。
とてもわかりやすく書かれているため、
楽しんでプログラムできます。