GDOR1 Très bonne participation
Messages : 130
| Sujet: [Résolu] Problème avec les surfaces et les vues Sam 23 Fév 2013 - 12:06 | |
| Bonjour, alors voilà : En programmant un système d'ombre en temps réel pour mon jeu Warriors Times, je suis tombé sur un bug que je n'arrive pas à régler : - Spoiler:
Là, quand la view est à x = 0 et y = 0, tout va bien.
- Spoiler:
Mais dès qu'on bouge la view, les objets ayant un depth supérieur à l'objet qui dessine l'ombre vont en sens inverse de là où ils devraient aller, et les objets dessinant les ombres, on a l'impression qu'ils ne bougent pas.
Le code que j'utilise est celui là : - Code:
-
//Optimize if x > view_xview - 200 and x < view_xview + global.screen_resolution_width + 200 if y > view_yview - 200 and y < view_yview + global.screen_resolution_height + 200 {
//Draw shadows if not variable_local_exists('surface_solar_shadows') { surface_solar_shadows = surface_create((45 * spr_shadows_height) * 2,(45 * spr_shadows_height) * 2) }
//Set up a loop n = 0
//Run the loop with obj_light { other.lightX[other.n] = x other.lightY[other.n] = y other.lightPuissance[other.n] = lightPuissance other.n += 1 }
///////////////// if obj_sun.alpha > 0 { surface_set_target(surface_solar_shadows) draw_clear_alpha(0,0)
draw_set_blend_mode_ext(bm_one,bm_inv_src_alpha)
for (i = 0;i < instance_number(obj_light);i += 1) {
var o; o = (1 + obj_sun.lenght * spr_shadows_height)/global.shadows_quality
//Second "for" for (a = 0;a < o;a += 1) { draw_sprite_ext(spr_shadows,-1,surface_get_width(surface_solar_shadows)/2 - lengthdir_x(a * global.shadows_quality,obj_sun.dir),surface_get_height(surface_solar_shadows)/2 - lengthdir_y(a * global.shadows_quality,obj_sun.dir),image_xscale,image_yscale,image_angle,c_black,1) }
draw_sprite_ext(spr_shadows,-1,surface_get_width(surface_solar_shadows)/2 - lengthdir_x(o,obj_sun.dir),surface_get_height(surface_solar_shadows)/2 - lengthdir_y(o,obj_sun.dir),image_xscale,image_yscale,image_angle,c_black,1)
}
draw_set_blend_mode(bm_normal)
surface_reset_target() draw_surface_ext(surface_solar_shadows,x - surface_get_width(surface_solar_shadows)/2,y - surface_get_width(surface_solar_shadows)/2,1,1,0,c_white,image_alpha * (obj_sun.alpha)) } } Comment je pourrais régler ce problème ?
Dernière édition par GDOR1 le Mar 26 Fév 2013 - 19:34, édité 2 fois |
|
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [Résolu] Problème avec les surfaces et les vues Sam 23 Fév 2013 - 12:22 | |
| Affiche ton ui juste en view_xview, view_yview non? |
|
GDOR1 Très bonne participation
Messages : 130
| Sujet: Re: [Résolu] Problème avec les surfaces et les vues Sam 23 Fév 2013 - 13:30 | |
| Bah c'est ce que je fais. Ce qui est bizzare c'est que dès qu'on utilise les surfaces, ça le fait. Mais ça le fait pas quand on les utilise pas. Edit : Quand je dis que les objets sont mal dessinés, ce que je veux dire, c'est que la vue n'est pas aligné avec l'écran. |
|
Bast Administrateur
Messages : 20021 Localisation : Alsace
| Sujet: Re: [Résolu] Problème avec les surfaces et les vues Dim 24 Fév 2013 - 14:09 | |
| Si le code que tu as posté est exécuté en Draw, divise-le et place dans Step tout ce qui consiste à dessiner dans une surface. _________________ |
|
GDOR1 Très bonne participation
Messages : 130
| Sujet: Re: [Résolu] Problème avec les surfaces et les vues Mar 26 Fév 2013 - 19:27 | |
| Merci beaucoup ! Ca marche maintenant ! |
|
Contenu sponsorisé
| Sujet: Re: [Résolu] Problème avec les surfaces et les vues | |
| |
|