Fix spacing and some comments
This commit is contained in:
parent
60223a358b
commit
ea7afc8ec8
1 changed files with 10 additions and 10 deletions
20
src/physac.c
20
src/physac.c
|
@ -30,13 +30,13 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h> // Declares malloc() and free() for memory management
|
#include <stdlib.h> // Declares malloc() and free() for memory management
|
||||||
#include <math.h> // abs() and fminf()
|
#include <math.h> // Declares cos(), sin(), abs() and fminf() for math operations
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
// Defines and Macros
|
// Defines and Macros
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
#define MAX_PHYSIC_OBJECTS 256
|
#define MAX_PHYSIC_OBJECTS 256 // Maximum available physic object slots in objects pool
|
||||||
#define PHYSICS_STEPS 450
|
#define PHYSICS_STEPS 450 // Physics update steps number (divided calculations in steps per frame) to get more accurately collisions detections
|
||||||
#define PHYSICS_ACCURACY 0.0001f // Velocity subtract operations round filter (friction)
|
#define PHYSICS_ACCURACY 0.0001f // Velocity subtract operations round filter (friction)
|
||||||
#define PHYSICS_ERRORPERCENT 0.001f // Collision resolve position fix
|
#define PHYSICS_ERRORPERCENT 0.001f // Collision resolve position fix
|
||||||
|
|
||||||
|
@ -145,11 +145,11 @@ void UpdatePhysics()
|
||||||
Vector2 direction = { 0.0f, 0.0f };
|
Vector2 direction = { 0.0f, 0.0f };
|
||||||
float penetrationDepth = 0.0f;
|
float penetrationDepth = 0.0f;
|
||||||
|
|
||||||
switch(physicObjects[i]->collider.type)
|
switch (physicObjects[i]->collider.type)
|
||||||
{
|
{
|
||||||
case COLLIDER_RECTANGLE:
|
case COLLIDER_RECTANGLE:
|
||||||
{
|
{
|
||||||
switch(physicObjects[k]->collider.type)
|
switch (physicObjects[k]->collider.type)
|
||||||
{
|
{
|
||||||
case COLLIDER_RECTANGLE:
|
case COLLIDER_RECTANGLE:
|
||||||
{
|
{
|
||||||
|
@ -266,7 +266,7 @@ void UpdatePhysics()
|
||||||
} break;
|
} break;
|
||||||
case COLLIDER_CIRCLE:
|
case COLLIDER_CIRCLE:
|
||||||
{
|
{
|
||||||
switch(physicObjects[k]->collider.type)
|
switch (physicObjects[k]->collider.type)
|
||||||
{
|
{
|
||||||
case COLLIDER_RECTANGLE:
|
case COLLIDER_RECTANGLE:
|
||||||
{
|
{
|
||||||
|
@ -532,14 +532,14 @@ void ApplyForce(PhysicObject *pObj, Vector2 force)
|
||||||
// Apply radial force to all physic objects in range
|
// Apply radial force to all physic objects in range
|
||||||
void ApplyForceAtPosition(Vector2 position, float force, float radius)
|
void ApplyForceAtPosition(Vector2 position, float force, float radius)
|
||||||
{
|
{
|
||||||
for(int i = 0; i < physicObjectsCount; i++)
|
for (int i = 0; i < physicObjectsCount; i++)
|
||||||
{
|
{
|
||||||
if(physicObjects[i]->rigidbody.enabled)
|
if (physicObjects[i]->rigidbody.enabled)
|
||||||
{
|
{
|
||||||
// Calculate direction and distance between force and physic object pposition
|
// Calculate direction and distance between force and physic object pposition
|
||||||
Vector2 distance = (Vector2){ physicObjects[i]->transform.position.x - position.x, physicObjects[i]->transform.position.y - position.y };
|
Vector2 distance = (Vector2){ physicObjects[i]->transform.position.x - position.x, physicObjects[i]->transform.position.y - position.y };
|
||||||
|
|
||||||
if(physicObjects[i]->collider.type == COLLIDER_RECTANGLE)
|
if (physicObjects[i]->collider.type == COLLIDER_RECTANGLE)
|
||||||
{
|
{
|
||||||
distance.x += physicObjects[i]->transform.scale.x/2;
|
distance.x += physicObjects[i]->transform.scale.x/2;
|
||||||
distance.y += physicObjects[i]->transform.scale.y/2;
|
distance.y += physicObjects[i]->transform.scale.y/2;
|
||||||
|
@ -548,7 +548,7 @@ void ApplyForceAtPosition(Vector2 position, float force, float radius)
|
||||||
float distanceLength = Vector2Length(distance);
|
float distanceLength = Vector2Length(distance);
|
||||||
|
|
||||||
// Check if physic object is in force range
|
// Check if physic object is in force range
|
||||||
if(distanceLength <= radius)
|
if (distanceLength <= radius)
|
||||||
{
|
{
|
||||||
// Normalize force direction
|
// Normalize force direction
|
||||||
distance.x /= distanceLength;
|
distance.x /= distanceLength;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue