about summary refs log tree commit diff stats
path: root/src/main.c
diff options
context:
space:
mode:
authorCharadon <dev@iotib.net>2022-06-02 12:09:14 -0400
committerCharadon <dev@iotib.net>2022-06-02 12:09:14 -0400
commite372341eb2d92ee7df6fcaf43f4dc2a27967e390 (patch)
tree0454572596e26e5c94bdb0ffba88e0e6edc08a76 /src/main.c
parent66881a0a3136c871fb0c58aa31be174c60bcf118 (diff)
downloadPong-C-e372341eb2d92ee7df6fcaf43f4dc2a27967e390.tar.gz
Seperated versus mode from main.c
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c134
1 files changed, 10 insertions, 124 deletions
diff --git a/src/main.c b/src/main.c
index de4dcb0..11c69b7 100644
--- a/src/main.c
+++ b/src/main.c
@@ -98,144 +98,30 @@ int main() {
 	SetWindowState(FLAG_WINDOW_RESIZABLE);
 	SetWindowMinSize(1280, 720);
 	
-	//Initialize Variables
-	Camera2D MainCamera;
-	MainCamera.target = (Vector2){0, 0};
-	MainCamera.offset = (Vector2){0, 0};
-	MainCamera.rotation = 0;
 	//Populate Audio Queue
 	for(unsigned int i = 0; i < 20; i++) {
 		AudioQueue[i] = -1;
 	}
 	mtx_init(&AudioQueueBeingModified, mtx_plain);
 
-	// Init Player Variables
-	struct Players Player;
-	Player.Y = 0;
-	Player.Score = 0;
-	char PlayerScore[50]; // Used later to display score on screen.
-
-	// Init Enemy Variables
-	struct Players Enemy;
-	Enemy.Y = 0;
-	Enemy.Score = 0;
-	Enemy.Direction = 0;
-	char EnemyScore[50];
-
-	struct Balls Ball;
-	Ball.X = 1280/2.0f;
-	Ball.Y = 720/2.0f;
-	Ball.Direction = LEFT;
-	Ball.Speed = 3.0f;
-	Ball.Angle = 0.0f;
-	
-	
-	// Set Sprites
-	Texture2D PaddleSprite = LoadTexture("resources/paddle.png");
-	Texture2D BallSprite = LoadTexture("resources/ball.png");
-	
-	// Set Collision Boxes
-	Player.HitBox = (Rectangle){80, Player.Y, 5, PaddleSprite.height};
-	Enemy.HitBox = (Rectangle){1200, Enemy.Y, 5, PaddleSprite.height};
-	Ball.HitBox = (Rectangle){Ball.X, Ball.Y, BallSprite.width, BallSprite.height};
-	Enemy.BallDetector = (Rectangle){0, Enemy.Y+120, 1280, PaddleSprite.height/5.0f};
-
 	// Initialize Internal Clock
 	thrd_t InternalClock;
 	thrd_create(&InternalClock, internal_clock, NULL);
 	thrd_t AudioThread;
 	thrd_create(&AudioThread, audio, NULL);
 	
-	// Launch Title Screen
-	jmp_buf RestartGame;
-	setjmp(RestartGame);
-	title_screen();
-	play_audio(99);
-	Enemy.Score = 0;
-	Player.Score = 0;
-	
-	while(!WindowShouldClose() && GameGoing == true) {
-		MainCamera.zoom = GetScreenHeight()/720.0f;
-		MainCamera.offset = (Vector2){GetScreenWidth()/2.0f, GetScreenHeight()/2.0f};
-		MainCamera.target = (Vector2){1280/2.0f, 720/2.0f};
-
-
-		// Who won?
-		if (Enemy.Score >= 5) {
-			StopSoundMulti();
-			play_audio(MUSIC_DEFEAT);
-			while(!IsKeyDown(KEY_SPACE)) {
-				BeginDrawing();
-					EnableCursor();
-					ClearBackground(BLACK);
-					DrawText("You Lose.", 0, 0, 128, RED);
-					DrawText("Press space to return to title screen.", 0, 128, 24, WHITE);
-				EndDrawing();
-			}
-			longjmp(RestartGame, 0);
-		} else if (Player.Score >= 5) {
-			StopSoundMulti();
-			play_audio(MUSIC_VICTORY);
-			while(!IsKeyDown(KEY_SPACE)) {
-				BeginDrawing();
-					EnableCursor();
-					ClearBackground(BLACK);
-					DrawText("You Win!", 0, 0, 128, BLUE);
-					DrawText("Press space to return to title screen.", 0, 128, 24, WHITE);
-				EndDrawing();
-			}
-			longjmp(RestartGame, 0);
-		}
-
-		//Controls
-		if(IsKeyDown(KEY_UP)) {
-			Player.Y -= 10;
-		} else if (IsKeyDown(KEY_DOWN)) {
-			Player.Y += 10;
-		} else if(IsKeyPressed(KEY_ESCAPE)) {
-			EnableCursor();
-		} else if(IsMouseButtonPressed(MOUSE_BUTTON_LEFT) || IsCursorHidden() == true) {
-			Player.Y = GetMouseY()-PaddleSprite.height/2.0f;
-			DisableCursor();
-		}
-		
-		if(GetMouseY() < 0) {
-			SetMousePosition(0, 0);
-		} else if(GetMouseY() > 720) {
-			SetMousePosition(0, 720);
-		}
-
-		//Check if players are off-screen
-		if (Player.Y < 0) {
-			Player.Y = 0;
-		} else if (Player.Y > 480) {
-			Player.Y = 480;
+	// Launch Game
+	while (GameGoing == true) {
+		switch(title_screen()) {
+			case 0: //Versus
+				play_audio(STOP_ALL_SOUNDS);
+				versus_main();
+				break;
+			default:
+				break;
 		}
-
-		enemy(&Enemy, Ball);
-		
-		// Collision
-		ball(&Player.HitBox, &Enemy.HitBox, &Ball, &Player.Score, &Enemy.Score);
-
-		//Updates hitbox with player's position.
-		Player.HitBox.y = Player.Y;
-
-		//Turn Scores into strings.
-		snprintf(PlayerScore, 50, "Player: %d", Player.Score);
-		snprintf(EnemyScore, 50, "Enemy: %d", Enemy.Score);
-		
-		BeginDrawing();
-			ClearBackground(BLACK);
-			BeginMode2D(MainCamera);
-				DrawTexture(PaddleSprite, 0, Player.Y, WHITE);
-				DrawTexture(PaddleSprite, 1200, Enemy.Y, WHITE);
-				DrawTexture(BallSprite, Ball.X, Ball.Y, WHITE);
-				//DrawRectangleRec(Enemy.BallDetector, RED);
-				DrawText(PlayerScore, 0, 0, 32, GREEN);
-				DrawText(EnemyScore, 1130, 688, 32, RED);
-			EndMode2D();
-		EndDrawing();
 	}
+	
 	GameGoing = false;
 	thrd_join(AudioThread, NULL);
 	CloseWindow();