diff --git a/charac.c b/charac.c index 518fc22a5682490794820fcde2e6e2008ada5863..e44b41a592f54c218e54705b9d8de5f0a3a5b569 100644 --- a/charac.c +++ b/charac.c @@ -71,8 +71,8 @@ void jump(int input){ /* -Vorbedingung:0 < speed <= 20 -Nachbedingung: Der Character bewegt sich mit der Map mit. +Vorb.:0 < speed <= 20 +Nachb.: Der Character bewegt sich mit der Map mit. */ int update_character(int speed, SDL_Renderer *renderer){ @@ -87,15 +87,16 @@ int update_character(int speed, SDL_Renderer *renderer){ return(0); } - +// Vorb.: / +// Nachb.: Der Spieler befindet sich in der Mitte des nächsten Kastens void recenter_player(void){ int i = 70; - for(int j = 0;j<8;j++){ - if (player->x < i + j*ROW_SIZE){ - player->x = (i-50) + j*ROW_SIZE; + for(int j = 0;j<8;j++){ // Überprüfe von links nach rechts alle Kästen + if (player->x < i + j*ROW_SIZE){ // steht der Spieler links von 70 + Offset (j*ROW_SIZE) + player->x = (i-50) + j*ROW_SIZE; // verschiebe Spieler um 20 nach links + Offset (j*ROW_SIZE) return; } } - player->x = (i-50) + 8*ROW_SIZE; + player->x = (i-50) + 8*ROW_SIZE; // Spieler steht ganz rechts, dann verschiebe um 20 nach links mit Offset von 8 Kästen } diff --git a/map.c b/map.c index e404aacd9617d712804ea9089735ed874c33e52f..56f3e287efe8f0f467e6d30cc2333b78427b4d9b 100644 --- a/map.c +++ b/map.c @@ -115,17 +115,17 @@ int move_map(enum vehicle theme,int delta_y,struct LinkedList *list, SDL_Rendere if (paste_row(renderer,cur->y_pos,cur->row_type)) return(-1); - if (cur->cars != NULL){ - if (move_car(renderer,cur) && cur->y_pos <= player->y && player->y <= cur->y_pos + ROW_SIZE){ - return(1); - } - } - if (cur->y_pos <= player->y && player->y <= cur->y_pos + ROW_SIZE && (cur->row_type == grassBright || cur->row_type == grassDark || cur->row_type == finishlineBright || cur->row_type == finishlineDark)){ recenter_player(); } + else if (cur->cars != NULL){ + if (move_car(renderer,cur) && cur->y_pos <= player->y && player->y <= cur->y_pos + ROW_SIZE){ + return(1); + } + } + if (cur->next == NULL){ break; }