Add an absolutely awful clock

This commit is contained in:
Ketchetwahmeegwun T. Southall 2022-01-30 08:21:48 -08:00
parent 850a5486bf
commit 754d1ec1a3

View File

@ -42,6 +42,35 @@ export function GameState(ctx: ContextI, selectedAnimal: string, selectedSegment
let lastTime: number = performance.now()
let player: AnimalEntity
//
let clockCoverSprite = new SpriteInstance('ui.clock.cover.default.0')
let clockMoonSprite = new SpriteInstance('ui.clock.moon.default.0')
let clockSunSprite = new SpriteInstance('ui.clock.sun.default.0')
let clockContainer = new PIXI.Container()
{
clockMoonSprite.container.position.set(
32,
0,
)
clockMoonSprite.container.pivot.set(
24,
24,
)
clockSunSprite.container.position.set(
32,
0,
)
clockSunSprite.container.pivot.set(
24,
24,
)
clockContainer.scale.set(2, 2)
clockContainer.addChild(clockMoonSprite.container)
clockContainer.addChild(clockSunSprite.container)
clockContainer.addChild(clockCoverSprite.container)
}
let world: planck.World = planck.World({
gravity: planck.Vec2(0, 0),
})
@ -105,6 +134,7 @@ export function GameState(ctx: ContextI, selectedAnimal: string, selectedSegment
}
})
let realRootContainer = new PIXI.Container()
let rootContainer = new PIXI.Container()
let playLayer: Layer
let layers: Layer[] = []
@ -113,6 +143,7 @@ export function GameState(ctx: ContextI, selectedAnimal: string, selectedSegment
let spawnZones: Record<string, Zone[]> = {}
let enter = () => {
realRootContainer.addChild(rootContainer)
lastTime = performance.now()
hookKeyboard()
// Load the world segment.
@ -230,7 +261,11 @@ export function GameState(ctx: ContextI, selectedAnimal: string, selectedSegment
addEntity(entity, 'objects', x, y)
}
}
ctx.app.stage.addChild(rootContainer)
// Add clock
ctx.app.stage.addChild(realRootContainer)
ctx.app.stage.addChild(clockContainer)
}
let leave = () => {
unhookKeyboard()
@ -241,17 +276,36 @@ export function GameState(ctx: ContextI, selectedAnimal: string, selectedSegment
removeZone(zone)
}
stopSong()
ctx.app.stage.removeChild(rootContainer)
ctx.app.stage.removeChild(realRootContainer)
ctx.app.stage.removeChild(clockContainer)
}
let elapsed: number = 0
let update = (delta: number) => {
let w = segments[selectedSegment]
let time = performance.now()
let realDelta = time - lastTime
lastTime = time
checkGamepads()
elapsed += delta
modeTimer += realDelta
// Update clock
{
//clockContainer.width = ctx.app.renderer.width
let w = ctx.app.renderer.width
let h = ctx.app.renderer.height
clockContainer.x = w / 2 - clockCoverSprite.container.width
clockContainer.y = h - clockCoverSprite.container.height * 2 - 8
if (isNight) {
clockMoonSprite.container.angle = 180 + modeTimer / nightTime * 180
clockSunSprite.container.angle = modeTimer / nightTime * 180
} else {
clockMoonSprite.container.angle = modeTimer / dayTime * 180
clockSunSprite.container.angle = 180 + modeTimer / dayTime * 180
}
clockMoonSprite.container.angle -= 230
clockSunSprite.container.angle -= 230
}
if (isNight && modeTimer >= nightTime) {
modeTimer = 0
nightfall(false)