fiddle render
This commit is contained in:
parent
688e922d29
commit
25cafe9999
|
@ -31,7 +31,7 @@ func CommandLoop(w *pixelgl.Window, s State, stateCA chan<- State) {
|
||||||
case w.Pressed(pixelgl.KeyQ):
|
case w.Pressed(pixelgl.KeyQ):
|
||||||
w.SetClosed(true)
|
w.SetClosed(true)
|
||||||
return
|
return
|
||||||
case w.JustPressed(pixelgl.KeyEnter) || w.Pressed(pixelgl.KeySpace):
|
case w.JustPressed(pixelgl.KeyEnter) || w.Pressed(pixelgl.KeySpace) || true:
|
||||||
cmds := <-cmdC
|
cmds := <-cmdC
|
||||||
s = UpdateState(s, sOld, cmds)
|
s = UpdateState(s, sOld, cmds)
|
||||||
turn++
|
turn++
|
||||||
|
|
66
gfx/gfx.go
66
gfx/gfx.go
|
@ -37,7 +37,7 @@ func RenderLoop(w *pixelgl.Window, s game.State, stateC <-chan game.State, sb *S
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rs = Render(rs, sOld, s, w, *sb)
|
rs = render(rs, sOld, s, w, *sb)
|
||||||
w.Update()
|
w.Update()
|
||||||
frames++
|
frames++
|
||||||
|
|
||||||
|
@ -55,6 +55,38 @@ type renderState struct {
|
||||||
Frame int
|
Frame int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func render(rs renderState, sOld, sNew game.State, w *pixelgl.Window, sb SpriteBank) renderState {
|
||||||
|
bgBatch := pixel.NewBatch(new(pixel.TrianglesData), nil)
|
||||||
|
renderBackground(w, bgBatch)
|
||||||
|
|
||||||
|
oBatch := pixel.NewBatch(new(pixel.TrianglesData), sb.obstacle)
|
||||||
|
renderObstacles(sNew.Obstacles, w, oBatch, sb.obstacle)
|
||||||
|
oBatch.Draw(w)
|
||||||
|
|
||||||
|
dBatch := pixel.NewBatch(new(pixel.TrianglesData), sb.derelict)
|
||||||
|
renderObstacles(sNew.Derelicts, w, dBatch, sb.derelict)
|
||||||
|
dBatch.Draw(w)
|
||||||
|
|
||||||
|
sBatch := pixel.NewBatch(new(pixel.TrianglesData), nil)
|
||||||
|
renderSpawnPoints(sBatch, sNew.SpawnPoints, w.Bounds())
|
||||||
|
sBatch.Draw(w)
|
||||||
|
|
||||||
|
ctx := context{
|
||||||
|
sOld: sOld,
|
||||||
|
sNew: sNew,
|
||||||
|
tween: float64(rs.Frame) / float64(rs.Frames),
|
||||||
|
w: w,
|
||||||
|
}
|
||||||
|
rBatch := pixel.NewBatch(new(pixel.TrianglesData), sb.racer)
|
||||||
|
renderRacers(ctx, rBatch, sb.racer)
|
||||||
|
rBatch.Draw(w)
|
||||||
|
|
||||||
|
if rs.Frame < rs.Frames {
|
||||||
|
rs.Frame++
|
||||||
|
}
|
||||||
|
return rs
|
||||||
|
}
|
||||||
|
|
||||||
type context struct {
|
type context struct {
|
||||||
sOld game.State
|
sOld game.State
|
||||||
sNew game.State
|
sNew game.State
|
||||||
|
@ -97,38 +129,6 @@ func loadPicture(path string) (pixel.Picture, error) {
|
||||||
return pixel.PictureDataFromImage(img), nil
|
return pixel.PictureDataFromImage(img), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func Render(rs renderState, sOld, sNew game.State, w *pixelgl.Window, sb SpriteBank) renderState {
|
|
||||||
bgBatch := pixel.NewBatch(new(pixel.TrianglesData), nil)
|
|
||||||
renderBackground(w, bgBatch)
|
|
||||||
|
|
||||||
oBatch := pixel.NewBatch(new(pixel.TrianglesData), sb.obstacle)
|
|
||||||
renderObstacles(sNew.Obstacles, w, oBatch, sb.obstacle)
|
|
||||||
oBatch.Draw(w)
|
|
||||||
|
|
||||||
dBatch := pixel.NewBatch(new(pixel.TrianglesData), sb.derelict)
|
|
||||||
renderObstacles(sNew.Derelicts, w, dBatch, sb.derelict)
|
|
||||||
dBatch.Draw(w)
|
|
||||||
|
|
||||||
sBatch := pixel.NewBatch(new(pixel.TrianglesData), nil)
|
|
||||||
renderSpawnPoints(sBatch, sNew.SpawnPoints, w.Bounds())
|
|
||||||
sBatch.Draw(w)
|
|
||||||
|
|
||||||
ctx := context{
|
|
||||||
sOld: sOld,
|
|
||||||
sNew: sNew,
|
|
||||||
tween: float64(rs.Frame) / float64(rs.Frames),
|
|
||||||
w: w,
|
|
||||||
}
|
|
||||||
rBatch := pixel.NewBatch(new(pixel.TrianglesData), sb.racer)
|
|
||||||
renderRacers(ctx, rBatch, sb.racer)
|
|
||||||
rBatch.Draw(w)
|
|
||||||
|
|
||||||
if rs.Frame < rs.Frames {
|
|
||||||
rs.Frame++
|
|
||||||
}
|
|
||||||
return rs
|
|
||||||
}
|
|
||||||
|
|
||||||
var stars []pixel.Vec
|
var stars []pixel.Vec
|
||||||
|
|
||||||
func renderBackground(w *pixelgl.Window, batch *pixel.Batch) {
|
func renderBackground(w *pixelgl.Window, batch *pixel.Batch) {
|
||||||
|
|
Loading…
Reference in New Issue