Skip to content

Commit

Permalink
Level.goal
Browse files Browse the repository at this point in the history
  • Loading branch information
simon-jaeger committed Oct 23, 2022
1 parent 0a4340e commit fdfcdb1
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 14 deletions.
17 changes: 9 additions & 8 deletions classes/Level.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import {reactive} from "#imports";
import {reactive} from "#imports"

export class Level {
obstacles = new Set<number>()
obstacles = new Set<number>()
goal = 0

constructor(props:Level) {
const proxy = reactive(this)
Object.assign(proxy, props)
return proxy
}
}
constructor(props: Level) {
const proxy = reactive(this)
Object.assign(proxy, props)
return proxy
}
}
22 changes: 16 additions & 6 deletions pages/chapter/console/1.vue
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
<script lang="ts" setup>
import GameView from "~/components/GameView.vue";
import Controller from "~/components/Controller.vue"
import {Robot} from "~/classes/Robot";
import {Level} from "~/classes/Level";
import GameView from "~/components/GameView.vue"
import Controller from "~/components/Controller.vue"
import {Robot} from "~/classes/Robot"
import {Level} from "~/classes/Level"
import {watchEffect} from "#imports"
import {useRouter} from "#app"
const level = new Level({obstacles: new Set([3, 6, 10])})
const robo = new Robot({level})
const router = useRouter()
const level = new Level({obstacles: new Set([3, 6, 10]), goal: 2})
const robo = new Robot({level})
watchEffect(() => {
if (robo._x >= level.goal) {
alert('goal reached!')
router.push('/chapter/console/2')
}
})
</script>
<template>
Expand Down
26 changes: 26 additions & 0 deletions pages/chapter/console/2.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<script lang="ts" setup>
import GameView from "~/components/GameView.vue"
import Controller from "~/components/Controller.vue"
import {Robot} from "~/classes/Robot"
import {Level} from "~/classes/Level"
import {watchEffect} from "#imports"
import {useRouter} from "#app"
const router = useRouter()
const level = new Level({obstacles: new Set([9, 11, 13]), goal: 14})
const robo = new Robot({level})
watchEffect(() => {
if (robo._x >= level.goal) {
alert('goal reached!')
router.push('/chapter/console/3')
}
})
</script>
<template>
<div class="flex flex-col aspect-square">
<GameView :robo="robo" class="flex-grow"/>
<Controller :robo="robo" class="fixed bottom-0"/>
</div>
</template>

0 comments on commit fdfcdb1

Please sign in to comment.