Add an absolutely awful clock
This commit is contained in:
parent
850a5486bf
commit
754d1ec1a3
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user