Merge branch 'master' of ssh.marcbarbier.fr:Marc/gamejam-polytech

This commit is contained in:
2023-01-22 14:17:33 +01:00
6 changed files with 89 additions and 43 deletions
+48 -34
View File
@@ -3,13 +3,12 @@
#include <SDL2/SDL_mixer.h>
#include <SDL2/SDL_surface.h>
#include "scaller.h"
#include "scene.h"
#include "text.h"
#define SPEED 1.f/10000000000
#define GRAVITY 10000.f
static RenderId_t menuObjects[10];
static unsigned menuObjectsSize = 0;
static Mix_Music * music;
Scene_t gameScene;
@@ -27,6 +26,10 @@ static float personVelocityY = 0;
float jetons = 0.f;
static RenderObject_t person;
static RenderId_t personId;
RenderObject_t scoreText;
static RenderId_t scoreTextId = -1;
static void playMusic(){
music = Mix_LoadMUS("./assets/music/jojo arab.mp3");
@@ -56,46 +59,53 @@ int game_staticRender(void){
}
RenderObject_t gameBackground;
RenderObject_t gameBackground = EMPTY_RENDER_OBJECT;
strcpy(gameBackground.name, "gameBackground");
gameBackground.z = 0;
gameBackground.surface = gameBackgroundSurface;
scaller(gameBackground.surface, 1, &gameBackground.width, &gameBackground.height);
gameBackground.height = 1;
menuObjects[menuObjectsSize] = scene_addRenderObject(&gameScene, gameBackground, 0, 0);
renderer_setScene(&gameScene);
++menuObjectsSize;
return 0;
}
int game_render([[maybe_unused]] float delta){
for(unsigned i = 2; i < menuObjectsSize; ++i){
scene_removeRenderObject(&gameScene, menuObjects[i]);
}
menuObjectsSize = 2;
deltaAccu += delta;
scene_addRenderObject(&gameScene, gameBackground, 0, 0);
SDL_Surface* buildingSurface = IMG_Load("./assets/img/building.png");
RenderObject_t building;
RenderObject_t building = EMPTY_RENDER_OBJECT;
strcpy(building.name, "building");
building.z = 9;
building.surface = buildingSurface;
building.width = 0.25;
building.height = 1;
menuObjects[menuObjectsSize] = scene_addRenderObject(&gameScene, building, 0, 0);
++menuObjectsSize;
scene_addRenderObject(&gameScene, building, 0, 0);
SDL_Surface* personSurface = IMG_Load("./assets/img/person.png");
RenderObject_t person;
strcpy(person.name, "person");
person.z = 9;
person.surface = personSurface;
person.width = 0.25f;
scaller(person.surface, 0.05f, &person.width, &person.height);
personId = scene_addRenderObject(&gameScene, person, personPositionX, personPositionY);
scoreText = EMPTY_RENDER_OBJECT;
strcpy(scoreText.name, "scoreText");
SDL_Color black = {0, 0, 0, 255};
text_renderText(&scoreText, 50, 0.5f, black, "./assets/fonts/Quinquefive.ttf", 40, "jetons: %d", (unsigned)jetons);
scoreTextId = scene_addRenderObject(&gameScene, scoreText, gameScene.x + 2, 0);
return 0;
}
int game_render([[maybe_unused]] float delta){
//for(unsigned i = 0; i < menuObjectsSize; ++i){
// scene_removeRenderObject(&gameScene, menuObjects[i]);
//}
// if(scoreTextId > 0)
// scene_removeRenderObject(&gameScene, scoreTextId);
deltaAccu += delta;
// if(!crashed && deltaAccu >= SPEED && isSpaceKeypressed){
if(!crashed && isSpaceKeypressed){
const float distance = personVelocityX * delta;
personPositionX += distance;
@@ -104,20 +114,24 @@ int game_render([[maybe_unused]] float delta){
personVelocityY += GRAVITY * delta;
personPositionY += personVelocityY * delta;
if(personPositionY + CAMERA_HEIGHT * person.height >= CAMERA_HEIGHT - 2) crashed = true;
jetons += distance;
scene_moveRenderObject(&gameScene, scoreTextId, gameScene.x + 2, 0);
if(personPositionY + CAMERA_HEIGHT * person.height >= CAMERA_HEIGHT - 2){
crashed = true;
scene_removeRenderObject(&gameScene, scoreTextId);
SDL_Color black = {0, 0, 0, 255};
text_renderText(&scoreText, 50, 0.5f, black, "./assets/fonts/Quinquefive.ttf", 40, "jetons: %d", (unsigned)jetons);
scoreTextId = scene_addRenderObject(&gameScene, scoreText, gameScene.x + 2, 0);
}
}
menuObjects[menuObjectsSize] = scene_addRenderObject(&gameScene, person, personPositionX, personPositionY);
++menuObjectsSize;
scene_moveRenderObject(&gameScene, personId, personPositionX, personPositionY);
RenderObject_t scoreText;
strcpy(scoreText.name, "scoreText");
SDL_Color black = {0, 0, 0, 255};
text_renderText(&scoreText, 50, 0.5f, black, "./assets/fonts/Quinquefive.ttf", 40, "jetons: %d", (unsigned)jetons);
menuObjects[menuObjectsSize] = scene_addRenderObject(&gameScene, scoreText, gameScene.x + 2, 0);
++menuObjectsSize;
// scoreTextId = scene_addRenderObject(&gameScene, scoreText, gameScene.x + 2, 0);
return 0;
}
@@ -125,7 +139,6 @@ int game_render([[maybe_unused]] float delta){
void game_remove(void){
scene_free(&gameScene);
Mix_FreeMusic(music);
menuObjectsSize = 0;
}
@@ -138,6 +151,7 @@ void game_handleSpaceKeyInput(void){
isSpaceKeypressed = false;
gameScene.x = 0;
gameScene.y = 0;
scene_moveRenderObject(&gameScene, scoreTextId, gameScene.x + 2, 0);
}
else{
isSpaceKeypressed = true;