Alertbox added.

This commit is contained in:
2025-11-28 18:10:37 -05:00
parent ab7bec94a8
commit bc66aa740e
5 changed files with 101 additions and 9 deletions

View File

@@ -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() {