This commit is contained in:
silva guimaraes 2025-08-23 19:54:45 -03:00
parent 330dd82a2a
commit 63658fb92c

28
main.go
View file

@ -127,8 +127,10 @@ func (q *quadtree) drawBoundaries() {
}
for _, node := range q.nodes {
rl.DrawRectangleLines(
int32(node.pos.X), int32(node.pos.Y),
int32(node.size.X), int32(node.size.Y),
int32(math.Round(float64(node.pos.X))),
int32(math.Round(float64(node.pos.Y))),
int32(math.Round(float64(node.size.X))),
int32(math.Round(float64(node.size.Y))),
rl.Green,
)
}
@ -149,7 +151,7 @@ func tick(magnets []*magnet) {
for _, a := range magnets {
for _, b := range magnets {
if a == b { continue }
// não creio que isso esteja certo porem isso quaqueja que nem um pato
// não creio que esteja correto porém da pro gasto
direction := rl.Vector2Normalize(rl.Vector2Subtract(a.pos, b.pos))
distance := rl.Vector2Distance(a.pos, b.pos)
distanceSquared := math.Pow(float64(distance), 2)
@ -259,18 +261,8 @@ func main() {
magnets := randomMagnets(initalMagnetCount)
// magnets := []*magnet{
// newMagnet(383, 130, 1),
// newMagnet(540, 291, 1),
// newMagnet(122, 490, 1),
// newMagnet(324, 370, 1),
// newMagnet(156, 482, 1),
// }
quadtree := newQuadTreeRoot()
quadtree.insertMagnet(magnets...)
quadtree.printMagnets()
fmt.Println()
pause := true
@ -282,16 +274,14 @@ func main() {
rl.DrawText(strconv.Itoa(len(magnets)), 0, 20, 20, rl.White)
if pause {
rl.DrawText("pausado (E)", 0, 40, 20, rl.White)
quadtree.drawBoundaries()
}
quadtree.drawBoundaries()
{
if rl.IsKeyPressed(rl.KeyR) {
magnets = randomMagnets(initalMagnetCount)
quadtree = newQuadTreeRoot()
quadtree.insertMagnet(magnets...)
quadtree.printMagnets()
fmt.Println()
}
if rl.IsKeyPressed(rl.KeyW) {
magnets = append(magnets, randomMagnets(100)...)
@ -301,7 +291,7 @@ func main() {
}
if rl.IsKeyPressed(rl.KeySpace) {
mouse := rl.GetMousePosition()
magnets = append(magnets, newMagnet(mouse.X, mouse.Y, 50))
magnets = append(magnets, newMagnet(mouse.X, mouse.Y, 100))
}
}
@ -311,8 +301,8 @@ func main() {
for _, magnet := range magnets {
rl.DrawCircleV(magnet.pos, magnet.radius+1, rl.White)
rl.DrawCircleV(magnet.pos, magnet.radius, magnet.color)
rl.DrawCircleV(magnet.pos, 1, rl.White)
// rl.DrawCircleV(magnet.pos, magnet.radius, magnet.color)
}
rl.EndDrawing()