ネプリーグみたいなクイズをScrachで作る②
タイムオーバーの機能を追加します

ゲームオーバーのロゴのスプライトを作成し、下記のようにコードを入れます

ネプリーグみたいな漢字の読み方を当てるクイズをScrachで作る方法を紹介します。
「変数」タブの「リストを作る」をクリックして、リストを作ります
左下の「+」ボタンを押して、問題の答え(この場合は漢字の読み方)のリストを作ります。
ネコのスプライトのコードに下記を入力します。
漢字用のスプライトを作成し、コスチュームを問題分だけ追加して作成します。
漢字用のスプライトに下記のコードを入力します
音楽も入れてみます。
好きなBGMをフリー素材でダウンロードして、それがランダムで流れるようにします。
ネコのスプライトのコードに得点の加算を追加します
前回に引き続き、Scrachでブロック崩しゲームを作る方法を紹介します。
今回は、新しい種類のブロック(跳ね返らないブロック・2回当てないと壊れないブロック)の作り方を紹介します。
Button3を選択して右クリックして「複製」を選択します。
新しく複製されたButtonのスプライトコードから「ブロック接触を送る」を削除します。
これで透過するブロックは完成です。
ただ、このままでは複製する前のブロックと同じ場所に表示されてしまい、どちらかが見えなくなってしまうので、表示する場所をずらします。
ずらしたいButtonスプライトの位置を定義している箇所を直せば、場所を変更できます。
↑こちらは高さ方向(y座標)の位置を変更する時に変える場所です。
先ほどと同じように、Button3を複製して新たなブロックを作ります。
コスチュームを追加して
コスチューム1:最初の状態
コスチューム2:一回当たった状態
の見た目を作ります。
そして、ブロックを消している条件のところに「もし・でなければ」を追加し、
・コスチューム番号が1なら:次のコスチュームにする
・でなければ(つまりコスチューム番号が2なら):このクローンを削除する
を追加します。
これで2回当てないと消せないブロックを追加できます。
透過ブロックと同じように、このブロックを配置する座標も普通のブロックとずらせば完成です。
今回は、Scrachで↑このようなブロック崩しゲームの作り方を紹介します。
スプライトには「Paddle」「Ball」「Button3」の3つを使います。
最初に受け皿をキー操作で動かす部分を作ります。
「Paddle」のスプライトを選択し、以下のコードを作ります。
こうすると、左右キーで受け皿を動かせるようになります。
また、ボールと接触した時に「メッセージ1」を送るようにしています。
次にボールを動かすところを作ります。
まずは音を選びます。
「音」タブの画面の左下の「+」マークを押して、好きな音を追加します。
以下の時に鳴らす音を、自由に選んでみてください。
① ボールが受け皿に当たって跳ね返るとき
② ボールがブロックに当たってブロックが壊れるとき
③ ボールが落ちてゲームオーバーになったとき
ここでは、①「Wobble」、②「Suction Cup」③「Alien Creak2」としてみました。
「Ball」のスプライトに以下のコードを作ります。
・ボールの落下とゲームオーバーの処理
・ボールが受け皿に当たったときの処理
・ボールとブロックが接触した時の処理
※ イベントの「新しいメッセージ」から「ブロック接触」というメッセージを追加しました
「Button3」のスプライトに以下のコードを追加します
・ブロックの配置処理
・ブロックの接触(消去)処理
以上で以下のような、ブロック崩しゲームの完成です。
ぜひ改良して、自分だけのオリジナルステージなど作ってみてください!
前回は主人公をジャンプさせる方法を紹介しました。
次にステージを作る方法を紹介します。
ステージの作成には第1回でも紹介したSuperpowers Asset Packを活用してみたいと思います。
ステージの編集ソフトは Tiled というフリーソフトを使うと簡単に行えます。
Tiled をダウンロードしたら立ち上げて、新しいプロジェクトを作成します。
次に新しいマップを作成します。
Scrachの画面サイズは「480 × 360」なので、分かりやすくそれに合わせたステージを作成します。
今回素材として使用する Superpowers Asset Pack の最小単位に合わせて
・タイルの大きさ:幅 8 px、高さ 8 px
・マップの大きさ:「固定」⇒「幅 60:タイル(480ピクセル)」×「高さ 45:タイル(360ピクセル)」
Superpowers Asset Packのタイルセットを開きます。
↓タイルセットの場所↓
(任意のパス)/superpowers-asset-packs-master/prehistoric-platformer/background-elements/tileset-1.png
※タイルファイルを選択する際、「マップに埋め込み」にチェックを入れます。
タイルファイルを開くと下図のように、右下の「タイルセット」の領域に素材が表示されます。
タイルセットをマウスでドラッグして、使用したい領域分を選択します。
左クリックで、ハンコを押すようにペタペタと好きなタイルを貼り、ステージを作っていきます。
ステージが完成したら、画像ファイルとして保存します。
行ごとに大きさが変動するような2次元配列を使いたいときは、List型の2次元配列を使うと便利です。
下記のように使用します。
public void DataGet(string[] data_lines) {
//int j = 0;
Boolean is_first = true;
// 最初のドラッグ&ドロップで取得するデータ
if (IsData == false)
{
this.titles = data_lines[0].Split(','); // 先頭行を1次元配列で取得
}
list_num = data_lines.Length;
foreach (string line in data_lines)
{
List<int> Items = new List<int>();
// データを一次元配列に入れる
string[] cells = line.Split(','); // cells[]に各行の値1次元配列で取り込む
if (is_first == true)
{
is_first = false;
}
else {
/* データ */
for (int j = 0; j < cells.Length; j++)
if (cells[j] == "") {
break;
}else
{
Items.Add(Convert.ToInt16(cells[j]));
}
pList.Add(Items);
}
}
}
リストのサイズの最大値を取得する場合は下記のように記述します。
PS_F.DataGet(data_lines);
int ColNumMax= PS_F.pList.Count;//50
int ColNumMin = PS_F.pList.Max(innerList => innerList.Count);
データの指定方法は下記のように記述します。
int value = PS_F.pList[3][7]; // 3行目の7列目を取得する
Githubを使ったチーム開発の方法を簡単に説明します。
+
」をクリックする ⇒ New repository
を選択Repository name
を入力Create repository
をクリックcd フォルダのパス
コマンドを実行し、アップロードするフォルダへ移動するgit init
コマンドを実行して、ローカルリポジトリを作成する
Initialized empty Git repository 〜
と表示されれば、作成完了。git add .
コマンドを入力して、対象フォルダ内のファイル・フォルダをステージングさせる(コマンド実行後は、特に何も表示されません)
git commit -m "コミット名"
コマンドを実行し、ステージング対象を保存するC:\baictCorn>git init
Initialized empty Git repository in C:/baictCorn/.git/
git remote add origin URL名
コマンドを実行し、ローカル リポジトリと github(リモートリポジトリ)を関連付ける(リモートリポジトリを追加する)※ コマンド実行後は、特に何も表示されません。
git push -u origin main
を実行し、ローカルリポジトリの main ブランチを リモートリポジトリの main へプッシュ(アップロード)します。
main
」を「master
」に変更してみてください。C:\baictCorn>git branch
* master
C:\baictCorn>git push -u origin master
Enumerating objects: 399, done.
Counting objects: 100% (399/399), done.
Delta compression using up to 8 threads
Compressing objects: 100% (360/360), done.
Writing objects: 100% (399/399), 13.32 MiB | 5.72 MiB/s, done.
Total 399 (delta 124), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (124/124), done.
To https://github.com/abstech2022/BaictCorn.git
* [new branch] master -> master
branch 'master' set up to track 'origin/master'.
前回は主人公を左右に移動させる方法を紹介しました。
ここでは主人公をジャンプさせる方法について記載します。
ではジャンプのコードを実装してみましょう。ジャンプのコードは下記になります。
ここでは「Y座標=-124」を地面とした場合のソースコードを記載しています。
これを前回の左右へ移動するコードと並列に記載することで、ジャンプしながら左右への移動も可能になります。
次にジャンプ動作時のコスチュームを設定します。コスチュームを確認すると、12 ⇒ 13 ⇒ 14 ⇒ 12・・・と変化させると、髪をなびかせながら上昇していくモーションを実現できそうです。
同様に、下降時は15 ⇒ 16 ⇒ 17 ⇒ 15・・・と変化させることで、膝を曲げながら髪をなびかせて下降する動きになりそうです。
ここでは「状態」という変数を作成し、「状態=0」は着地状態、「状態=1」なら上昇中、「状態=2」なら下降中、という具合にしてみたいと思います。
状態の設定は、先ほど作成したジャンプ動作の部分に追記します。
これで動作に合わせて状態が変わるようになりました。
最後に状態の値に合わせてコスチュームを変化させる部分を実装します。
これでジャンプができるようになったと思います。
こちらがScrachのサンプルです。
これでプレーヤーの基本動作はできるようになったので、次回はステージのスクロール方法を紹介したいと思います。
Scratch(スクラッチ)は、アメリカ・マサチューセッツ工科大学(MIT)のメディアラボが開発したプログラミング言語で、誰でも無料で使用することができます。画面上のブロックをつなぎ合わせることでプログラムを作れるため、小学生でも簡単にプログラミングを学ぶことができます。
ここでは Scratch を使ってスーパーマリオブラザーズのような2次元のアクションゲームを作ってみたいと思います。
まずは、マリオで言うところのマリオ、真ん中で動く主人公を作ってみます。
Scratch では、画面上に表示する一つ一つの要素を「スプライト」と呼びます。主人公もスプライトで作成します。スプライトに使用する素材は、Scratchにデフォルトでいくつか用意されていますが、これだけでは物足りないので、フリー素材などを探して活用すると良いと思います。
ここでは、Superpowers Asset Pack の使い方を紹介します。Superpowersとは、ゲーム制作会社のSparklin Labsで開発されたHTML5向け2D/3Dゲームメーカ(開発環境)です。これは、オープンソースで無料で利用することができます。
① こちらの Superpowersのサイトにアクセスして、「Download Now」ボタンをクリックします。
② 「No thanks, just take me to the downloads」をクリックします。
※ 寄付しても良い場合は支払う金額を入力します
③ 「Superpowers Mega Asset Pack (1200+ files!)」の横の「Download」ボタンを押します
④ ZIPファイルがダウンロードされるので解凍して利用します。
解凍すると下記のようなフォルダ構造になっています。中身にどのような素材が入っているか覗いて確認してみてください。
ここではアクションゲーム用の素材がまとめて入っている「prehistoric-platformer」を使ってみたいと思います。
主人公になる素材は「characters/playable」フォルダ内に入っています。
中身を見ると下記のような画像が入っています。
Scratchで使用するにはこれを一つ一つに分割した画像にしたいので、フリーソフトの分割ツールを使って分割したいと思います。ここでは「ImgSplit」という分割ツールを使います。
こちらのツールを使って分割を実行すると、下記のように別々の画像ファイルとして作成することができます。
素材が準備できたので実際にScratchでプログラミングしていきたいと思います。
Scratchには ①オンライン版と②オフライン版があります。
①オンライン版は、Scratchのサイトにアクセスし、ブラウザ上からプロジェクトの管理やプログラミングする方法です。ブラウザから利用できるので、パソコンに専用ソフをインストールさせておく必要がなく簡単に始められますが、インターネットが接続出来る環境でなくては、使用することが出来ません。
②オフライン版は、事前にインターネット経由でソフトをインストールしておき、PCのローカル環境でロジェクトの管理やプログラミングする方法です。インターネットが繋がらない環境でも学習を進めることが出来ますので場所を選びませんが、インターネット経由でソフトをダウンロードしインストールをして学習環境を設定しておく必要があります。
ここでは手軽に始められるオンライン版にて説明します。
Scratch のサイトに行き、右上の「Scratchに参加しよう」から、アカウントを作ります。
アカウントを作ったら、画面左上にある「作る」をクリックするとプロジェクトを作成することができます。
では早速スプライトを作ってみたいと思います。右下の「猫の顔+」のアイコンから「↑」スプライトをアップロードをクリックし、先ほど分割したキャラクターの画像を一つ選択します。
そうすると画面にキャラクターが現れます。右下のスプライト選択ウインドウから、アップロードしたキャラクターを選択し、左上のコスチュームタブを選択します。
「コスチュームをアップロード」をクリックし、先ほど分割した残りの画像を選択して、「開く」をクリックします。
これでスプライトの素材のアップロードは完了です。
次にスプライトを動かすコードを生成します。下記のようにコードを入れてみましょう。
キャラクターが左右に滑るように動くようになったと思います。
次にもっと動いている感じを出すために、走る動作を加えてみます。スプライトのコスチュームを確認すると、6番~11番と順番に変化させると、走る動作になっていることが分かります。
※ 順番がずれている場合は、ドラッグ&ドロップで順番を入れ替えてください
つまり、右か左のキーが押され続けている間、コスチュームを6 ⇒ 11 に変化させるコードを実装すればOKです。下記のコードを先ほどのコードに加えて、別のブロックとして記述します。
スプライトが走る動作をしながら左右に動くようになったと思います。
次回の記事にて、「ジャンプ」する方法を紹介いたします。
Thundbird にメールがたまってしまうと、PCのドライブ容量を圧迫してしまうため、メールを外付けHDDに退避して、必要な時にだけ読み出したくなります。ここでは ImportExportTools NG というアドインでThunderbird のメールを外付けHDDにバックアップする方法を紹介します。
1.「ツール」メニューの「アドオンとテーマ」から、ImportExportTools NGを検索して、「Thunderbird」をクリックする。
2.バックアップしたいフォルダ上で右クリックし、ImportExportTools NG から「フォルダ内のすべてのメッセージをエクスポート」を選択。「EML」形式「メッセージとHTMLインデックス」を選択。
以上で、選択した外付けHDDフォルダ内にバックアップデータが保存されます。
1.復元したいフォルダ上で右クリックし、ImportExportTools NG から「EMLメッセージのインポート」を選択。「フォルダ内のすべてのEMLメッセージ」を選択し、復元したいフォルダを選択すればメッセージがフォルダごと復元されます。
終了したプロジェクトなどをフォルダごと外付けHDDバックアップし、Thunderbird 上からは削除してしまい、見返す必要が生じた際にバックアップデータを外付けHDDからインポートするなどの運用がおススメです。