Effet d'ondes sur une image
Copie pasta crade d'un bout de l'écran titre de Shiet Liver Golder Deluxe.
L'idée est de distordre une image en la collant sur une grille de 10 cases par 10 cases (donc 11 points par 11 points).
Et avant bien sûr, on à calculé les coordonées des points pour qu'ils fassent quelque chose de marrant (ici une ondulation dynamique et mouvementée mais centrée).
Créé vous un nouvel objet, et basardez le dans une nouvelle room.
Dans le create :
tex = background_get_texture(background);
time = 0;
Puis dans le draw :
time += 1;
W=178;
H=136;
amplitude = 1.2;//mouse_x/10
vitesse = 12;//(mouse_y+1)/10;
d3d_transform_set_identity();
d3d_transform_add_translation(128-W/2,80-H/2,0);
for(i=0; i<11; i+=1)
{
for(j=0; j<11; j+=1)
{
t = time / vitesse;
coords_x[i,j] = W*(i/10) + (amplitude*sin(j+t) + amplitude*cos(i+t))*(i-5)//;
coords_y[i,j] = H*(j/10) + (amplitude*sin(i+t) + amplitude*cos(i+t))*(j-5)// + amplitude*cos(i+t);
}
}
for(i=0; i<10; i+=1)
{
draw_primitive_begin_texture(pr_trianglestrip, tex);
for(j=0; j<11; j+=1)
{
draw_vertex_texture(coords_x[i,j],coords_y[i,j], i/10,j/10);
draw_vertex_texture(coords_x[i+1,j],coords_y[i+1,j], (i+1)/10,j/10);
}
draw_primitive_end();
}
d3d_transform_set_identity();
Résultat :
[Upload image impossible]