summaryrefslogtreecommitdiffhomepage
path: root/games/floppy.c
diff options
context:
space:
mode:
authorraysan5 <[email protected]>2020-04-13 13:31:45 +0200
committerraysan5 <[email protected]>2020-04-13 13:31:45 +0200
commitfd5d1dfcb6d740728f21cdd08ba8387b0ee2f899 (patch)
tree6884674e4585aeef46346e0f8868b0e25c634efd /games/floppy.c
parenteb04be8141c5e70f99d8104c44a61fb71779a55a (diff)
downloadraylib-fd5d1dfcb6d740728f21cdd08ba8387b0ee2f899.tar.gz
raylib-fd5d1dfcb6d740728f21cdd08ba8387b0ee2f899.zip
WARNING: REMOVED raylib/games - Moved to raysan5/raylib-games
Move raylib games to another repo. It will reduce repo size for new clones. I considered also removing the related history with [`git filter-repo`](https://github.com/newren/git-filter-repo) (the current sane alternative to the deprecated `filter-branch`) but it has some implications: It would had made a new repository with distinct history and checksums. If the repo was previously published, the history of the new one won't have been compatible with the history others have pulled.
Diffstat (limited to 'games/floppy.c')
-rw-r--r--games/floppy.c238
1 files changed, 0 insertions, 238 deletions
diff --git a/games/floppy.c b/games/floppy.c
deleted file mode 100644
index 7455a9c8..00000000
--- a/games/floppy.c
+++ /dev/null
@@ -1,238 +0,0 @@
-/*******************************************************************************************
-*
-* raylib - sample game: floppy
-*
-* Sample game developed by Ian Eito, Albert Martos and Ramon Santamaria
-*
-* This game has been created using raylib v1.3 (www.raylib.com)
-* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-* Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-#if defined(PLATFORM_WEB)
- #include <emscripten/emscripten.h>
-#endif
-
-//----------------------------------------------------------------------------------
-// Some Defines
-//----------------------------------------------------------------------------------
-#define MAX_TUBES 100
-#define FLOPPY_RADIUS 24
-#define TUBES_WIDTH 80
-
-//----------------------------------------------------------------------------------
-// Types and Structures Definition
-//----------------------------------------------------------------------------------
-typedef struct Floppy {
- Vector2 position;
- int radius;
- Color color;
-} Floppy;
-
-typedef struct Tubes {
- Rectangle rec;
- Color color;
- bool active;
-} Tubes;
-
-//------------------------------------------------------------------------------------
-// Global Variables Declaration
-//------------------------------------------------------------------------------------
-static const int screenWidth = 800;
-static const int screenHeight = 450;
-
-static bool gameOver = false;
-static bool pause = false;
-static int score = 0;
-static int hiScore = 0;
-
-static Floppy floppy = { 0 };
-static Tubes tubes[MAX_TUBES*2] = { 0 };
-static Vector2 tubesPos[MAX_TUBES] = { 0 };
-static int tubesSpeedX = 0;
-static bool superfx = false;
-
-//------------------------------------------------------------------------------------
-// Module Functions Declaration (local)
-//------------------------------------------------------------------------------------
-static void InitGame(void); // Initialize game
-static void UpdateGame(void); // Update game (one frame)
-static void DrawGame(void); // Draw game (one frame)
-static void UnloadGame(void); // Unload game
-static void UpdateDrawFrame(void); // Update and Draw (one frame)
-
-//------------------------------------------------------------------------------------
-// Program main entry point
-//------------------------------------------------------------------------------------
-int main(void)
-{
- // Initialization
- //---------------------------------------------------------
- InitWindow(screenWidth, screenHeight, "sample game: floppy");
-
- InitGame();
-
-#if defined(PLATFORM_WEB)
- emscripten_set_main_loop(UpdateDrawFrame, 0, 1);
-#else
- SetTargetFPS(60);
- //--------------------------------------------------------------------------------------
-
- // Main game loop
- while (!WindowShouldClose()) // Detect window close button or ESC key
- {
- // Update and Draw
- //----------------------------------------------------------------------------------
- UpdateDrawFrame();
- //----------------------------------------------------------------------------------
- }
-#endif
- // De-Initialization
- //--------------------------------------------------------------------------------------
- UnloadGame(); // Unload loaded data (textures, sounds, models...)
-
- CloseWindow(); // Close window and OpenGL context
- //--------------------------------------------------------------------------------------
-
- return 0;
-}
-//------------------------------------------------------------------------------------
-// Module Functions Definitions (local)
-//------------------------------------------------------------------------------------
-
-// Initialize game variables
-void InitGame(void)
-{
- floppy.radius = FLOPPY_RADIUS;
- floppy.position = (Vector2){80, screenHeight/2 - floppy.radius};
- tubesSpeedX = 2;
-
- for (int i = 0; i < MAX_TUBES; i++)
- {
- tubesPos[i].x = 400 + 280*i;
- tubesPos[i].y = -GetRandomValue(0, 120);
- }
-
- for (int i = 0; i < MAX_TUBES*2; i += 2)
- {
- tubes[i].rec.x = tubesPos[i/2].x;
- tubes[i].rec.y = tubesPos[i/2].y;
- tubes[i].rec.width = TUBES_WIDTH;
- tubes[i].rec.height = 255;
-
- tubes[i+1].rec.x = tubesPos[i/2].x;
- tubes[i+1].rec.y = 600 + tubesPos[i/2].y - 255;
- tubes[i+1].rec.width = TUBES_WIDTH;
- tubes[i+1].rec.height = 255;
-
- tubes[i/2].active = true;
- }
-
- score = 0;
-
- gameOver = false;
- superfx = false;
- pause = false;
-}
-
-// Update game (one frame)
-void UpdateGame(void)
-{
- if (!gameOver)
- {
- if (IsKeyPressed('P')) pause = !pause;
-
- if (!pause)
- {
- for (int i = 0; i < MAX_TUBES; i++) tubesPos[i].x -= tubesSpeedX;
-
- for (int i = 0; i < MAX_TUBES*2; i += 2)
- {
- tubes[i].rec.x = tubesPos[i/2].x;
- tubes[i+1].rec.x = tubesPos[i/2].x;
- }
-
- if (IsKeyDown(KEY_SPACE) && !gameOver) floppy.position.y -= 3;
- else floppy.position.y += 1;
-
- // Check Collisions
- for (int i = 0; i < MAX_TUBES*2; i++)
- {
- if (CheckCollisionCircleRec(floppy.position, floppy.radius, tubes[i].rec))
- {
- gameOver = true;
- pause = false;
- }
- else if ((tubesPos[i/2].x < floppy.position.x) && tubes[i/2].active && !gameOver)
- {
- score += 100;
- tubes[i/2].active = false;
-
- superfx = true;
-
- if (score > hiScore) hiScore = score;
- }
- }
- }
- }
- else
- {
- if (IsKeyPressed(KEY_ENTER))
- {
- InitGame();
- gameOver = false;
- }
- }
-}
-
-// Draw game (one frame)
-void DrawGame(void)
-{
- BeginDrawing();
-
- ClearBackground(RAYWHITE);
-
- if (!gameOver)
- {
- DrawCircle(floppy.position.x, floppy.position.y, floppy.radius, DARKGRAY);
-
- // Draw tubes
- for (int i = 0; i < MAX_TUBES; i++)
- {
- DrawRectangle(tubes[i*2].rec.x, tubes[i*2].rec.y, tubes[i*2].rec.width, tubes[i*2].rec.height, GRAY);
- DrawRectangle(tubes[i*2 + 1].rec.x, tubes[i*2 + 1].rec.y, tubes[i*2 + 1].rec.width, tubes[i*2 + 1].rec.height, GRAY);
- }
-
- // Draw flashing fx (one frame only)
- if (superfx)
- {
- DrawRectangle(0, 0, screenWidth, screenHeight, WHITE);
- superfx = false;
- }
-
- DrawText(TextFormat("%04i", score), 20, 20, 40, GRAY);
- DrawText(TextFormat("HI-SCORE: %04i", hiScore), 20, 70, 20, LIGHTGRAY);
-
- if (pause) DrawText("GAME PAUSED", screenWidth/2 - MeasureText("GAME PAUSED", 40)/2, screenHeight/2 - 40, 40, GRAY);
- }
- else DrawText("PRESS [ENTER] TO PLAY AGAIN", GetScreenWidth()/2 - MeasureText("PRESS [ENTER] TO PLAY AGAIN", 20)/2, GetScreenHeight()/2 - 50, 20, GRAY);
-
- EndDrawing();
-}
-
-// Unload game variables
-void UnloadGame(void)
-{
- // TODO: Unload all dynamic loaded data (textures, sounds, models...)
-}
-
-// Update and Draw (one frame)
-void UpdateDrawFrame(void)
-{
- UpdateGame();
- DrawGame();
-}