diff options
author | nathansmith117 <thenathansmithsmith@gmail.com> | 2024-05-06 18:23:19 +0000 |
---|---|---|
committer | nathansmith117 <thenathansmithsmith@gmail.com> | 2024-05-06 18:23:19 +0000 |
commit | 926f3b1467efa314bb667ddbfd45a01c0edcd426 (patch) | |
tree | 0d6beeaedea151199332e20c2c3dbbb3bf7028ed | |
parent | f6635129ef339ffa4c3725b6a04b0dd644f2c7cf (diff) | |
download | PenguinYippies-926f3b1467efa314bb667ddbfd45a01c0edcd426.tar.gz PenguinYippies-926f3b1467efa314bb667ddbfd45a01c0edcd426.tar.bz2 PenguinYippies-926f3b1467efa314bb667ddbfd45a01c0edcd426.zip |
Working on shooter penguins
-rw-r--r-- | src/shooterScreen.c | 45 | ||||
-rw-r--r-- | src/shooterScreen.h | 19 |
2 files changed, 61 insertions, 3 deletions
diff --git a/src/shooterScreen.c b/src/shooterScreen.c index 4feeb9a..07b77fa 100644 --- a/src/shooterScreen.c +++ b/src/shooterScreen.c @@ -16,8 +16,11 @@ void initShooterScreeen(ShooterScreen* shooterScreen, Game* game) .direction = (Vector3){0.0, 0.0, 1.0}, .velocity = Vector3Zero(), .cameraAngle = Vector2Zero(), - .jumpStage = 0 + .jumpStage = 0, + .sleepyness = 0.0 }; + + resetShooterScreen(shooterScreen); } void updateShooterScreenControls(ShooterScreen* shooterScreen, Game* game) @@ -99,6 +102,14 @@ void updateShooterScreenJump(ShooterScreen* shooterScreen, Game* game) } } +void updateShooterScreenPenguins(ShooterScreen* ShooterScreen, Game* game) +{ + for (int i = 0; i < SHOOTER_PENGUIN_COUNT; ++i) + { + + } +} + void updateShooterScreen(ShooterScreen* shooterScreen, Game* game) { ShooterPlayer* player = &shooterScreen->player; @@ -120,7 +131,9 @@ void updateShooterScreen(ShooterScreen* shooterScreen, Game* game) // Draw 3d scene. BeginMode3D(shooterScreen->player.camera); - DrawGrid(32, 2.0); + DrawGrid(SHOOTER_MAP_SIZE, 2.0); + + updateShooterScreenPenguins(shooterScreen, game); EndMode3D(); } @@ -129,6 +142,34 @@ void closeShooterScreen(ShooterScreen* shooterScreen) { } +void resetShooterScreen(ShooterScreen* shooterScreen) +{ + // Player. + ShooterPlayer* player = &shooterScreen->player; + player->position = (Vector3){0.0, PLAYER_HEIGHT, 0.0}; + player->direction = (Vector3){0.0, 0.0, 1.0}; + player->cameraAngle = Vector2Zero(); + player->jumpStage = 0; + player->sleepyness = 0.0; + player->velocity = Vector3Zero(); + + // Penguins. + SetRandomSeed(time(NULL)); + + for (int i = 0; i < SHOOTER_PENGUIN_COUNT; ++i) + { + Vector3 randomPosition = (Vector3){ + GetRandomValue(-SHOOTER_MAP_SIZE, SHOOTER_MAP_SIZE), + SHOOTER_PENGUIN_HEIGHT, + GetRandomValue(-SHOOTER_MAP_SIZE, SHOOTER_MAP_SIZE) + }; + + shooterScreen->penguins[i].position = randomPosition; + shooterScreen->penguins[i].velocity = Vector3Zero(); + shooterScreen->penguins[i].sleepyness = 0.0; + } +} + void enterShooterScreen(Game* game) { game->currentScreen = SHOOTER_SCREEN; diff --git a/src/shooterScreen.h b/src/shooterScreen.h index 7c69a54..766faa4 100644 --- a/src/shooterScreen.h +++ b/src/shooterScreen.h @@ -3,13 +3,19 @@ #ifndef SHOOTER_SCREEN_H #define SHOOTER_SCREEN_H +#define SHOOTER_MAP_SIZE 64 + #define PLAYER_HEIGHT 2.0 -#define MOUSE_SPEED 0.01 #define PLAYER_SPEED 10.0 #define PLAYER_JUMP_SPEED 15.0 #define PLAYER_FALL_SPEED 18.0 #define PLAYER_JUMP_HEIGHT 8.0 +#define MOUSE_SPEED 0.01 + +#define SHOOTER_PENGUIN_COUNT 5 +#define SHOOTER_PENGUIN_HEIGHT 2.0 + typedef struct ShooterPlayer { Camera3D camera; @@ -20,16 +26,27 @@ typedef struct ShooterPlayer { Vector2 cameraAngle; int jumpStage; + float sleepyness; } ShooterPlayer; +// Penguin to "put to sleep". +typedef struct ShooterPenguin { + Vector3 position; + Vector3 velocity; + float sleepyness; +} ShooterPenguin; + typedef struct ShooterScreen { ShooterPlayer player; + ShooterPenguin penguins[SHOOTER_PENGUIN_COUNT]; } ShooterScreen; void initShooterScreeen(ShooterScreen* shooterScreen, Game* game); void updateShooterScreen(ShooterScreen* shooterScreen, Game* game); void closeShooterScreen(ShooterScreen* shooterScreen); +void resetShooterScreen(ShooterScreen* shooterScreen); + void enterShooterScreen(Game* game); void leaveShooterScreen(Game* game); |