 | Forum Le CBNA Le Forum du CBNA a pour but de vous aider dans l'utilisation de GameMaker. Premier forum Francophone sous GameMaker, vous trouverez des .gmd, .gm6, .gmk, scripts, logiciels et d'autres ressources sur Le CBNA. |
| | Surface_free et créer un sprite [Résolu] | |
| | | Auteur | Message |
|---|
Malax Utilisateur confirmé: Rang **

Age : 25 Inscrit le : 21 Aoû 2006 Messages : 356 Localisation : Brignoles : ────────── : Projet Actuel : Lemmings Struggle Avancement :
   (60/100)
| Sujet: Surface_free et créer un sprite [Résolu] Mar 3 Juin - 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-c36b2af3e20587c26b82152ee4f84b7f
Voilà 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 - 19:39, édité 1 fois |
|  | | nicoulas Utilisateur confirmé: Rang *****

Age : 15 Inscrit le : 16 Juin 2007 Messages : 2246 Localisation : ... : ────────── : Projet Actuel : Skywar 3 Avancement :
   (75/100)
| Sujet: Re: Surface_free et créer un sprite [Résolu] Mar 3 Juin - 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 **

Age : 25 Inscrit le : 21 Aoû 2006 Messages : 356 Localisation : Brignoles : ────────── : Projet Actuel : Lemmings Struggle Avancement :
   (60/100)
| Sujet: Re: Surface_free et créer un sprite [Résolu] Mar 3 Juin - 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 'Programmation'

Age : 18 Inscrit le : 12 Fév 2005 Messages : 4058 Localisation : 47°44'8.04 : ────────── : Projet Actuel : trouver un contrat Avancement :
  (100/100)
| Sujet: Re: Surface_free et créer un sprite [Résolu] Mar 3 Juin - 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 ^^ _________________ Click for a free cookie |
|  | | Malax Utilisateur confirmé: Rang **

Age : 25 Inscrit le : 21 Aoû 2006 Messages : 356 Localisation : Brignoles : ────────── : Projet Actuel : Lemmings Struggle Avancement :
   (60/100)
| Sujet: Re: Surface_free et créer un sprite [Résolu] Mar 3 Juin - 18:38 | |
| le problème de sprite_delete c'est quand je l'écris (ou il faut ) 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 **

Age : 25 Inscrit le : 21 Aoû 2006 Messages : 356 Localisation : Brignoles : ────────── : Projet Actuel : Lemmings Struggle Avancement :
   (60/100)
| Sujet: Re: Surface_free et créer un sprite [Résolu] Mar 3 Juin - 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);
|
|
|  | | | Surface_free et créer un sprite [Résolu] | |
|
| Page 1 sur 1 |
| | Permission de ce forum: | Vous pouvez répondre aux sujets dans ce forum
| | |
| |
|