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
|
fluidsim10height float64
|
||||||
|
|
||||||
//other
|
//other
|
||||||
fluidsim10angle float64
|
fluidsim10angle float64 //purely for debugging
|
||||||
mdown bool
|
mdown bool
|
||||||
mdx, mdy int
|
mdx, mdy int
|
||||||
}
|
}
|
||||||
@@ -114,11 +114,12 @@ func (g *Game) RenderFluidSim10(img *ebiten.Image) {
|
|||||||
for _, sim := range g.fluidsim10 {
|
for _, sim := range g.fluidsim10 {
|
||||||
sim.Draw()
|
sim.Draw()
|
||||||
|
|
||||||
|
angle := sim.GetAngle()
|
||||||
pos := sim.GetPosition()
|
pos := sim.GetPosition()
|
||||||
op := &ebiten.DrawImageOptions{}
|
op := &ebiten.DrawImageOptions{}
|
||||||
op.GeoM.Translate(-g.fluidsim10width/2, -g.fluidsim10height/2)
|
op.GeoM.Translate(-g.fluidsim10width/2, -g.fluidsim10height/2)
|
||||||
op.GeoM.Scale(1, -1)
|
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(g.fluidsim10width/2, g.fluidsim10height/2)
|
||||||
op.GeoM.Translate(pos.X, pos.Y)
|
op.GeoM.Translate(pos.X, pos.Y)
|
||||||
img.DrawImage(sim.GetSprite(), op)
|
img.DrawImage(sim.GetSprite(), op)
|
||||||
@@ -218,12 +219,12 @@ func (g *Game) ManageFluidSim10Inputs() {
|
|||||||
if ebiten.IsMouseButtonPressed(ebiten.MouseButtonLeft) {
|
if ebiten.IsMouseButtonPressed(ebiten.MouseButtonLeft) {
|
||||||
if g.mdown {
|
if g.mdown {
|
||||||
mx, my := ebiten.CursorPosition()
|
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 {
|
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)
|
sim.SetAngle(angle)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user