Fix physics

This commit is contained in:
Milan Nikolic 2022-03-24 00:05:50 +01:00
parent ffcaa81e5d
commit c878e5c98a
No known key found for this signature in database
GPG key ID: 9229D0EAA3AA4E75
3 changed files with 948 additions and 755 deletions

View file

@ -2,7 +2,7 @@ package main
import ( import (
"github.com/gen2brain/raylib-go/physics" "github.com/gen2brain/raylib-go/physics"
"github.com/gen2brain/raylib-go/raylib" rl "github.com/gen2brain/raylib-go/raylib"
) )
func main() { func main() {
@ -52,9 +52,10 @@ func main() {
} }
// Destroy falling physics bodies // Destroy falling physics bodies
for _, body := range physics.GetBodies() { for i := 0; i < physics.GetBodiesCount(); i++ {
body := physics.GetBody(i)
if body.Position.Y > float32(screenHeight)*2 { if body.Position.Y > float32(screenHeight)*2 {
physics.DestroyBody(body) body.Destroy()
} }
} }
@ -65,7 +66,9 @@ func main() {
rl.DrawFPS(screenWidth-90, screenHeight-30) rl.DrawFPS(screenWidth-90, screenHeight-30)
// Draw created physics bodies // Draw created physics bodies
for i, body := range physics.GetBodies() { for i := 0; i < physics.GetBodiesCount(); i++ {
body := physics.GetBody(i)
vertexCount := physics.GetShapeVerticesCount(i) vertexCount := physics.GetShapeVerticesCount(i)
for j := 0; j < vertexCount; j++ { for j := 0; j < vertexCount; j++ {
// Get physics bodies shape vertices to draw lines // Get physics bodies shape vertices to draw lines

View file

@ -2,7 +2,7 @@ package main
import ( import (
"github.com/gen2brain/raylib-go/physics" "github.com/gen2brain/raylib-go/physics"
"github.com/gen2brain/raylib-go/raylib" rl "github.com/gen2brain/raylib-go/raylib"
) )
const ( const (
@ -41,8 +41,14 @@ func main() {
} }
if rl.IsMouseButtonPressed(rl.MouseLeftButton) { if rl.IsMouseButtonPressed(rl.MouseLeftButton) {
for _, b := range physics.GetBodies() { //for _, b := range physics.GetBodies() {
b.Shatter(rl.GetMousePosition(), 10/b.InverseMass) for i := 0; i < physics.GetBodiesCount(); i++ {
body := physics.GetBody(i)
if body == nil {
continue
}
physics.Shatter(body, rl.GetMousePosition(), 10/body.InverseMass)
} }
} }

File diff suppressed because it is too large Load diff