スクラッチプログラミングに挑戦している皆さん、どうも!スクラッチコーチです。
ゴンザレスからゲームクリエイターへの挑戦状
いよいよ3D
迷宮に
乗り
込んでゴンザレスを
探す!ッと
思いきや
入口のところでピコが「スキマが……」と
指摘!たしかにこれじゃあ
敵から
丸見え。とてもゴンザレスまで
到達できる
気がしないぞ……。
今回の目標「壁のスキマをなくす」
今のままだと3Dにスキマができてしまい
壁の
向こうからバレバレになってしまうので、ちょっと
今回は
都合が
悪いね!
ok-scratch
\u003cp\u003e逆に、鉄格子とか檻《おり》を作りたいときはいいかもね。\u003c/p\u003e
これを
解消するために
今回は
次のことを
実装するよ。
- 解像度を作って、ペンの太さをコントロールできるようにする
- 扇《おうぎ》状にビームが広がるロジックを修正して、ペンの太さに合った扇を描く
やってみよう!
解像度を設定する
ペンの太さをコントロールして、
壁を
隙間なくレンダリングしていく。そのための1
歩としてまず
解像度という
変数を
作ろう。
変数「★解像度」を作る
ok-scratch
\u003cp\u003eスクショだと★がついてないけど、すべてのスプライト用だから「★解像度」にしておいて~。僕もあとで直してる。\u003c/p\u003e
スプライト「レイキャスター」を
開こう
緑の
旗がおされたとき、
解像度を8に
設定しよう。
デバッグ
表示の
変数を
右クリックして、スライダーを
選ぶ。
もう
一度右クリックして、
指定範囲を
変更する。
4から16が
選べるようにしておこう。
「レイキャストする」で
ペンの太さに★解像度を割り当てよう。
CHECK) 壁のスキマがなくなるかテストする
これでペンの
太さが2
倍になったからスキマが
埋まったはずだ。
OK!スキマはなくなったね。でも
解像度を4にするとまたスキマが空いてしまう様子が
見て
取れるね。この
作品では
解像度の値は低ければ低いほど描画がきれいになるんだ。だから「きれいに
描画したらスキマが
空いちゃう」っていうのは
残念だよね。ここは
直しておこう。
u003cpu003e★解像度を使って、ペンの太さをコントロールすることができるようになったu003c/pu003e
扇《おうぎ》状に広がるロジックを変える
いまは
視野角に
数だけループを
回して、1
度ずつ
右に
回すことで
扇状にビームを
発射しているよね。
最初はこれでわかりやすかったけど、
今見たように、ペンの
太さが
変わるとスキマが
空いてしまう。そこで
扇状に
広がるロジックを
変えていこうとおもう!
変数「描画回数」を作る
描画回数の
値に「480 / ★
解像度」を
割り
当てよう。
解像度が8なら
描画回数は60
回ということだね。
この
描画回数をループの
条件式に
当てはめる。もともとは★
視野角だったところだよ。
置き
換えよう。
そして1
度右回していたとこも、しっかり
演算を
組んでいく。「★
視野角 /
描画回数」だ。
ok-scratch
u003cpu003e視野角が60で描画回数も60なら今まで通り1度だけど、仮に解像度が8ではなく4ならどうなるだろう。描画回数は「480 / 4 = 120」になる。すると視野角60 / 120だから、0.5度ずつ右に回すことになる。ペンが細くなった分だけ右に回す角度も減るから、ギュッと詰めて描画できるはずだね。u003c/pu003e
さらに、
変数「x
座標」の
値には★
解像度を
割り
当てておこう。
CHECK) 解像度を4にしてもスキマがなくなったかテストする
うーん、まぁまぁ😅ちょっとスキマが
残ってるけど、
改善はされたね!でももうちょっと
直したい。
x座標の初期値を修正する
スキマと
言っても
大きなスキマではなく、ほんのちょっとだけスキマがある
感じだよね。だから
修正値も
小さいよ。まず↓このブロックを
用意して。「(★
解像度 / 2) - 240」という
式をつくるよ。
これをx
座標の
初期値に
割り
当てよう。
CHECK) スキマが改善されたかテストする
これでさらにギュッと
描画されるようになったかチェックだ。
おっけい!スキマが
消えた!
ok-scratch
u003cpu003e何をしたかって言うのを説明するよ。最初はマイナス240をx座標に割り当ててたんだよね。それを「(★解像度 / 2) - 240」に変えたよね。解像度が4なら「4 / 2 - 240 = -238」になって、x座標の初期値を-238に設定した。これでわずかに生じていたスキマが消えたんだ。すっごいちょっとしか修正してないけど、大きな変化だよね!u003c/pu003e
u003cpu003e描画回数や★解像度などを使って、扇の広がりをより正確に管理できるようになった。u003c/pu003e
まとめ
今回は
次のことを
実装したよ。
- 解像度を作って、ペンの太さをコントロールできるようにした
- 扇《おうぎ》状にビームが広がるロジックを修正して、ペンの太さに合った扇を描けるようになった
これによってスキマがないキレイな
壁を
描画することに
成功したね!ふぅ、これで
敵にバレずに
進むことができそうだ……ん?まだ
問題があるのか、スクラッチキャット
達が
困っているみたいだ。
次回もチェックしてみよう!
今回のチュートリアルは
世界No.1スクラッチャーとして
名高いグリフパッチさんの
動画を
参考にしているよ。ただし
手順を
一部変えているところもあるんだ。