Malax Utilisateur confirmé: Rang **
Messages : 496 Localisation : Aix-en-Provence Projet Actuel : Lemmings Struggle (abandonné)
| Sujet: Surface_free et créer un sprite [Résolu] Mar 3 Juin 2008 - 16:49 | |
| Bonjour à tous A l'aide d'une surface, je crée un sprite qui représente une corde puis je libère la mémoire avec surface_free, dans le but de créer un sprite d'une corde et de l'attribuer dans un objet. Selon la puissance de l'ordi, j'ai l'impression qu' il bug, personnellement sur le mien je n'ai pas atteint de limite mais sur celui de mon frére il fait bugger le jeu après la 10eme corde créé. Nous pensons que c'est à cause de surface_free ... Quelqu'un sait si il existe une amélioration pour le traitemment des surfaces ou bien, est ce que quelqu'un aurait une autre idée pour créer le sprite d'une corde. J'écris le code a partir de la création de la surface,bien que ca n'a aucun intérêt. (id4 est l'objet corde) - Code:
-
with (id4) { surf_tmp2=surface_create(600,600) ; surface_set_target(surf_tmp2) ; draw_set_color(c_white); draw_rectangle(0,0,600,600,0) ; draw_set_color(c_green) ; draw_line(300,299,300+other.x-other.xg,299+other.y-other.yg) ; draw_line(300,298,300+other.x-other.xg,298+other.y-other.yg) ; spr = sprite_create_from_surface(surf_tmp2,0,0,600,600,1,1,0,1,0,0) ; surface_reset_target() ; sprite_index=spr ; draw_set_color(c_white); surface_free(surf_tmp2) ; }
Je mets également en ligne un exe, ou d'ailleurs le bug fonctionne aussi... http://www.zshare.net/info.html?13049222-c36b2af3e20587c26b82152ee4f84b7fVoilà merci pour ce beta test, si vous pouviez aussi écrire le nombre de cordes que vous avez pu tirer et la mémoire de votre CG merci d'avance... Comme c'est une version "beta beta" il n'y a que deux options activés, Gp pour grappin et Cr pour creuser.
Dernière édition par Malax le Mar 3 Juin 2008 - 19:39, édité 1 fois |
|
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Surface_free et créer un sprite [Résolu] Mar 3 Juin 2008 - 17:22 | |
| Bon j'ai testé (ma CG a 64 mo de Vram) et au bout d'une trentaine ou quarantaine de lignes, ça rame pour en créer d'autres et ça génère un bug à la surface du terrain : |
|
Malax Utilisateur confirmé: Rang **
Messages : 496 Localisation : Aix-en-Provence Projet Actuel : Lemmings Struggle (abandonné)
| Sujet: Re: Surface_free et créer un sprite [Résolu] Mar 3 Juin 2008 - 17:45 | |
| Ok merci du renseignement et de ta participation. J'aimerais absolumment adapter au mieux possible mais je vois pas l'erreur dans le code. |
|
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Surface_free et créer un sprite [Résolu] Mar 3 Juin 2008 - 17:53 | |
| fait peut être le sprite_create_from_surface APRES le reset_target, c'est plus propre ^^ Et là, un nouveau sprite est crée à chaque step.... rajoute au début de ton code : if sprite_exists(spr) sprite_delete(spr)
Sinon, t'as un nouveau sprite de créer à chaque step/// ça devient vite lourd ^^ _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
Malax Utilisateur confirmé: Rang **
Messages : 496 Localisation : Aix-en-Provence Projet Actuel : Lemmings Struggle (abandonné)
| Sujet: Re: Surface_free et créer un sprite [Résolu] Mar 3 Juin 2008 - 18:38 | |
| le problème de sprite_delete c'est quand je l'écris (ou il faut :lng: ) et même avec une alarme qu'il le supprime dans deux steps, il me vire l'image du sprite. Je pense que ca vient du fait qu'il est définit comme ça ... Enfin je sais pas trop mais c'est bizarre. Sinon faudrait que tu m'expliques. Bon je vais essayer ton conseil et je vais aussi essayer de créer les lignes directemment sur l'écran puis de les effacer, comme ça pas de surface à utiliser.
Seulemment en réfléchissant, je ne sais toujous pas si le problème serait à cause des surfaces ou bien du trop grand nombre de sprites créés pendant le jeu ... |
|
Malax Utilisateur confirmé: Rang **
Messages : 496 Localisation : Aix-en-Provence Projet Actuel : Lemmings Struggle (abandonné)
| Sujet: Re: Surface_free et créer un sprite [Résolu] Mar 3 Juin 2008 - 19:38 | |
| Ben je suis passé sans les surfaces et ça marche. Le code est plus simple... donc voilà Résolu mais merci d'avoir Test Edit: - Code:
-
id3=instance_create(xg,yg,obj_grappin) ; if x<xg{xm=x ;}else{xm=xg ;} if y<yg{ym=y ;}else{ym=yg ;} id4=instance_create(xm,ym,obj_corde); draw_set_color(c_white); draw_rectangle(view_xview[0],view_yview[0],view_xview[0]+800,view_yview[0]+600,0) ; draw_set_color(c_green) ; draw_line(x,y,xg,yg) ; draw_line(x,y+1,xg,yg+1) ; spr = sprite_create_from_screen(xm,ym,abs(x-xg),abs(y-yg),1,1,0,1,0,0) ; id4.sprite_index=spr ; draw_set_color(c_white);
|
|
Contenu sponsorisé
| Sujet: Re: Surface_free et créer un sprite [Résolu] | |
| |
|