void updatePlayer(struct _Player *player) { // Player going up if(keys[KEY_UP] && player->jetpackActive){ if(player->speedyUp < player->maxspeed){ player->speedyUp += 0.5; player->speedyUp += sqrt(player->maxspeed / fabs(player->maxspeed - player->speedyUp)) / pow(player->speedyUp, 2); }else player->speedyUp = player->maxspeed; if(player->speedyDown > 0) player->speedyDown /= 1.1; player->speedyDown -= 0.2; if(player->speedyDown < 0) player->speedyDown = 0; // Player going down } else if(keys[KEY_UP] && !player->jumpGravity){ if(player->onGroud) { player->speedyUp += 22; player->jumpGravity = true; } }else if(player->jumpGravity){ if(player->speedyUp > 0) player->speedyUp -= 1.5; if(player->speedyUp < 1.5) { player->jumpGravity = false; player->jetpackActive = true; } }else{ if(player->speedyDown < player->maxspeed + 5){ player->speedyDown += 0.90; // Original: 0.65 player->speedyDown += sqrt((player->maxspeed + 6) / fabs((player->maxspeed + 6) - player->speedyDown)) / pow(player->speedyDown, 2) / 1.3; }else player->speedyDown = player->maxspeed + 5; if(player->speedyUp > 0) player->speedyUp /= 1.1; player->speedyUp -= 0.2; if(player->speedyUp < 0) player->speedyUp = 0; }