Bläddra i källkod

Reviewed code

pull/69/head
raysan5 9 år sedan
förälder
incheckning
e97438114f
1 ändrade filer med 28 tillägg och 25 borttagningar
  1. +28
    -25
      games/floppy/floppy.c

+ 28
- 25
games/floppy/floppy.c Visa fil

@ -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;
else floppyPos.y += 1;
if (IsKeyPressed(KEY_SPACE) && !gameover) PlaySound(jump);
// Check Collisions
// Check collisions player-tubes
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)
{
DrawTextureEx(floppy, floppyPos, 0, 1.0, WHITE);
//DrawCircleLines(floppyPos.x + floppy.width/2, floppyPos.y + floppy.height/2, floppy.width/2, RED);
}
// Draw moving tubes
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);

Laddar…
Avbryt
Spara