added stats to level select and better firework amounts
This commit is contained in:
parent
3537a6d37e
commit
b4b53ddedd
4 changed files with 50 additions and 35 deletions
|
@ -12,15 +12,26 @@
|
||||||
#include "Controls.h"
|
#include "Controls.h"
|
||||||
#include "Options.h"
|
#include "Options.h"
|
||||||
#include "Gameplay.h"
|
#include "Gameplay.h"
|
||||||
#include "Score.h"
|
#include "Stats.h"
|
||||||
#include "Timers.h"
|
#include "Timers.h"
|
||||||
#include "Music.h"
|
#include "Music.h"
|
||||||
#include "Gfx.h"
|
#include "Gfx.h"
|
||||||
|
|
||||||
int score = 0, bestscore = 0, finishfromGameplayScreen = 0;
|
int score = 0, bestscore = 0, finishfromGameplayScreen = 0, redfeathers = 0, greenfeathers = 0;
|
||||||
|
|
||||||
Music Gameplaysong = { 0 };
|
Music Gameplaysong = { 0 };
|
||||||
|
|
||||||
|
bool CheckFireworkActivity(void)
|
||||||
|
{
|
||||||
|
int matches = 0, val = 0;
|
||||||
|
for (int i = 0; i < MAX_FIREWORKS; i++) {
|
||||||
|
if (fireworks[i].active == val) matches++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (matches == MAX_FIREWORKS) return true;
|
||||||
|
else return false;
|
||||||
|
}
|
||||||
|
|
||||||
void LoadGamplayScreen(void)
|
void LoadGamplayScreen(void)
|
||||||
{
|
{
|
||||||
player.fxhit = LoadSound("assets/sfx/hit.wav");
|
player.fxhit = LoadSound("assets/sfx/hit.wav");
|
||||||
|
@ -95,13 +106,19 @@ void InitGameplayScreen(void)
|
||||||
feather.power = 0;
|
feather.power = 0;
|
||||||
|
|
||||||
for (int i = 0; i < MAX_FIREWORKS; i++) {
|
for (int i = 0; i < MAX_FIREWORKS; i++) {
|
||||||
fireworks[i].active = 0;
|
fireworks[i].active = 1;
|
||||||
fireworks[i].hitbox = (Rectangle) {
|
fireworks[i].hitbox = (Rectangle) {
|
||||||
630,
|
GetScreenWidth() + firework_sprite.width,
|
||||||
GetRandomValue(0, GetScreenHeight()),
|
0,
|
||||||
(float) firework_sprite.width/2 + 10,
|
(float) firework_sprite.width/2 + 10,
|
||||||
(float) firework_sprite.height
|
(float) firework_sprite.height
|
||||||
};
|
};
|
||||||
|
fireworks[i].hitbox.y = GetRandomValue(0, GetScreenHeight() - firework_sprite.height);
|
||||||
|
switch (level) {
|
||||||
|
case LEVEL1: fireworks[i].speed.x = GetRandomValue(100, 300); break;
|
||||||
|
case LEVEL2: fireworks[i].speed.x = GetRandomValue(400, 600); break;
|
||||||
|
case LEVEL3: fireworks[i].speed.x = GetRandomValue(800, 1000); break;
|
||||||
|
}
|
||||||
fireworks[i].color = RAYWHITE;
|
fireworks[i].color = RAYWHITE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,13 +134,16 @@ void InitGameplayScreen(void)
|
||||||
shoot[i].active = false;
|
shoot[i].active = false;
|
||||||
shoot[i].color = RED;
|
shoot[i].color = RED;
|
||||||
}
|
}
|
||||||
fireworkAmount = 100;
|
switch (level) {
|
||||||
|
case LEVEL1: fireworkAmount = 50; break;
|
||||||
|
case LEVEL2: fireworkAmount = 200; break;
|
||||||
|
case LEVEL3: fireworkAmount = 500; break;
|
||||||
|
}
|
||||||
|
|
||||||
pause = 0;
|
pause = 0;
|
||||||
DebugMode = 0;
|
DebugMode = 0;
|
||||||
pauseTimer = 0;
|
pauseTimer = 0;
|
||||||
score = 0;
|
|
||||||
scoreTimer = 0;
|
|
||||||
|
|
||||||
GI_callcount++;
|
GI_callcount++;
|
||||||
}
|
}
|
||||||
|
@ -169,12 +189,11 @@ void ResetFeather(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateGameplayScreen(void)
|
void UpdateGameplayScreen(void)
|
||||||
|
|
||||||
{
|
{
|
||||||
if (INPUT_OPTION_PRESSED) pause = !pause;
|
if (INPUT_OPTION_PRESSED) pause = !pause;
|
||||||
// code to end the game
|
// code to end the game
|
||||||
if (level > 2) { StopMusicStream(Gameplaysong); finishfromGameplayScreen = 3; }
|
if (level > 2) { StopMusicStream(Gameplaysong); finishfromGameplayScreen = 3; }
|
||||||
if (fireworkAmount < 1 && level < 2) { StopMusicStream(Gameplaysong); levelunlocked++; finishfromGameplayScreen = 4; }
|
if (CheckFireworkActivity() && level < 2) { StopMusicStream(Gameplaysong); levelunlocked++; finishfromGameplayScreen = 4; }
|
||||||
|
|
||||||
if (!mute) UpdateMusicStream(Gameplaysong);
|
if (!mute) UpdateMusicStream(Gameplaysong);
|
||||||
|
|
||||||
|
@ -231,7 +250,8 @@ void UpdateGameplayScreen(void)
|
||||||
// pass the address of each struct to the UpdateiFrameTimer function
|
// pass the address of each struct to the UpdateiFrameTimer function
|
||||||
UpdateiFrameTimer(&player);
|
UpdateiFrameTimer(&player);
|
||||||
UpdateiFrameTimer(&enemy);
|
UpdateiFrameTimer(&enemy);
|
||||||
if (score >= bestscore) bestscore = score;
|
greenfeathers = player.hp;
|
||||||
|
redfeathers = ammo;
|
||||||
|
|
||||||
// Debug stuff
|
// Debug stuff
|
||||||
if (IsKeyPressed(KEY_D)) DebugMode = !DebugMode;
|
if (IsKeyPressed(KEY_D)) DebugMode = !DebugMode;
|
||||||
|
@ -311,7 +331,7 @@ void UpdateGameplayScreen(void)
|
||||||
case 0:
|
case 0:
|
||||||
fireworks[i].hitbox.x = GetScreenWidth() + firework_sprite.width;
|
fireworks[i].hitbox.x = GetScreenWidth() + firework_sprite.width;
|
||||||
|
|
||||||
fireworks[i].active = 1;
|
if (fireworkAmount > 0) { fireworkAmount--; fireworks[i].active = 1; }
|
||||||
fireworks[i].hitbox.y = GetRandomValue(0, GetScreenHeight() - firework_sprite.height);
|
fireworks[i].hitbox.y = GetRandomValue(0, GetScreenHeight() - firework_sprite.height);
|
||||||
switch (level) {
|
switch (level) {
|
||||||
case LEVEL1: fireworks[i].speed.x = GetRandomValue(100, 300); break;
|
case LEVEL1: fireworks[i].speed.x = GetRandomValue(100, 300); break;
|
||||||
|
@ -323,7 +343,7 @@ void UpdateGameplayScreen(void)
|
||||||
fireworks[i].hitbox.x += GetFrameTime() * -fireworks[i].speed.x;
|
fireworks[i].hitbox.x += GetFrameTime() * -fireworks[i].speed.x;
|
||||||
// Firework wall collision
|
// Firework wall collision
|
||||||
if (((fireworks[i].hitbox.x + -firework_sprite.width) > GetScreenWidth()
|
if (((fireworks[i].hitbox.x + -firework_sprite.width) > GetScreenWidth()
|
||||||
|| (fireworks[i].hitbox.x <= -firework_sprite.width))) { fireworkAmount--; fireworks[i].active = 0; }
|
|| (fireworks[i].hitbox.x <= -firework_sprite.width))) fireworks[i].active = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -371,8 +391,8 @@ void DrawGameplayScreen(void)
|
||||||
DrawText(TextFormat("= %i", player.hp), 30, 30, 30, GREEN);
|
DrawText(TextFormat("= %i", player.hp), 30, 30, 30, GREEN);
|
||||||
DrawTexture(feather_sprite, 80, 0, RED);
|
DrawTexture(feather_sprite, 80, 0, RED);
|
||||||
DrawText(TextFormat("= %i", ammo), 110, 30, 30, RED);
|
DrawText(TextFormat("= %i", ammo), 110, 30, 30, RED);
|
||||||
if (level == 2) DrawText(TextFormat("ENEMY HP: %i", enemy.hp), GetScreenWidth() - 200, 0, 30, RED);
|
if (level == 2) DrawText(TextFormat("ENEMY HP: %i", enemy.hp), GetScreenWidth() - 380, 0, 20, RED);
|
||||||
else DrawText(TextFormat("FIREWORKS LEFT: %i", fireworkAmount), GetScreenWidth() - 260, 0, 20, GREEN);
|
DrawText(TextFormat("FIREWORKS LEFT: %i", fireworkAmount), GetScreenWidth() - 240, 0, 20, GREEN);
|
||||||
if (score >= 10000) DrawText(TextFormat("SCORE: %i", score), 10, 65, 30, (Color){ 222, 181, 0, 255 });
|
if (score >= 10000) DrawText(TextFormat("SCORE: %i", score), 10, 65, 30, (Color){ 222, 181, 0, 255 });
|
||||||
else DrawText(TextFormat("SCORE: %i", score), 10, 65, 30, BLUE);
|
else DrawText(TextFormat("SCORE: %i", score), 10, 65, 30, BLUE);
|
||||||
if (pause && (((int)pauseTimer/30)%2)) DrawTextEx(ZadoBold, "PAUSED", (Vector2){ 280, 160 }, 60, 2, WHITE);
|
if (pause && (((int)pauseTimer/30)%2)) DrawTextEx(ZadoBold, "PAUSED", (Vector2){ 280, 160 }, 60, 2, WHITE);
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include "../include/raylib.h"
|
#include "../include/raylib.h"
|
||||||
|
|
||||||
#include "Screens.h"
|
#include "Screens.h"
|
||||||
|
#include "Stats.h"
|
||||||
#include "Controls.h"
|
#include "Controls.h"
|
||||||
#include "Gfx.h"
|
#include "Gfx.h"
|
||||||
|
|
||||||
|
@ -16,6 +17,7 @@ int finishfromLevelSelScreen = 0, levelSelected = 1, levelunlocked = 0;
|
||||||
|
|
||||||
void InitLevelSelScreen(void)
|
void InitLevelSelScreen(void)
|
||||||
{
|
{
|
||||||
|
feather_sprite = LoadTexture("assets/gfx/feather.png");
|
||||||
finishfromLevelSelScreen = 0;
|
finishfromLevelSelScreen = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,6 +37,13 @@ void DrawLevelSelScreen(void)
|
||||||
{
|
{
|
||||||
DrawTexture(background, 0, 0, GRAY);
|
DrawTexture(background, 0, 0, GRAY);
|
||||||
|
|
||||||
|
DrawTexture(feather_sprite, 0, 0, GREEN);
|
||||||
|
DrawText(TextFormat("= %i", greenfeathers), 30, 30, 30, GREEN);
|
||||||
|
DrawTexture(feather_sprite, 80, 0, RED);
|
||||||
|
DrawText(TextFormat("= %i", redfeathers), 110, 30, 30, RED);
|
||||||
|
if (score >= 10000) DrawText(TextFormat("SCORE: %i", score), 10, 65, 30, (Color){ 222, 181, 0, 255 });
|
||||||
|
else DrawText(TextFormat("SCORE: %i", score), 10, 65, 30, BLUE);
|
||||||
|
|
||||||
if (levelSelected == 1) DrawText("1", 100, 220, 30, WHITE);
|
if (levelSelected == 1) DrawText("1", 100, 220, 30, WHITE);
|
||||||
else DrawText("1", 100, 220, 30, BLUE);
|
else DrawText("1", 100, 220, 30, BLUE);
|
||||||
|
|
||||||
|
@ -49,6 +58,7 @@ void DrawLevelSelScreen(void)
|
||||||
|
|
||||||
void UnloadLevelSelScreen(void)
|
void UnloadLevelSelScreen(void)
|
||||||
{
|
{
|
||||||
|
UnloadTexture(feather_sprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
int FinishLevelSelScreen(void)
|
int FinishLevelSelScreen(void)
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
/*
|
/*
|
||||||
- Avoid ~ a game by Canneddonuts
|
- Avoid ~ a game by Canneddonuts
|
||||||
- Filename ~ Score.h
|
- Filename ~ Stats.h
|
||||||
- Author ~ Return0ne
|
- Author ~ Return0ne
|
||||||
- 2022
|
- 2022
|
||||||
- *no license*
|
- *no license*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef SCORE_HEADER
|
#ifndef STATS_HEADER
|
||||||
#define SCORE_HEADER
|
#define STATS_HEADER
|
||||||
|
|
||||||
extern int bestscore;
|
|
||||||
extern int score;
|
extern int score;
|
||||||
|
extern int greenfeathers;
|
||||||
|
extern int redfeathers;
|
||||||
|
|
||||||
#endif
|
#endif
|
16
src/Title.c
16
src/Title.c
|
@ -12,26 +12,11 @@
|
||||||
#include "Controls.h"
|
#include "Controls.h"
|
||||||
#include "Music.h"
|
#include "Music.h"
|
||||||
#include "Options.h"
|
#include "Options.h"
|
||||||
#include "Score.h"
|
|
||||||
#include "Gfx.h"
|
#include "Gfx.h"
|
||||||
|
|
||||||
int titleSelected = 0, finishfromTitleScreen = 0;
|
int titleSelected = 0, finishfromTitleScreen = 0;
|
||||||
Music Titlesong = { 0 };
|
Music Titlesong = { 0 };
|
||||||
|
|
||||||
|
|
||||||
void DrawScore(void)
|
|
||||||
{
|
|
||||||
if (bestscore >= 10000)
|
|
||||||
DrawText(TextFormat("BEST: %i", bestscore), 580, 0, 30, (Color){ 222, 181, 0, 255 });
|
|
||||||
else if (bestscore >= 5000)
|
|
||||||
DrawText(TextFormat("BEST: %i", bestscore), 580, 0, 30, (Color){ 149, 148, 147, 255 });
|
|
||||||
else if (bestscore >= 1000)
|
|
||||||
DrawText(TextFormat("BEST: %i", bestscore), 580, 0, 30,(Color){ 138, 72, 4, 255 });
|
|
||||||
else
|
|
||||||
DrawText(TextFormat("BEST: %i", bestscore), 580, 0, 30, BLUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void InitTitleScreen(void)
|
void InitTitleScreen(void)
|
||||||
{
|
{
|
||||||
titleSelected = 0;
|
titleSelected = 0;
|
||||||
|
@ -58,7 +43,6 @@ void DrawTitleScreen(void)
|
||||||
DrawTexture(background, 0, 0, GRAY);
|
DrawTexture(background, 0, 0, GRAY);
|
||||||
DrawTextEx(ZadoBold, "Avoid", (Vector2){ 300, 0 }, 80, 5, BLUE);
|
DrawTextEx(ZadoBold, "Avoid", (Vector2){ 300, 0 }, 80, 5, BLUE);
|
||||||
DrawText("Controls", 5, 10, 30, BLUE);
|
DrawText("Controls", 5, 10, 30, BLUE);
|
||||||
DrawScore();
|
|
||||||
DrawText("Press the arrow keys or 'DPAD' to move and 'X' to dash", 5, 40, 10, WHITE);
|
DrawText("Press the arrow keys or 'DPAD' to move and 'X' to dash", 5, 40, 10, WHITE);
|
||||||
DrawText("Press 'ENTER' or 'START' to pause", 5, 60, 10, WHITE);
|
DrawText("Press 'ENTER' or 'START' to pause", 5, 60, 10, WHITE);
|
||||||
DrawText("Press 'M' to mute", 5, 80, 10, WHITE);
|
DrawText("Press 'M' to mute", 5, 80, 10, WHITE);
|
||||||
|
|
Loading…
Reference in a new issue