diff options
Diffstat (limited to 'pongo.go')
| -rw-r--r-- | pongo.go | 17 |
1 files changed, 8 insertions, 9 deletions
@@ -19,6 +19,10 @@ const ( paddleSpeed = 5 ) +func keyPressed(key sdl.Keycode) bool { + return sdl.GetKeyboardState()[sdl.GetScancodeFromKey(key)] != 0 +} + func rectRight(r *sdl.FRect) float32 { return r.X + r.W } @@ -140,9 +144,6 @@ func pong() error { defer window.Destroy() defer renderer.Destroy() - upPressed := false - downPressed := false - playerScore := 0 aiScore := 0 @@ -164,10 +165,8 @@ func pong() error { return nil case *sdl.KeyboardEvent: switch t.Keysym.Sym { - case sdl.K_UP: - upPressed = t.State == sdl.PRESSED - case sdl.K_DOWN: - downPressed = t.State == sdl.PRESSED + case sdl.K_q, sdl.K_c, sdl.K_ESCAPE: + return nil } } } @@ -178,9 +177,9 @@ func pong() error { const simulationSpeed = time.Second / 120 for ; accumulator >= simulationSpeed; accumulator -= simulationSpeed { switch { - case upPressed && paddle1.bounds().Y >= 0: + case (keyPressed(sdl.K_UP) || keyPressed(sdl.K_w)) && paddle1.bounds().Y >= 0: paddle1.pos -= paddleSpeed - case downPressed && rectBottom(paddle1.bounds()) <= screenHeight: + case (keyPressed(sdl.K_DOWN) || keyPressed(sdl.K_s)) && rectBottom(paddle1.bounds()) <= screenHeight: paddle1.pos += paddleSpeed } |
