mirror of
https://github.com/lloeki/ld48-29.git
synced 2025-12-06 11:04:39 +01:00
easier tiling, sprites and water
This commit is contained in:
parent
a86e49d505
commit
a83fde4344
1 changed files with 52 additions and 13 deletions
65
ld48-29.go
65
ld48-29.go
|
|
@ -179,6 +179,40 @@ func makeSprite(x int, y int, w int, h int) (quad uint) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func drawTile(texture gl.Texture, x int, y int, list uint) {
|
||||||
|
sx := float64(16 * x + 16 / 2)
|
||||||
|
sy := float64(16 * y + 16 / 2)
|
||||||
|
drawSprite(texture, sx, sy, 0, 1, list)
|
||||||
|
}
|
||||||
|
|
||||||
|
func drawWaterTile(x int, y int, t float64) {
|
||||||
|
waveHeight := 0.0
|
||||||
|
wavePhase := -1 + x % 2 * 2
|
||||||
|
|
||||||
|
if (t > 0) {
|
||||||
|
waveHeight = float64(wavePhase) * math.Sin(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
qx1, qy1 := 16 * float32(x), 16 * float32(y)
|
||||||
|
qx2, qy2 := qx1 + 16, qy1 + 16
|
||||||
|
|
||||||
|
gl.Disable(gl.TEXTURE_2D)
|
||||||
|
gl.Disable(gl.LIGHTING)
|
||||||
|
gl.MatrixMode(gl.MODELVIEW)
|
||||||
|
gl.LoadIdentity()
|
||||||
|
gl.Color4f(0.0, 0.0, 0.5, 0.3)
|
||||||
|
|
||||||
|
gl.Begin(gl.QUADS)
|
||||||
|
gl.Normal3f(0.0, 0.0, 1.0)
|
||||||
|
gl.Vertex3f(qx1, qy1, 1.0)
|
||||||
|
gl.Vertex3f(qx2, qy1, 1.0)
|
||||||
|
gl.Vertex3f(qx2, qy2 + float32(waveHeight), 1.0)
|
||||||
|
gl.Vertex3f(qx1, qy2 + float32(waveHeight), 1.0)
|
||||||
|
gl.End()
|
||||||
|
|
||||||
|
gl.Enable(gl.LIGHTING)
|
||||||
|
gl.Enable(gl.TEXTURE_2D)
|
||||||
|
}
|
||||||
|
|
||||||
// main
|
// main
|
||||||
|
|
||||||
|
|
@ -341,25 +375,30 @@ func render(textures map[string]gl.Texture, lists map[string]uint) {
|
||||||
|
|
||||||
// wall tiles
|
// wall tiles
|
||||||
|
|
||||||
for i:= 0; i < 11; i++ {
|
for j := 0; j < 11; j++ {
|
||||||
drawSprite(textures["sprites"], 3*16+16/2, 16*float64(i)+16/2, 0, 1, lists["stonewallright"])
|
drawTile(textures["sprites"], 3, j, lists["stonewallright"])
|
||||||
}
|
}
|
||||||
drawSprite(textures["sprites"], 3*16+16/2, 1*16*float64(11)+16/2, 0, 1, lists["stonewalltopright"])
|
drawTile(textures["sprites"], 3, 11, lists["stonewalltopright"])
|
||||||
|
|
||||||
for i:= 0; i < 11; i++ {
|
for i := 0; i < 3; i++ {
|
||||||
drawSprite(textures["sprites"], 2*16+16/2, 16*float64(i)+16/2, 0, 1, lists["stonewall"])
|
for j:= 0; j < 11; j++ {
|
||||||
|
drawTile(textures["sprites"], i, j, lists["stonewall"])
|
||||||
|
}
|
||||||
|
drawTile(textures["sprites"], i, 11, lists["stonewalltop"])
|
||||||
}
|
}
|
||||||
drawSprite(textures["sprites"], 2*16+16/2, 1*16*float64(11)+16/2, 0, 1, lists["stonewalltop"])
|
|
||||||
|
|
||||||
for i:= 0; i < 11; i++ {
|
// water
|
||||||
drawSprite(textures["sprites"], 1*16+16/2, 16*float64(i)+16/2, 0, 1, lists["stonewall"])
|
for i := 0; i < 640 / 16; i++ {
|
||||||
|
for j := 0; j < 3; j++ {
|
||||||
|
wt := 0.0
|
||||||
|
if j == 2 {
|
||||||
|
wt = t
|
||||||
|
}
|
||||||
|
drawWaterTile(i, j, wt)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
drawSprite(textures["sprites"], 1*16+16/2, 1*16*float64(11)+16/2, 0, 1, lists["stonewalltop"])
|
|
||||||
|
|
||||||
for i:= 0; i < 11; i++ {
|
// mouse pointer
|
||||||
drawSprite(textures["sprites"], 0*16+16/2, 16*float64(i)+16/2, 0, 1, lists["stonewall"])
|
|
||||||
}
|
|
||||||
drawSprite(textures["sprites"], 0*16+16/2, 1*16*float64(11)+16/2, 0, 1, lists["stonewalltop"])
|
|
||||||
|
|
||||||
if mouseVisible {
|
if mouseVisible {
|
||||||
drawSprite(textures["sprites"], mouseX, mouseY, 0, 1.0, lists["cursor"])
|
drawSprite(textures["sprites"], mouseX, mouseY, 0, 1.0, lists["cursor"])
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue