Commit c5c8df88 authored by Valentin MEUNIER's avatar Valentin MEUNIER
Browse files

Merge branch 'master' into 'valentinSDL'

# Conflicts:
#   mon_chef_d_oeuvre/main.c
parents e1a00a2b 8ebb2c87
No preview for this file type
No preview for this file type
// Animation perso Juin 17 dernière modif
......@@ -6,7 +7,7 @@
#include <stdio.h>
#include <string.h>
#include <SDL2/SDL_image.h>
// gcc ex_anim.c -o ex_anim -Wextra -Wall $(sdl2-config --cflags --libs) -lSDL2_image compilation
// gcc ex_anim.c -o ex_anim -Wextra -Wall $(sdl2-config --cflags --libs) -lSDL2_image // pour la compilation
......@@ -65,6 +66,7 @@ void play_with_texture_1_1(SDL_Texture *my_texture, SDL_Window *window,
void play_with_texture(SDL_Texture *bg_texture,
SDL_Texture *my_texture,
SDL_Texture *my_texture2,
SDL_Texture *my_texture3,
SDL_Window *window,
SDL_Renderer *renderer) {
SDL_Rect
......@@ -75,20 +77,22 @@ void play_with_texture(SDL_Texture *bg_texture,
SDL_Rect
source2 = {0}, // Rectangle définissant la zone de la texture à récupérer
window_dimensions2 = {0}, // Rectangle définissant la fenêtre, on n'utilisera que largeur et hauteur
// Rectangle définissant la fenêtre, on n'utilisera que largeur et hauteur
destination2 = {0};
SDL_Rect source3 = {0}, destination3 = {0};
SDL_GetWindowSize(window, // Récupération des dimensions de la fenêtre
&window_dimensions.w,
&window_dimensions.h);
SDL_GetWindowSize(window,&window_dimensions2.w,&window_dimensions2.h);
SDL_QueryTexture(my_texture, NULL, NULL, // Récupération des dimensions de l'image
&source.w, &source.h);
SDL_QueryTexture(my_texture2, NULL, NULL, &source2.w,&source2.h);
SDL_QueryTexture(my_texture3, NULL, NULL, &source3.w,&source3.h);
int nb_images = 9; // Il y a 6 vignette dans la ligne qui nous intéresse
int nb_images_animation = 4*nb_images; //
......@@ -104,9 +108,21 @@ void play_with_texture(SDL_Texture *bg_texture,
state[i].h = offset_y;
++i;
}
float zoom2=0.2;
float zoom3=0.5;
SDL_Rect state2[1];
int offset_x2 = source.w , offset_y2 = source.h ;
state2[0].x=0;
state2[0].y=0;
state2[0].w = offset_x2;
state2[0].h = offset_y2;
destination.w = offset_x * zoom; // Largeur du sprite à l'écran
destination.h = offset_y * zoom; // Hauteur du sprite à l'écran
destination.w = offset_x * zoom3; // Largeur du sprite à l'écran
destination.h = offset_y * zoom3; // Hauteur du sprite à l'écran
destination.x = 400; // Position en x pour l'affichage du sprite
destination.y = 300; // Position en y pour l'affichage du sprite
......@@ -116,6 +132,11 @@ void play_with_texture(SDL_Texture *bg_texture,
destination2.x = 600;
destination2.y = 300;
destination3.w = offset_x2*zoom2;
destination3.h = offset_x2*zoom2;
destination3.x = 0;
destination3.y = 100;
i = 0;
for (int cpt = 0; cpt < nb_images_animation ; ++cpt) {
......@@ -126,7 +147,11 @@ void play_with_texture(SDL_Texture *bg_texture,
my_texture, &state[i], &destination);
SDL_RenderCopy(renderer,my_texture2, &state[i],&destination2);
SDL_RenderCopy(renderer,my_texture3, &state2[0],&destination3);
destination3.x =destination3.x + (window_dimensions.w/nb_images_animation);
i = (i + 1) % nb_images; // Passage à l'image suivante, le modulo car l'animation est cyclique
SDL_RenderPresent(renderer); //Affichage
......@@ -205,9 +230,15 @@ int main(int argc, char **argv) {
my_texture2 = load_texture_from_image("../../img/female_tilesheet.png",window,renderer);
if (my_texture2 == NULL) end_sdl(0, "Echec du chargement de l'image dans la texture", window, renderer);
SDL_Texture* my_texture3;
my_texture3 = load_texture_from_image("../../img/spaceShips_007.png",window,renderer);
if (my_texture3 == NULL) end_sdl(0, "Echec du chargement de l'image dans la texture", window, renderer);
play_with_texture(bg_texture,
my_texture,
my_texture2,
my_texture3,
window,
renderer);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment