mirror of
https://github.com/raysan5/raylib.git
synced 2026-02-02 04:09:18 -05:00
Reviewed code
This commit is contained in:
@ -2,16 +2,6 @@
|
|||||||
*
|
*
|
||||||
* raylib game - Floppy Bird
|
* raylib game - Floppy Bird
|
||||||
*
|
*
|
||||||
* Welcome to raylib!
|
|
||||||
*
|
|
||||||
* To test examples, just press F6 and execute raylib_compile_execute script
|
|
||||||
* Note that compiled executable is placed in the same folder as .c file
|
|
||||||
*
|
|
||||||
* You can find all basic examples on C:\raylib\raylib\examples folder or
|
|
||||||
* raylib official webpage: www.raylib.com
|
|
||||||
*
|
|
||||||
* Enjoy using raylib. :)
|
|
||||||
*
|
|
||||||
* This game has been created using raylib 1.1 (www.raylib.com)
|
* This game has been created using raylib 1.1 (www.raylib.com)
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
||||||
*
|
*
|
||||||
@ -86,10 +76,21 @@ int main()
|
|||||||
{
|
{
|
||||||
// Update
|
// Update
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
backScroll--;
|
|
||||||
|
|
||||||
|
// Background scroll logic
|
||||||
|
backScroll--;
|
||||||
if (backScroll <= -800) backScroll = 0;
|
if (backScroll <= -800) backScroll = 0;
|
||||||
|
|
||||||
|
// Player movement logic
|
||||||
|
if (!gameover)
|
||||||
|
{
|
||||||
|
if (IsKeyDown(KEY_SPACE)) floppyPos.y -= 3;
|
||||||
|
else floppyPos.y += 1;
|
||||||
|
|
||||||
|
if (IsKeyPressed(KEY_SPACE)) PlaySound(jump);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tubes moving logic
|
||||||
for (int i = 0; i < MAX_TUBES; i++) tubesPos[i].x -= tubesSpeedX;
|
for (int i = 0; i < MAX_TUBES; i++) tubesPos[i].x -= tubesSpeedX;
|
||||||
|
|
||||||
for (int i = 0; i < MAX_TUBES*2; i += 2)
|
for (int i = 0; i < MAX_TUBES*2; i += 2)
|
||||||
@ -98,12 +99,7 @@ int main()
|
|||||||
tubesRecs[i+1].x = tubesPos[i/2].x;
|
tubesRecs[i+1].x = tubesPos[i/2].x;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsKeyDown(KEY_SPACE) && !gameover) floppyPos.y -= 3;
|
// Check collisions player-tubes
|
||||||
else floppyPos.y += 1;
|
|
||||||
|
|
||||||
if (IsKeyPressed(KEY_SPACE) && !gameover) PlaySound(jump);
|
|
||||||
|
|
||||||
// Check Collisions
|
|
||||||
for (int i = 0; i < MAX_TUBES*2; i++)
|
for (int i = 0; i < MAX_TUBES*2; i++)
|
||||||
{
|
{
|
||||||
if (CheckCollisionCircleRec((Vector2){ floppyPos.x + floppy.width/2, floppyPos.y + floppy.height/2 }, floppy.width/2, tubesRecs[i]))
|
if (CheckCollisionCircleRec((Vector2){ floppyPos.x + floppy.width/2, floppyPos.y + floppy.height/2 }, floppy.width/2, tubesRecs[i]))
|
||||||
@ -122,6 +118,7 @@ int main()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Gameover logic for reset
|
||||||
if (gameover && IsKeyPressed(KEY_ENTER))
|
if (gameover && IsKeyPressed(KEY_ENTER))
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MAX_TUBES; i++)
|
for (int i = 0; i < MAX_TUBES; i++)
|
||||||
@ -147,7 +144,6 @@ int main()
|
|||||||
gameover = false;
|
gameover = false;
|
||||||
score = 0;
|
score = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
// Draw
|
// Draw
|
||||||
@ -156,32 +152,39 @@ int main()
|
|||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
ClearBackground(RAYWHITE);
|
||||||
|
|
||||||
|
// Draw scrolling background
|
||||||
DrawTexture(background, backScroll, 0, WHITE);
|
DrawTexture(background, backScroll, 0, WHITE);
|
||||||
DrawTexture(background, screenWidth + backScroll, 0, WHITE);
|
DrawTexture(background, screenWidth + backScroll, 0, WHITE);
|
||||||
|
|
||||||
if (!gameover)
|
// Draw moving tubes
|
||||||
{
|
|
||||||
DrawTextureEx(floppy, floppyPos, 0, 1.0, WHITE);
|
|
||||||
//DrawCircleLines(floppyPos.x + floppy.width/2, floppyPos.y + floppy.height/2, floppy.width/2, RED);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < MAX_TUBES; i++)
|
for (int i = 0; i < MAX_TUBES; i++)
|
||||||
{
|
{
|
||||||
if (tubesPos[i].x <= 800) DrawTextureEx(tubes, tubesPos[i], 0, 1.0, WHITE);
|
if (tubesPos[i].x <= 800) DrawTextureEx(tubes, tubesPos[i], 0, 1.0, WHITE);
|
||||||
|
|
||||||
|
// Draw collision recs
|
||||||
//DrawRectangleLines(tubesRecs[i*2].x, tubesRecs[i*2].y, tubesRecs[i*2].width, tubesRecs[i*2].height, RED);
|
//DrawRectangleLines(tubesRecs[i*2].x, tubesRecs[i*2].y, tubesRecs[i*2].width, tubesRecs[i*2].height, RED);
|
||||||
//DrawRectangleLines(tubesRecs[i*2 + 1].x, tubesRecs[i*2 + 1].y, tubesRecs[i*2 + 1].width, tubesRecs[i*2 + 1].height, RED);
|
//DrawRectangleLines(tubesRecs[i*2 + 1].x, tubesRecs[i*2 + 1].y, tubesRecs[i*2 + 1].width, tubesRecs[i*2 + 1].height, RED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Draw scores
|
||||||
DrawText(FormatText("%04i", score), 20, 20, 40, PINK);
|
DrawText(FormatText("%04i", score), 20, 20, 40, PINK);
|
||||||
DrawText(FormatText("HI-SCORE: %04i", hiscore), 20, 70, 20, VIOLET);
|
DrawText(FormatText("HI-SCORE: %04i", hiscore), 20, 70, 20, VIOLET);
|
||||||
|
|
||||||
if (gameover)
|
// Draw player or game over messages
|
||||||
|
if (!gameover)
|
||||||
|
{
|
||||||
|
DrawTextureEx(floppy, floppyPos, 0, 1.0, WHITE);
|
||||||
|
|
||||||
|
// Draw collision circle
|
||||||
|
//DrawCircleLines(floppyPos.x + floppy.width/2, floppyPos.y + floppy.height/2, floppy.width/2, RED);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
DrawText("GAME OVER", 100, 180, 100, MAROON);
|
DrawText("GAME OVER", 100, 180, 100, MAROON);
|
||||||
DrawText("PRESS ENTER to RETRY!", 280, 280, 20, RED);
|
DrawText("PRESS ENTER to RETRY!", 280, 280, 20, RED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Draw screen light flash when passing through a tube
|
||||||
if (superfx)
|
if (superfx)
|
||||||
{
|
{
|
||||||
DrawRectangle(0, 0, screenWidth, screenHeight, GOLD);
|
DrawRectangle(0, 0, screenWidth, screenHeight, GOLD);
|
||||||
|
|||||||
Reference in New Issue
Block a user