Alertbox added.
This commit is contained in:
32
game/game.go
32
game/game.go
@@ -15,14 +15,13 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
GameWidth = 640
|
||||
GameHeight = 360
|
||||
GameParticleCount = 2000
|
||||
GameGravity = 2
|
||||
GameParticleRadius = 5
|
||||
GameDamping = .7
|
||||
GameDeltaTimeStep = 0.5
|
||||
|
||||
GameWidth = 640
|
||||
GameHeight = 360
|
||||
GameParticleCount = 2000
|
||||
GameGravity = 2
|
||||
GameParticleRadius = 5
|
||||
GameDamping = .7
|
||||
GameDeltaTimeStep = 0.5
|
||||
GameInfluenceRadius = 30
|
||||
)
|
||||
|
||||
@@ -38,6 +37,7 @@ type Game struct {
|
||||
resolvecollisions bool
|
||||
resolvers []func(particle *elements.Particle)
|
||||
resolveridx int
|
||||
alertbox *elements.Alert
|
||||
}
|
||||
|
||||
func NewGame() *Game {
|
||||
@@ -47,6 +47,7 @@ func NewGame() *Game {
|
||||
renderquads: false,
|
||||
resolvecollisions: false,
|
||||
resolveridx: 0,
|
||||
alertbox: elements.NewAlert(),
|
||||
}
|
||||
|
||||
g.particlebox = &gamedata.Vector{
|
||||
@@ -104,6 +105,12 @@ func (g *Game) Draw(screen *ebiten.Image) {
|
||||
if g.renderquads {
|
||||
g.RenderQuadrants(screen)
|
||||
}
|
||||
|
||||
if g.paused {
|
||||
op := &ebiten.DrawImageOptions{}
|
||||
op.GeoM.Translate(50, 50)
|
||||
screen.DrawImage(g.alertbox.Sprite, op)
|
||||
}
|
||||
}
|
||||
|
||||
func (g *Game) Layout(x, y int) (int, int) {
|
||||
@@ -279,22 +286,30 @@ func (g *Game) RenderQuadrants(img *ebiten.Image) {
|
||||
}
|
||||
|
||||
func (g *Game) ParseInputs() {
|
||||
|
||||
//refresh particles
|
||||
if inpututil.IsKeyJustPressed(ebiten.KeyR) {
|
||||
g.InitializeParticles()
|
||||
}
|
||||
|
||||
//pause simulation
|
||||
if inpututil.IsKeyJustPressed(ebiten.KeyP) {
|
||||
g.paused = !g.paused
|
||||
g.alertbox.SetText("PAUSED")
|
||||
g.alertbox.Draw()
|
||||
}
|
||||
|
||||
//show quadtree quadrants
|
||||
if inpututil.IsKeyJustPressed(ebiten.KeyQ) {
|
||||
g.renderquads = !g.renderquads
|
||||
}
|
||||
|
||||
//enable collision resolution
|
||||
if inpututil.IsKeyJustPressed(ebiten.KeyC) {
|
||||
g.resolvecollisions = !g.resolvecollisions
|
||||
}
|
||||
|
||||
//switch between collision resolvers
|
||||
if inpututil.IsKeyJustPressed(ebiten.KeyLeft) {
|
||||
g.resolveridx = g.resolveridx - 1
|
||||
if g.resolveridx < 0 {
|
||||
@@ -305,7 +320,6 @@ func (g *Game) ParseInputs() {
|
||||
if inpututil.IsKeyJustPressed(ebiten.KeyRight) {
|
||||
g.resolveridx = (g.resolveridx + 1) % len(g.resolvers)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (g *Game) RebuildQuadtree() {
|
||||
|
||||
Reference in New Issue
Block a user