reverse penger

This commit is contained in:
nemo 2024-11-15 14:08:58 +01:00
parent aa565d98a6
commit ed4b506f52
1 changed files with 8 additions and 2 deletions

10
app.c
View File

@ -6,6 +6,7 @@
#define BLUE 0xffff0000
#define BLACK 0xff000000
#define EPSILON 0.000001f
#define GRAVITY 9
const unsigned int width = 800;
@ -170,10 +171,12 @@ void draw(float dt)
if (keys[ARROW_RIGHT]) {
penger_pos.x += speed;
if (velocity.x < 0) velocity.x *= -1;
else if (velocity.x >= -EPSILON) velocity.x = 1;
}
if (keys[ARROW_LEFT]) {
penger_pos.x -= speed;
if (velocity.x > 0) velocity.x *= -1;
else if (velocity.x <= EPSILON) velocity.x = -1;
}
if (keys[ARROW_DOWN])
penger_pos.y += speed;
@ -189,7 +192,10 @@ void draw(float dt)
// dessine le penger sur le canva
for (int y = 0; y < pengers_height[id]; y++) {
for (int i = 0; i < pengers_width[id]; i++) {
if (pengers_img[id][y*pengers_width[id] + i] <= 0x00FFFFFF) // pixel transparant
int i_for_reverse_pixel_rendering_it_s_craazy = i;
if (velocity.x < EPSILON)
i_for_reverse_pixel_rendering_it_s_craazy = pengers_width[id]-i-1;
if (pengers_img[id][y*pengers_width[id] + i_for_reverse_pixel_rendering_it_s_craazy] <= 0x00FFFFFF) // pixel transparant
continue;
for (int s1 = 0; s1 < scale; s1++) {
for (int s2 = 0; s2 < scale; s2++) {
@ -197,7 +203,7 @@ void draw(float dt)
int idx_y = penger_origin.y + y*scale+s2;
if (idx_x < 0 || idx_x >= width || idx_y < 0 || idx_y >= height)
continue;
BUFFER[idx_y*width + idx_x] = pengers_img[id][y*pengers_width[id] + i];
BUFFER[idx_y*width + idx_x] = pengers_img[id][y*pengers_width[id] + i_for_reverse_pixel_rendering_it_s_craazy];
}
}
}