- ① 物理演算・壁ジャンプ
- ② チート対策 (いまここ)
さぁ、スクラッチでナニ作る!?
チュートリアルの元になった作品
マインクラフト風の横スクロールプラットフォーマーゲーム。ゾンビ親子を操作して溶岩や障害物を避けながらステージを進み、ゴールを目指す。griffpatch式の壁登り・壁ジャンプ、昼夜サイクルによるダメージゾーン、sin波による月の脈動アニメーション、ゴールセレブレーション演出など多彩な仕組みを持つ
今回の目標
スターター作品をリミックスしよう
このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード
#1ターボ検出カウンター
準備
スプライト「ターボ検出」を開く
| スプライトについて |
|---|
| ターボモード(チート)を検出し、使用を検出した場合にゲームを全停止する |
| どんな役割か |
| ターボモードというチートを使っていないかチェックするスプライトだよ。タイミング計測でズルを見抜いて、ゲームを止める仕組みを作るよ。 |
変数「★ターボ」を追加
ターボモード検出用のカウンター。0.001秒間の増分で実行速度を判定
実装
( ) へ移動する で最前面に配置して、 x座標を ( ) 、y座標を ( ) にする で画面中央(0, 0)に置くよ。 ずっと ループの中で ( ) を ( ) ずつ変える を使って「★ターボ」変数を1ずつ増やし続けるんだ。このカウンターがどれくらいの速さで増えるかが、ターボモード判定のカギになるよ。
#2ターボモード判定
ずっと ループの中で、まず ( ) を ( ) にする で「★ターボ」を0にリセットするよ。次に ( ) 秒待つ で0.001秒だけ待つんだ。通常モードでは0.001秒の間に「★ターボ」が3を超えることはないけど、ターボモードでは処理速度が跳ね上がるから軽々と超えてしまうよ。
もし ( ) ならでなければ で「★ターボ」が3より大きいかチェックして、ターボモードかどうかを判定するよ。
#3チート検出と停止
「★ターボ」が3を超えていたら 表示する で警告メッセージを表示して、 ですべてを止めるんだ。通常モードの場合は 隠す で警告を非表示のままにしておくよ。
まとめ
これで完全に完成!ターボモード検出は「2つの並行ループの競争で実行速度を測る」というユニークなテクニックだよ。今回のゲームで学んだ物理演算、数学的アニメーション、チート対策のすべてを活かして、次のオリジナル作品にチャレンジしてみよう!