スクラッチに挑戦している皆さん、どうも!スクラッチコーチです。
もう単調な動きしかないアスレじゃ満足できない欲張りな君、安心してください。回りますよ!
- ① まずはここからレッツゴー!
- ② リファクタリング)ステージをスプライトにしよう
- ③ シーンの切り替えのベース処理
- ④ ヒットボックスを使おう
- ⑤ アニメーションを実装しよう
- ⑥ 絶望の坂道処理を克服する
- ⑦ 長押しで大ジャンプする
- ⑧ 壁をツツ〜っとスライドする
- ⑨ か、壁ジャンプだと!?かっこよすぎるだろ
- ⑩ ステージがヨコにだけ続くと誰が言った?タテ構造
- ⑪ うわ!障害物が行く手をさえぎるぞ
- ⑫ 動く床のギミックを作ろう!
- ⑬ ギミックに乗っているときの衝突処理
- ⑭ オシャレなグラフィックを作るコツ
- ⑮ アイテムをゲットできればゲームに目的ができる!
- ⑯ 重要アイテムがないと開かないドア!?たぎる!
- ⑰ チェックポイントを作って激ムズなアスレを作ろう!
- ⑱ ゲームオーバーを作って緊張感をキープする!
- ⑲ エネミーが現れた!どうすりゃいいのよ!?
- ⑳ エネミーを踏んづけろ!
- ㉑ ギミックのリファクタリング
- ㉒ 回転が切り拓く新境地 (いまここ)
今回の目標
回転ギミックを爆誕させる!
回転するギミックを作る
新しいコスチュームを追加しよう。形に制限はないから、自由に作ってもスクショみたいな四角でもOK。

スポーンを改修する
スポーンさせよう。

この定義に引数を追加したいので編集する。

回転という引数を追加するよ。

回転に1を入れておく。

さらに変数も用意しておきたい。

値をセットする場所はスポーンする定義の中。

回転の動きを作る
クローンされた時に条件ブロックを追加するぞ。

条件式にて、回転の値を調べる。「回転>空白」でOK。回転に値があればTRUEになって、中が実行される。

中ではグルグル回り続ける処理を実装するぞ。

回転するかテストする
うん、回ったね。もっと煮詰めていこう!
回転したらプレイヤーが落ちるようにする
今はただ単に回っただけで、物理的に違和感は残る。だってスクラッチキャットが余裕で立ち続けてるもんね。普通は足元が回転してたら落とされるような動きになるはずだよね。
定義「_更新する」を改修する
定義「_更新する」を改修するよ。いったんスクショを参考にブロックを外そう。

最下部にあったブロックだけ戻す。残りは消さないでおいて。

さらに、回転の値を調べる条件ブロックも追加する。

「でなければ」の中に、外しておいたブロックを戻そう。

回転していた場合の処理を実装していこう。

定義「_回転距離を計算する」を作る。
さて、新しい定義を作るぞ。

-
これは反時計回りって意味で考えておいて。カウンタークロックワイズの略だよ。カウンターは反対って意味。クロックワイズは時計回りって意味。
引数には回転の逆向きの力が入るようにする。つまり「ゼロ - 回転」だよ。

よし、では気張って定義の中身を実装していくぞ!

変数を4つ作る
いきなり変数を4つ作る。説明は後でするのでスクショを見て作ってみて。




プレイヤーとの距離
ではまずプレイヤーの距離XとYに値をセットしたい。引き算をはめておいて。

それぞれプレイヤーの座標から自分の座標を引く。

CCWのsinとcos
次にCCWのsinとcosに値をセットする。シンプルに引数「CCW」のsinのcosを入れよう。

思ってたより単純で安心(笑)なーんて思っていた時期が私にもありました。こっからはギアを1段上げて飛ばすぞ!
ギミックの差分
ギミックの差分XとYに値をセットする。とりあえずスクショのように引き算の左側は空けておいて。

そんで、演算ブロックを6個並べてほしい。スクショみたいに横3列ずつにしておいて。真ん中だけ種類が違うから気をつけて。
- 掛け算 引き算 掛け算
- 掛け算 足し算 掛け算

プレイヤーとの距離Xを左側の掛け算にいれる。
プレイヤーとの距離Yを右側の掛け算に入れる。

スクショを見て変数「CCWのcos」を2つ入れるぞ。

変数「CCWのsin」を2つ入れよう。

矢印のとおりに演算を合体させる!

ガチャーン!

さらにこれを空けておいた引き算の左側に入れよう!

ガチャンガチャーン!
何が起きたのかテストで確認する
超ざっくり何が起きたのか説明すると、プレイヤーとギミックの距離が回転によってどう変わるかを三角関数で算出している。
えーっと、つまり、まぁ、、、回転してるものに乗ったら落ちるってことだ!く、詳しくはお近くの学校の先生に聞いてほしい(笑)
別の形、別の回転も追加してみる
上では正方形っぽい形を使ったけど、長い棒みたいな長方形もやってみたい!

スポーンさせる。

うまく回るかテストする
おっとぉ、回っちゃいるけど、これだと通りにくくてつまらないね。
じゃあ回転の値を変えてみようか!
マイナス0.5にしてみて。

どうかな。
いい感じ!逆回転になったね。
まとめ
今回はついに回転するギミックが完成した!このシリーズが面白かったらサンプル作品のハートを押して教えてね!たくさんハートがついたら続きを書くね。
- ① まずはここからレッツゴー!
- ② リファクタリング)ステージをスプライトにしよう
- ③ シーンの切り替えのベース処理
- ④ ヒットボックスを使おう
- ⑤ アニメーションを実装しよう
- ⑥ 絶望の坂道処理を克服する
- ⑦ 長押しで大ジャンプする
- ⑧ 壁をツツ〜っとスライドする
- ⑨ か、壁ジャンプだと!?かっこよすぎるだろ
- ⑩ ステージがヨコにだけ続くと誰が言った?タテ構造
- ⑪ うわ!障害物が行く手をさえぎるぞ
- ⑫ 動く床のギミックを作ろう!
- ⑬ ギミックに乗っているときの衝突処理
- ⑭ オシャレなグラフィックを作るコツ
- ⑮ アイテムをゲットできればゲームに目的ができる!
- ⑯ 重要アイテムがないと開かないドア!?たぎる!
- ⑰ チェックポイントを作って激ムズなアスレを作ろう!
- ⑱ ゲームオーバーを作って緊張感をキープする!
- ⑲ エネミーが現れた!どうすりゃいいのよ!?
- ⑳ エネミーを踏んづけろ!
- ㉑ ギミックのリファクタリング
- ㉒ 回転が切り拓く新境地 (いまここ)
当連載で取り上げるグリフパッチさんの動画はこちら

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