fix: proper update position for birds
This commit is contained in:
@@ -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
@@ -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 );
|
||||||
|
|||||||
Reference in New Issue
Block a user