コーナーブーストが考慮された衝突応答です。 衝突応答≒当たり判定 まともに一週間以上かかった サンプルプログラムではコーナーブーストできる範囲が4pxですね。(狭い) あと画面スクロール作り忘れてますね() がんばれ ー注意事項ー 通常の当たり判定はやや雑い作りとなっており、斜め上から壁に向かって当たるとブロック上面に上るというバグがあります。 コーナーブーストの方を使用する際は大した問題にはなりません。 めんどくさいので正規表現ごとで引数の意味を分類します。 (a|b)s*(x|y) - 矩形の始点と大きさです。(sが入っている物が大きさの指定) (int) d(x|y) - 単位フレームにおける移動量です。(int) (x|y) - ベースとなる座標です。(int) CornerSize - 左右のコナブの大きさを指定します。(int) CornerBoostValue - コナブによる移動量を指定します。(int) IsNormalCollisionBefore - 気にしなくてもいいです。falseがデフォルト値です。(boolean) TileMapWidth - タイルマップの横幅です(int) TileSize - 一つ当たりのタイルの大きさです。(int) 戻り値 CanJump - ジャンプできる状態か(boolean) TouchCeil - 天井に当たったか(boolean) d(x|y) - 衝突応答考慮後の移動量(int) IsNormalCollisionBefore - 気にしなくていいです。(boolean) [無名] - 関数の役割を果たします。大体get系の関数です。(auto) (i|j) - チップマップ配列の添え字を取得。iがy座標に対する取得値、jがx座標に対する取得値(int)
タイルマップ描画の説明 https://scratch.mit.edu/projects/1012359588/ 参考文献 https://ism140.blog.shinobi.jp/マリオワールドテクニック/マリオワールド%E3%80%80コーナーブースト