46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package render
|
|
|
|
import (
|
|
"pacman/game/assets"
|
|
|
|
rl "github.com/gen2brain/raylib-go/raylib"
|
|
)
|
|
|
|
// DrawTile draws a single tile at the specified tile coordinates (x, y).
|
|
//
|
|
// The coordinates are in tile space, not pixels. The top-left tile is (0, 0),
|
|
// and the bottom-right is (27, 35) given the fixed resolution and tile size.
|
|
//
|
|
// The appearance of the tile is determined by the provided assets.Tile value.
|
|
func DrawTile(x, y uint8, tile assets.Tile) {
|
|
px := int32(x) * TileSize
|
|
py := int32(y) * TileSize
|
|
|
|
// For now, just draw simple circles and rectangles.
|
|
switch tile {
|
|
case assets.TILE_PACMAN:
|
|
drawPacman(px, py)
|
|
case assets.TILE_BLINKY:
|
|
drawGhost(px, py, rl.Red)
|
|
case assets.TILE_PINKY:
|
|
drawGhost(px, py, rl.Pink)
|
|
case assets.TILE_INKY:
|
|
drawGhost(px, py, rl.Blue)
|
|
case assets.TILE_CLYDE:
|
|
drawGhost(px, py, rl.Orange)
|
|
case assets.TILE_PELLET:
|
|
rl.DrawCircle(px+(TileSize/2), py+(TileSize/2), 1, rl.Beige)
|
|
case assets.TILE_POWER_PELLET:
|
|
rl.DrawCircle(px+(TileSize/2), py+(TileSize/2), 2, rl.Beige)
|
|
case assets.TILE_WALL:
|
|
rl.DrawRectangle(px, py, TileSize, TileSize, rl.DarkBlue)
|
|
}
|
|
}
|
|
|
|
func drawGhost(x, y int32, col rl.Color) {
|
|
rl.DrawCircle(x+(TileSize/2), y+(TileSize/2), 3, col)
|
|
}
|
|
|
|
func drawPacman(x, y int32) {
|
|
rl.DrawCircle(x+(TileSize/2), y+(TileSize/2), 3, rl.Yellow)
|
|
}
|