mirror of
https://github.com/raysan5/raylib.git
synced 2026-01-29 02:09:17 -05:00
Destroyed Working with Raylib in WebAssembly (markdown)
@ -1,140 +0,0 @@
|
|||||||
#include "raylib.h"
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#define MAX_OBJECTS 5
|
|
||||||
#define SCREEN_WIDTH 800
|
|
||||||
#define SCREEN_HEIGHT 500
|
|
||||||
|
|
||||||
//Game Object
|
|
||||||
typedef struct GameObject {
|
|
||||||
Rectangle rect;
|
|
||||||
Vector2 position;
|
|
||||||
float width;
|
|
||||||
bool passed;
|
|
||||||
} GameObject;
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
// Window Setup
|
|
||||||
InitWindow(SCREEN_WIDTH, SCREEN_HEIGHT, "Flappy Bird No Graphics or Sound");
|
|
||||||
SetTargetFPS(60);
|
|
||||||
|
|
||||||
int score = 0;
|
|
||||||
int highScore = 0;
|
|
||||||
bool gameOver = false;
|
|
||||||
|
|
||||||
float birdX = 130;
|
|
||||||
float birdY = 8;
|
|
||||||
float birdVelocity = 0;
|
|
||||||
const float gravity = 0.4f;
|
|
||||||
const float jumpStrength = -5.8f;
|
|
||||||
const float birdSize = 32;
|
|
||||||
|
|
||||||
// Initialize object positions
|
|
||||||
GameObject objects[MAX_OBJECTS];
|
|
||||||
int objectSpacing = 300;
|
|
||||||
int startX = 800;
|
|
||||||
float objectSpeed = 3.5f;
|
|
||||||
|
|
||||||
for (int i = 0; i < MAX_OBJECTS; i++) {
|
|
||||||
objects[i].position = (Vector2){ startX + i * objectSpacing, GetRandomValue(200, SCREEN_HEIGHT - 50) };
|
|
||||||
objects[i].rect = (Rectangle){ objects[i].position.x, objects[i].position.y, 40, 40 };
|
|
||||||
objects[i].width = 40;
|
|
||||||
objects[i].passed = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Colors
|
|
||||||
Color LightBlue = {208, 226, 237, 255};
|
|
||||||
Color Green = {50, 123, 66, 255};
|
|
||||||
|
|
||||||
// Game Loop
|
|
||||||
while (!WindowShouldClose()) {
|
|
||||||
// Game logic
|
|
||||||
if (!gameOver) {
|
|
||||||
if (IsKeyPressed(KEY_SPACE)) {
|
|
||||||
birdVelocity = jumpStrength;
|
|
||||||
}
|
|
||||||
|
|
||||||
birdVelocity += gravity;
|
|
||||||
birdY += birdVelocity;
|
|
||||||
|
|
||||||
for (int i = 0; i < MAX_OBJECTS; i++) {
|
|
||||||
objects[i].position.x -= objectSpeed;
|
|
||||||
objects[i].rect.x = objects[i].position.x;
|
|
||||||
|
|
||||||
if (objects[i].position.x + objects[i].width < 0) {
|
|
||||||
float farthestX = 0;
|
|
||||||
for (int j = 0; j < MAX_OBJECTS; j++) {
|
|
||||||
if (j != i && objects[j].position.x > farthestX) {
|
|
||||||
farthestX = objects[j].position.x;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
objects[i].position.x = farthestX + objectSpacing;
|
|
||||||
objects[i].position.y = GetRandomValue(200, SCREEN_HEIGHT - 50);
|
|
||||||
objects[i].rect.x = objects[i].position.x;
|
|
||||||
objects[i].rect.y = objects[i].position.y;
|
|
||||||
objects[i].passed = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!objects[i].passed && birdX > objects[i].position.x + objects[i].width) {
|
|
||||||
score++;
|
|
||||||
objects[i].passed = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle birdRect = { birdX, birdY, birdSize, birdSize };
|
|
||||||
if (CheckCollisionRecs(birdRect, objects[i].rect)) {
|
|
||||||
gameOver = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (birdY < 0 || birdY + birdSize > SCREEN_HEIGHT - 13) {
|
|
||||||
gameOver = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (IsKeyPressed(KEY_ENTER)) {
|
|
||||||
// Restart
|
|
||||||
birdY = 8;
|
|
||||||
birdVelocity = 0;
|
|
||||||
score = 0;
|
|
||||||
gameOver = false;
|
|
||||||
|
|
||||||
for (int i = 0; i < MAX_OBJECTS; i++) {
|
|
||||||
objects[i].position = (Vector2){ startX + i * objectSpacing, GetRandomValue(200, SCREEN_HEIGHT - 50) };
|
|
||||||
objects[i].rect = (Rectangle){ objects[i].position.x, objects[i].position.y, 40, 40 };
|
|
||||||
objects[i].passed = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (score > highScore) highScore = score;
|
|
||||||
|
|
||||||
// Drawing
|
|
||||||
BeginDrawing();
|
|
||||||
ClearBackground(LightBlue);
|
|
||||||
|
|
||||||
// Ground
|
|
||||||
DrawRectangle(0, SCREEN_HEIGHT - 11, SCREEN_WIDTH, 16, Green);
|
|
||||||
|
|
||||||
// Draw Bird
|
|
||||||
DrawRectangle(birdX, birdY, birdSize, birdSize, RED);
|
|
||||||
|
|
||||||
// Draw Objects
|
|
||||||
for (int i = 0; i < MAX_OBJECTS; i++) {
|
|
||||||
DrawRectangleRec(objects[i].rect, DARKGRAY);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Text
|
|
||||||
DrawText("Flappy Bird", 10, 7, 24, BLACK);
|
|
||||||
DrawText(TextFormat("SCORE: %d", score), 10, 40, 20, DARKBLUE);
|
|
||||||
DrawText(TextFormat("HIGH SCORE: %d", highScore), 10, 70, 20, MAROON);
|
|
||||||
|
|
||||||
if (gameOver) {
|
|
||||||
DrawText("GAME OVER!", SCREEN_WIDTH / 2 - 100, SCREEN_HEIGHT / 2 - 40, 30, RED);
|
|
||||||
DrawText("Press [ENTER] to Restart", SCREEN_WIDTH / 2 - 120, SCREEN_HEIGHT / 2, 20, DARKGRAY);
|
|
||||||
}
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
}
|
|
||||||
|
|
||||||
CloseWindow();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user