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 lastTime: number = performance.now()
|
||||||
let player: AnimalEntity
|
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({
|
let world: planck.World = planck.World({
|
||||||
gravity: planck.Vec2(0, 0),
|
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 rootContainer = new PIXI.Container()
|
||||||
let playLayer: Layer
|
let playLayer: Layer
|
||||||
let layers: Layer[] = []
|
let layers: Layer[] = []
|
||||||
|
@ -113,6 +143,7 @@ export function GameState(ctx: ContextI, selectedAnimal: string, selectedSegment
|
||||||
let spawnZones: Record<string, Zone[]> = {}
|
let spawnZones: Record<string, Zone[]> = {}
|
||||||
|
|
||||||
let enter = () => {
|
let enter = () => {
|
||||||
|
realRootContainer.addChild(rootContainer)
|
||||||
lastTime = performance.now()
|
lastTime = performance.now()
|
||||||
hookKeyboard()
|
hookKeyboard()
|
||||||
// Load the world segment.
|
// Load the world segment.
|
||||||
|
@ -230,7 +261,11 @@ export function GameState(ctx: ContextI, selectedAnimal: string, selectedSegment
|
||||||
addEntity(entity, 'objects', x, y)
|
addEntity(entity, 'objects', x, y)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ctx.app.stage.addChild(rootContainer)
|
|
||||||
|
// Add clock
|
||||||
|
|
||||||
|
ctx.app.stage.addChild(realRootContainer)
|
||||||
|
ctx.app.stage.addChild(clockContainer)
|
||||||
}
|
}
|
||||||
let leave = () => {
|
let leave = () => {
|
||||||
unhookKeyboard()
|
unhookKeyboard()
|
||||||
|
@ -241,17 +276,36 @@ export function GameState(ctx: ContextI, selectedAnimal: string, selectedSegment
|
||||||
removeZone(zone)
|
removeZone(zone)
|
||||||
}
|
}
|
||||||
stopSong()
|
stopSong()
|
||||||
ctx.app.stage.removeChild(rootContainer)
|
ctx.app.stage.removeChild(realRootContainer)
|
||||||
|
ctx.app.stage.removeChild(clockContainer)
|
||||||
}
|
}
|
||||||
let elapsed: number = 0
|
let elapsed: number = 0
|
||||||
let update = (delta: number) => {
|
let update = (delta: number) => {
|
||||||
let w = segments[selectedSegment]
|
|
||||||
let time = performance.now()
|
let time = performance.now()
|
||||||
let realDelta = time - lastTime
|
let realDelta = time - lastTime
|
||||||
lastTime = time
|
lastTime = time
|
||||||
checkGamepads()
|
checkGamepads()
|
||||||
elapsed += delta
|
elapsed += delta
|
||||||
modeTimer += realDelta
|
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) {
|
if (isNight && modeTimer >= nightTime) {
|
||||||
modeTimer = 0
|
modeTimer = 0
|
||||||
nightfall(false)
|
nightfall(false)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user