スクラッチに挑戦している皆さん、どうも!スクラッチコーチです。
スパイクが実装できたけど、ジャンプのロジック適当すぎるよね!ヨワヨワな物理演算なので、なんていうかハリボテ感がスゴイ(^_^;)
今回のゴール
ブロックに乗っかれるように、物理演算まわりを改善するのがゴールだ!
ブロックを作る
スプライト「コース」を開こう。

一時的に使う新しいコスチュームを作ろう。
38 x 38の黒い正方形を描いてみて。

これをコピーする。

コスチューム「コース1.2」にペーストしよう。だいたいでいいので、地面に接するように配置する。

1つコピーして上に乗せよう。

たくさん複製してこんな感じのブロックを作るよ。


この上にジャンプで乗ったり、ぶつかるとゲームオーバーになったりする実装をしていくよ!
さっき作った一時的なコスチュームは消しておこう!

物理演算をツヨツヨにする
最初に作った手抜き物理演算をぶっ壊して、これからの激しいアクションに耐えられる物理演算を作っていくぞ。
スプライト「プレイヤー」を開こう。

ヨワヨワな物理演算にはオサラバだ!!消そう。

変数「スピードY」を作る

どこか適当な場所にこんな感じでコーディングしてみて。

よし、まずはこれから作るジャンプの動きを理解してほしい。このショート動画をチェックしてくれ。
こんな感じでジャンプキーが押されたら、スピードYを28にして、そのあとマイナス4していくことで跳ねて着地する動きとするぞ。
埋もれを修正する
ただ、このままだとブロックに埋もれちゃうから新しくコーディングを追加する。

これでブロックに埋もれちゃっても修正されるようになった。
定義「_埋もれを修正する」
再描画せずに実行する定義を作るぞ。

さっき作ったコーディングの一部を、この定義に移し替えてほしい。
注意深くこのスクショ↓を見ながら作業してね。

定義「プレイヤーが動く」
もう一つ定義を作る。今度は再描画せずに実行するにはチェックしないよ。

ここに定義のハットブロックをくっつけよう。

うし、じゃあこの定義「プレイヤーが動く」を呼び出す側も実装していくぞ。
メイン処理を改修する
「○まで待つ」ブロックあたりを見てみよう。
この位置でブロックを切り離して。

変数「スピードY」をゼロにする処理を追加する。

「○まで繰り返す」ブロックを設置。

「○まで待つ」で使ってた条件を移動しよう。

こんな感じになる↓「○まで待つ」は消しておこう。

上と下を合体させる!ガチャーン!

ここでようやく定義「プレイヤーが動く」を実行する。

ブロックにどう反応するかテストする
ブロックの上までテレポートしちゃってるけど、OK!順調だ。ここからさらに改善していく。
ジャンプを実装する
カンタンにジャンプも実装する。
- パソコンならスペースキーを押したらジャンプ
- モバイルならタップしたらジャンプ
みたいなユースケースを想定して実装しておく。これでタブレットでも楽しめる!

ジャンプをテストする
イェーイ!ちょ、いきなりジオメトリー感がマシマシじゃない!?いいね〜。
まとめ
まぁとはいえまだ穴はある。壁に当たるとまだテレポートしちゃう。そもそも壁に当たるとゲームオーバーになるようにしたいよね。
次回はそのあたりクリアして、ゲームの土台を盤石にしていくぞ。
-
このチュートリアルの続きを読みたい人は 見本の作品のハートをクリックして 教えてね!もし要望がそこそこあれば続きも執筆します。みんなの読みたいチュートリアルに力を入れたいのでアンケートみたいなもんです(^o^) よろしく!
どちらにせよあと1本は記事を書くよ〜。
グリフパッチさんのジオメトリーダッシュはこちら
- ① 天元突破ジオメトリーダッシュ、スタート!
- ② トゲトゲ(スパイク)を追加してデンジャラスなダッシュにしちゃう!
- ③ ツヨツヨ物理演算を作る (いまここ)
- ④ テレポートバグをやっつけろ!
- ⑤ 回転ジャンプの作り方
- ⑥ 当たり判定の改善
- ⑦ パーティクルを作ろう!

質問テンプレート(素早く3回クリックすると全選択できるのでコピーしよう)
・◯◯ ... 記事のどこまで実装が終わったのかを記入しよう。・□□ ... どんな問題が起きているのか、どういうときに起きるのか、具体的に書こう。
・共有済みURL ... たまに共有してない作品URLを書いてる人がいるけど、共有しないとこちらから確認できないからよろしくね。