Interaction adjustment for n fluidsims.
This commit is contained in:
13
game/game.go
13
game/game.go
@@ -34,7 +34,7 @@ type Game struct {
|
||||
fluidsim10height float64
|
||||
|
||||
//other
|
||||
fluidsim10angle float64
|
||||
fluidsim10angle float64 //purely for debugging
|
||||
mdown bool
|
||||
mdx, mdy int
|
||||
}
|
||||
@@ -114,11 +114,12 @@ func (g *Game) RenderFluidSim10(img *ebiten.Image) {
|
||||
for _, sim := range g.fluidsim10 {
|
||||
sim.Draw()
|
||||
|
||||
angle := sim.GetAngle()
|
||||
pos := sim.GetPosition()
|
||||
op := &ebiten.DrawImageOptions{}
|
||||
op.GeoM.Translate(-g.fluidsim10width/2, -g.fluidsim10height/2)
|
||||
op.GeoM.Scale(1, -1)
|
||||
op.GeoM.Rotate(g.fluidsim10angle)
|
||||
op.GeoM.Rotate(angle)
|
||||
// op.GeoM.Translate(g.fluidsim10width/2, g.fluidsim10height/2)
|
||||
op.GeoM.Translate(pos.X, pos.Y)
|
||||
img.DrawImage(sim.GetSprite(), op)
|
||||
@@ -218,12 +219,12 @@ func (g *Game) ManageFluidSim10Inputs() {
|
||||
if ebiten.IsMouseButtonPressed(ebiten.MouseButtonLeft) {
|
||||
if g.mdown {
|
||||
mx, my := ebiten.CursorPosition()
|
||||
dx := float64(mx) - GameWidth/2 //g.fluidsim10.GetPosition().X
|
||||
dy := float64(my) - GameHeight/2 //g.fluidsim10.GetPosition().Y
|
||||
angle := math.Atan2(dy, dx)
|
||||
g.fluidsim10angle = angle
|
||||
|
||||
for _, sim := range g.fluidsim10 {
|
||||
dx := float64(mx) - sim.GetPosition().X
|
||||
dy := float64(my) - sim.GetPosition().Y
|
||||
angle := math.Atan2(dy, dx)
|
||||
g.fluidsim10angle = angle
|
||||
sim.SetAngle(angle)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user