Skip to content
Snippets Groups Projects
Commit 34478053 authored by antoinemeyer5's avatar antoinemeyer5
Browse files

accepted income changes

parents c0d0f9b6 0eb821b2
No related branches found
No related tags found
No related merge requests found
...@@ -421,8 +421,8 @@ void castRays(int map[][MAP_WIDTH]){ ...@@ -421,8 +421,8 @@ void castRays(int map[][MAP_WIDTH]){
void drawEnnemy(){ void drawEnnemy(){
float ennemyAngle = atan2((ennemy.y + ennemy.w/2) - (player.y + player.w/2) , (ennemy.x + ennemy.w/2) - (player.x + player.w/2)); float ennemyAngle = atan2((ennemy.y + ennemy.w/2) - (player.y + player.w/2) , (ennemy.x + ennemy.w/2) - (player.x + player.w/2));
if (ennemyAngle < 0) ennemyAngle += 2*pi; //if (ennemyAngle < 0) ennemyAngle += 2*pi;
if (ennemyAngle > 2*pi) ennemyAngle -= 2*pi; //if (ennemyAngle > 2*pi) ennemyAngle -= 2*pi;
float ennemyDistance = sqrt((ennemy.x - player.x)*(ennemy.x - player.x) + (ennemy.y - player.y)*(ennemy.y - player.y)) * BLOCK_SIZE; float ennemyDistance = sqrt((ennemy.x - player.x)*(ennemy.x - player.x) + (ennemy.y - player.y)*(ennemy.y - player.y)) * BLOCK_SIZE;
float ennemyBaseWidth = BLOCK_SIZE; float ennemyBaseWidth = BLOCK_SIZE;
float ennemyDistanceX = ennemyDistance * cos(ennemyAngle - player.angle) * BLOCK_SIZE; float ennemyDistanceX = ennemyDistance * cos(ennemyAngle - player.angle) * BLOCK_SIZE;
...@@ -430,11 +430,29 @@ void drawEnnemy(){ ...@@ -430,11 +430,29 @@ void drawEnnemy(){
float scaledEnnemyWidth = ennemyBaseWidth / sqrt(3); float scaledEnnemyWidth = ennemyBaseWidth / sqrt(3);
int ennemyWidth = 50; int ennemyWidth = 50;
int ennemyHeight = 200; int ennemyHeight = 200;
float angleMin = player.angle - (FOV_ANGLE * DR)/2;
//if (angleMin > 2*pi) angleMin -= 2*pi;
float angleMax = player.angle + (FOV_ANGLE * DR)/2;
//if (angleMax < 0) angleMax += 2*pi;
if (angleMin < 0){
angleMin += 2*pi;
angleMax += 2*pi;
}
if (angleMax > 2*pi){
angleMax -= 2*pi;
angleMin -= 2*pi;
//ballAngle -= 2*pi;
}
if (angleMax > 0 && angleMin > 0 && ennemyAngle < 0){
ennemyAngle += 2*pi;
}
//printf("ennemy angle: %f player angle: %f\n", ennemyAngle * RD, player.angle * RD);
//printf("limit angles: %f %f\n", angleMin * RD, angleMax * RD);
//printf("%f %f\n", ennemyAngle, player.angle - (FOV_ANGLE)/2 * DR); //printf("%f %f\n", ennemyAngle, player.angle - (FOV_ANGLE)/2 * DR);
//printf("%f\n", player.angle * RD); //printf("%f\n", player.angle * RD);
if (ennemyAngle >= player.angle - (FOV_ANGLE)/2 * DR && ennemyAngle <= player.angle + (FOV_ANGLE)/2 * DR){ if (ennemyAngle >= angleMin && ennemyAngle <= angleMax){
//printf("player angle %f\n", player.angle * RD); //printf("player angle %f\n", player.angle * RD);
//printf("ennemy angle %f\n", ennemyAngle * RD); //printf("ennemy angle %f\n", ennemyAngle * RD);
rect.x = screenDimension.w/2 + (screenDimension.w * tan(ennemyAngle - player.angle)) * sqrt(3) * 0.5; rect.x = screenDimension.w/2 + (screenDimension.w * tan(ennemyAngle - player.angle)) * sqrt(3) * 0.5;
...@@ -470,10 +488,15 @@ void drawEnnemy(){ ...@@ -470,10 +488,15 @@ void drawEnnemy(){
} }
} }
int isAngleInRange(float angle, float min, float max){
return ((angle >= min && angle <= max)) || ((angle >= max && angle <= min));
}
void drawBall(){ void drawBall(){
float ballAngle = atan2((ball.y + ball.w/2) - (player.y + player.w/2) , (ball.x + ball.w/2) - (player.x + player.w/2)); float ballAngle = atan2(ball.y - player.y, ball.x - player.x);
if (ballAngle < 0) ballAngle += 2*pi; //if (ballAngle < 0) ballAngle += 2*pi;
if (ballAngle > 2*pi) ballAngle -= 2*pi; //if (ballAngle > 2*pi) ballAngle -= 2*pi;
float ballDistance = sqrt((ball.x - player.x)*(ball.x - player.x) + (ball.y - player.y)*(ball.y - player.y)) * BLOCK_SIZE; float ballDistance = sqrt((ball.x - player.x)*(ball.x - player.x) + (ball.y - player.y)*(ball.y - player.y)) * BLOCK_SIZE;
float ballBaseWidth = BLOCK_SIZE/2; float ballBaseWidth = BLOCK_SIZE/2;
float ballDistanceX = ballDistance * cos(ballAngle - player.angle) * BLOCK_SIZE; float ballDistanceX = ballDistance * cos(ballAngle - player.angle) * BLOCK_SIZE;
...@@ -481,13 +504,33 @@ void drawBall(){ ...@@ -481,13 +504,33 @@ void drawBall(){
float scaledBallWidth = ballBaseWidth / sqrt(3); float scaledBallWidth = ballBaseWidth / sqrt(3);
int ballWidth = 25; int ballWidth = 25;
int ballHeight = 25; int ballHeight = 25;
float angleMin = player.angle - (FOV_ANGLE)/2 * DR; float angleMin = player.angle - (FOV_ANGLE * DR)/2;
//if (angleMin > 2*pi) angleMin -= 2*pi;
float angleMax = player.angle + (FOV_ANGLE)/2 * DR; float angleMax = player.angle + (FOV_ANGLE * DR)/2;
//if (angleMax < 0) angleMax += 2*pi;
if (angleMin < 0){
angleMin += 2*pi;
angleMax += 2*pi;
}
if (angleMax > 2*pi){
angleMax -= 2*pi;
angleMin -= 2*pi;
//ballAngle -= 2*pi;
}
if (angleMax > 0 && angleMin > 0 && ballAngle < 0){
ballAngle += 2*pi;
}
<<<<<<< HEAD
//printf("ball angle: %f player angle: %f\n", ballAngle * RD, player.angle * RD); //printf("ball angle: %f player angle: %f\n", ballAngle * RD, player.angle * RD);
//printf("limit angles: %f %f\n", angleMin, angleMax); //printf("limit angles: %f %f\n", angleMin, angleMax);
=======
//if (angleMax > 2*pi) angleMax -= 2*pi;
//printf("is playing in range %d\n", isAngleInRange(ballAngle, angleMin, angleMax));
//printf("ball angle: %f player angle: %f\n", ballAngle * RD, player.angle * RD);
//printf("limit angles: %f %f\n", angleMin * RD, angleMax * RD);
>>>>>>> 0eb821b2c8bfe4be52ba9cd900a7693a89f35968
if (ballAngle >= angleMin && ballAngle <= angleMax){ if (ballAngle >= angleMin && ballAngle <= angleMax){
rect.x = screenDimension.w/2 + (screenDimension.w * tan(ballAngle - player.angle)) * sqrt(3) * 0.5; rect.x = screenDimension.w/2 + (screenDimension.w * tan(ballAngle - player.angle)) * sqrt(3) * 0.5;
rect.w = (ballWidth * screenDimension.w) / (ballDistance/BLOCK_SIZE); rect.w = (ballWidth * screenDimension.w) / (ballDistance/BLOCK_SIZE);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment