|
@@ -13,15 +13,12 @@
|
|
|
|
|
|
#define PHYSAC_IMPLEMENTATION
|
|
|
#include "physac.h"
|
|
|
-#include <pthread.h>
|
|
|
|
|
|
#define FORCE_AMOUNT 5.0f
|
|
|
#define FORCE_RADIUS 150
|
|
|
#define LINE_LENGTH 75
|
|
|
#define TRIANGLE_LENGTH 12
|
|
|
|
|
|
-void* PhysicsThread(void *arg);
|
|
|
-
|
|
|
int main()
|
|
|
{
|
|
|
// Initialization
|
|
@@ -30,7 +27,6 @@ int main()
|
|
|
int screenHeight = 450;
|
|
|
|
|
|
InitWindow(screenWidth, screenHeight, "raylib [physac] example - forces");
|
|
|
-
|
|
|
InitPhysics((Vector2){ 0.0f, -9.81f/2 }); // Initialize physics module
|
|
|
|
|
|
// Global variables
|
|
@@ -64,10 +60,6 @@ int main()
|
|
|
PhysicBody topWall = CreatePhysicBody((Vector2){ screenWidth/2, -25 }, 0.0f, (Vector2){ screenWidth, 50 });
|
|
|
PhysicBody bottomWall = CreatePhysicBody((Vector2){ screenWidth/2, screenHeight + 25 }, 0.0f, (Vector2){ screenWidth, 50 });
|
|
|
|
|
|
- // Create physics thread
|
|
|
- pthread_t tid;
|
|
|
- pthread_create(&tid, NULL, &PhysicsThread, NULL);
|
|
|
-
|
|
|
SetTargetFPS(60);
|
|
|
//--------------------------------------------------------------------------------------
|
|
|
|
|
@@ -179,33 +171,10 @@ int main()
|
|
|
}
|
|
|
|
|
|
// De-Initialization
|
|
|
- //--------------------------------------------------------------------------------------
|
|
|
- pthread_cancel(tid); // Destroy physics thread
|
|
|
-
|
|
|
+ //--------------------------------------------------------------------------------------
|
|
|
ClosePhysics(); // Unitialize physics module
|
|
|
-
|
|
|
CloseWindow(); // Close window and OpenGL context
|
|
|
//--------------------------------------------------------------------------------------
|
|
|
|
|
|
return 0;
|
|
|
-}
|
|
|
-
|
|
|
-void* PhysicsThread(void *arg)
|
|
|
-{
|
|
|
- // Initialize time variables
|
|
|
- double currentTime = GetTime();
|
|
|
- double previousTime = currentTime;
|
|
|
-
|
|
|
- // Physics update loop
|
|
|
- while (!WindowShouldClose())
|
|
|
- {
|
|
|
- currentTime = GetTime();
|
|
|
- double deltaTime = (double)(currentTime - previousTime);
|
|
|
- previousTime = currentTime;
|
|
|
-
|
|
|
- // Delta time value needs to be inverse multiplied by physics time step value (1/target fps)
|
|
|
- UpdatePhysics(deltaTime/PHYSICS_TIMESTEP);
|
|
|
- }
|
|
|
-
|
|
|
- return NULL;
|
|
|
}
|