ここも、必要なタイミングでpurplePortalをオンオフするという以外は比較的単純なステージです。
私はまずワープをオフにして素通りしつつ、「行き止まりまで宝石をとって進む」 というところをひとまとまりの処理と考えて関数にしました。関数の主旨がわかりやすいよう日本語名にしてみました。
振り返った後は、ワープをオンに戻せば、閉スイッチまでが実質の一本道となりますので、「閉スイッチまで進んでオン」という処理をこれまた関数にしました。
もう一度振り返ってワープをオフにすると、再び「行き止まりまで宝石をとって進む」為の関数、行き止まりまで宝石集め()の出番です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
func 行き止まりまで宝石集め() { while !isBlocked { moveForward() if isOnGem { collectGem() } } } func スイッチまで進んでオン() { while !isOnClosedSwitch { moveForward() } toggleSwitch() } //↑ここまでは関数の定義なので、見かけ上はなにも起こりません //↓ここからが目に見える処理 purplePortal.isActive = false //ワープスイッチをオフ 行き止まりまで宝石集め() turnRight() turnRight() purplePortal.isActive = true //ワープスイッチをオン スイッチまで進んでオン() turnRight() turnRight() purplePortal.isActive = false //ワープスイッチをオフ 行き止まりまで宝石集め() |
↓
func 行き止まりまで宝石集め() {
とか、
↓
func スイッチまで進んでオン() {
↓
行き止まりまで宝石集め()
これって、何?
↓
func 行き止まりまで宝石集め() {
とか、
↓
func スイッチまで進んでオン() {
↓
行き止まりまで宝石集め()
これって、何?
違った。
ごめん!!
ありがとう。