adding top collision
Some checks failed
Build Project / build (ubuntu-latest) (push) Failing after 8m17s
Build Project / build (windows-latest) (push) Has been cancelled

This commit is contained in:
swim67667
2026-06-24 22:40:27 -04:00
parent 257be0b3c5
commit f112c37e9e
6 changed files with 26 additions and 8 deletions

View File

@@ -20,8 +20,17 @@ void checkCollision(){
{
float forcex=fabsf(((en1->mass+en2->mass)/2)*((((en1->velocity.x)+(scale))+((en2->velocity.x)+(scale)))/2))*(scale);
float forcey=fabsf(((en1->mass+en2->mass)/2)*((((en1->velocity.y)+(scale))+((en2->velocity.y)+(scale)))/2))*(scale);
if(en1->position.x < en2->position.x){
float forcey=fabsf(((en1->mass+en2->mass)/2)*((((en1->velocity.y)+(scale))+((en2->velocity.y)+(scale)))/2))*(scale/4);
if(en1->position.y+en1->size*0.6f <= en2->position.y+en2->size*0.5f){
ApplyForce(
en1,
(Vector2){0, -((en1->mass*g))}
);
en1->velocity.y = en1->velocity.y * 0.1f;
en1->velocity.x = en1->velocity.x * en2->drag;
}
else if(en1->position.x < en2->position.x){
ApplyForce(
en1,
(Vector2){-forcex, 0}

View File

@@ -20,6 +20,7 @@ typedef struct Entity
Vector2 force;
Color color;
float drag;
} Entity;

View File

@@ -59,7 +59,8 @@ int main(void)
GetRandomValue(50,255),
GetRandomValue(50,255),
255
});
},
GetRandomValue(0, 1) + 0.1f);
}
if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT))
@@ -72,7 +73,8 @@ int main(void)
m.y,
25,
1.0f,
ORANGE);
ORANGE,
0.1f);
}
if (isSimulating)

View File

@@ -52,7 +52,8 @@ Entity *SpawnEntity(
float y,
float size,
float mass,
Color color)
Color color,
float drag)
{
for (int i = 0; i < MAX_ENTITIES; i++)
{
@@ -67,6 +68,7 @@ Entity *SpawnEntity(
e->mass = mass;
e->size = size;
e->drag = drag;
e->position = (Vector2){x, y};
e->velocity = (Vector2){0, 0};
@@ -104,7 +106,8 @@ void InitWorld(void)
120,
40,
1.0f,
BLUE);
BLUE,
0.1f);
if (player)
{
@@ -118,7 +121,8 @@ void InitWorld(void)
50,
25,
1.0f,
RED);
RED,
0.9f);
}
simTime = 0.0f;

View File

@@ -18,6 +18,7 @@ extern const float MAX_PLAYER_SPEED;
extern const float PLAYER_SPEED_FACTOR;
void ApplyForce(Entity *e, Vector2 force);
bool IsGrounded(Entity *e);
@@ -26,7 +27,8 @@ Entity *SpawnEntity(
float y,
float size,
float mass,
Color color);
Color color,
float drag);
void ClearWorld(void);
void InitWorld(void);

Binary file not shown.