fix: proper update position for birds

This commit is contained in:
huaqo-games
2025-11-06 15:46:30 +01:00
parent 7c4e2dffa9
commit 46796d8af6
2 changed files with 16 additions and 2 deletions
+2
View File
@@ -156,6 +156,8 @@ typedef struct {
Sprite sprite; Sprite sprite;
Animation animation; Animation animation;
Physics physics; Physics physics;
bool arrived;
Vector2 destPos;
} Birds; } Birds;
typedef struct { typedef struct {
+14 -2
View File
@@ -43,13 +43,25 @@ Birds CreateBirds(void){
return (Birds){ return (Birds){
.sprite = birdSprite, .sprite = birdSprite,
.animation = birdsAnimation, .animation = birdsAnimation,
.physics = birdsPhysics .physics = birdsPhysics,
.arrived = true,
.destPos = {0.0f, 0.0f}
}; };
} }
void UpdateBirds(Birds *birds){ void UpdateBirds(Birds *birds){
Camera2D *camera = GetCamera(); Camera2D *camera = GetCamera();
Vector2 dir = GetDirectionBetweenTwoVectors(birds->physics.position, camera->target); Rectangle cameraRec = GetCameraRectangle();
if(birds->arrived)
{
birds->destPos = GetPositionOutsideRectangle(cameraRec, 1, 100);
birds->arrived = false;
}
if(CheckCollisionPointCircle(birds->physics.position, birds->destPos, 10.0F))
{
birds->arrived = true;
}
Vector2 dir = GetDirectionBetweenTwoVectors(birds->physics.position, birds->destPos);
UpdatePhysics(&birds->physics, dir); UpdatePhysics(&birds->physics, dir);
printf("birdsPos: %f, %f", birds->physics.position.x, birds->physics.position.y); printf("birdsPos: %f, %f", birds->physics.position.x, birds->physics.position.y);
printf("cameraTarget: %f, %f",camera->target.x, camera->target.y ); printf("cameraTarget: %f, %f",camera->target.x, camera->target.y );