今回つくるゲーム
難易度
今回はボルダリングゲームをを作っていきます。スクラッチでのゲーム作りに慣れてきた人にぴったりのゲームです。左右の手で順番にホールドを握り、ゴールを目指します。このゲーム最大のポイントは、右手と左手、それぞれで移動するときに回転の中心が変化することです。このゲーム作りを通してコスチュームの中心点・座標・三角関数について深く学べますので是非トライしてみてください。
まずは実際にゲームをプレイしてみてください。スペースキーでホールド間を移動、下矢印キーでホールドをつかみます。ゴールのホールドまで辿り着ければゲームクリアです。
はじめに
まず、以下をリミックスしてください
こちらにはゲームを作るのに必要な素材が揃っています。
背景の壁の写真はアンスプラッシュという海外のサイトから引用しています。スクラッチで写真を使用するときは注意が必要ですので、こちらの記事を参考にしてください
プレイヤーの動きを作る
まずはプレイヤーの動きを作っていきます。
まず、プレイヤーのスプライトに移動し、コスチュームのタブをクリックしてください。以下のような右手と左手のコスチュームが用意されているのがわかります。
それぞれコスチュームの中心が右手と左手になっているのがわかります。これいによってコスチュームが右手のときは右手を中心に回転し、左手のときは左手を中心に回転できます。右手と左手のコスチュームを順番に入れ替えていくことで、回転の軸を変えながら次のホールドをつかんでいけるのです
プレイヤーのコードは以下の通りとなります。
ここでポイントとなるのは★部分になります。下矢印キーを押して、ホールドを掴んだときに、次のコスチュームにする必要があります。なぜなら、右手で回転していたら、次は左手で回転しなければならないからです。そして、次のコスチュームにすると、場所がずれてしまうので(中心が違うから)それを補正しなければなりません。ここで三角関数を使います。解説は以下の通りですが、わからなければそういうものだと思って進めてください。60というのは、左右の手の間の長さが60という意味です。
ここまでできたら、実際にプレーしてみてください。スペースキーと下矢印キーで以下のように動かせれば成功です。
ホールドを設置する
次にホールドを設置していきます。
ホールドのスプライトに移動し、以下のようにコードを書きます。
ホールドリストについて解説します。もともとホールドリストというリストを用意しています。
このリストにチェックを入れると画面に25行のリストが出現します。ここに書いてある数字がホールドの設計図になっています。
ホールドリストの数字は次のホールドに移動するときの角度になっていますホールド設置位置の初期値をx:-150、y:-150として、ホールドリストの角度に従って配置していきます。考え方は以下の通りです。
ホールドが配置されることが確認できれば、次にホールドをいろいろな形にしたり、カラフルにして、ボルダリング感を出していきます。
(ホールドのコスチュームにはじめからいろいろな形・大きさのものを用意しています)
これで緑の旗を押すと以下のようにカラフルでいろいろな形のホールドが壁に出現します。ボルダリング感がでてきたと思います。
ホールドを掴む
次に、ホールドがつかめるようにしていきます。逆にいうと、ホールドをつかめなければ落下します。
ホールドをつかめているか判定する用のスプライト持ち手に以下のようにコードを書いていきます。
持ち手は常にプレイヤーについていきます。つまり右手のコスチュームの時は右手に、左手のコスチュームの時は左手の位置にいくことになります。
そして、スペースキーが押されたときにこの持ち手がホールドに触れていなければ落下となります。そして落下のメッセージを受け取ったときのプレイヤーの動きを追加していきます。
以下のように動けば成功です。
最後の仕上げ
ここまでで、ほぼゲームは完成ですが、ここから仕上げをしていきます。
ゲームを仕上げる時は、以下のようにルールを書いてみるようにしましょう。
まず、ゴールを設置します。右下にゴールを設置して、持ち手に触れたらゲームクリアです。
次に、ゲーム管理のスプライトに以下のようにコードを書いていきます。
最後に、プレイ中=1のときだけ、プレーヤーが動けるように、プレイヤーのコードに以下のように追加します。ホールドをつかんだときの効果音も追加しています。
すべてのコード
これで終了です。すべてのコードは以下から確認できます。