allow camera movement with the keyboard

This commit is contained in:
2024-08-22 17:08:28 +10:00
parent 83fc86d2a5
commit 39d46da7f7
5 changed files with 231 additions and 40 deletions

View File

@ -27,11 +27,16 @@ class Game: GameDelegate {
var chunk = Chunk(position: .zero)
init() {
self.player.position = SIMD3(0.5, Float(Chunk.chunkSize) + 0.5, 0.5)
self.player.rotation = .init(.pi, 0)
self.resetPlayer()
self.generateWorld()
}
private func resetPlayer() {
self.player.position = .init(repeating: 0.5) + .init(0, Float(Chunk.chunkSize), 0)
self.player.velocity = .zero
self.player.rotation = .init(.pi, 0)
}
private func generateWorld() {
#if true
let newSeed = UInt64(Arc4Random.instance.next()) | UInt64(Arc4Random.instance.next()) << 32
@ -70,9 +75,7 @@ class Game: GameDelegate {
// Player reset
if pad.pressed(.back) {
self.player.position = .init(repeating: 0.5) + .init(0, Float(Chunk.chunkSize), 0)
self.player.velocity = .zero
self.player.rotation = .init(.pi, 0)
self.resetPlayer()
}
// Regenerate
@ -81,6 +84,13 @@ class Game: GameDelegate {
}
}
if Keyboard.pressed(.r) {
self.resetPlayer()
}
if Keyboard.pressed(.g) {
self.generateWorld()
}
self.player.update(deltaTime: deltaTime, chunk: chunk)
self.camera.position = player.eyePosition
self.camera.rotation = player.eyeRotation