Evilshroom Très bonne participation
Messages : 121 Localisation : .... Projet Actuel : ????????
| Sujet: OUT OF MEMORY avec pathfinding Sam 10 Jan 2015 - 20:08 | |
| Bonjour gang! J'ai un problème que je n'arrive pas à régler... Dans mon top-down shooter, j'ai mis ce code dans le zombie dans «Begin Step» - Code:
-
if distance_to_object(obj_parent_character) < 600 { dir=direction grid=mp_grid_create(0,0,room_width/8,room_height/8,8,8); path=path_add(); mp_grid_add_instances(grid,obj_parent_solid,1) mp_grid_path(grid,path,x,y,obj_parent_character.x,obj_parent_character.y,1); path_start(path,4,'',1); sprite_index = spr_zombie
} Mais une fois activé... le jeu crash et sa dit «OUT OF MEMORY» Jai fait des recherches sur google, et je ne trouve aucune solution!! Est-ce que quelqu'un a déja eu le même probleme? ps: J'ai Game Maker Studio en version plus récente, et avec la Master Collection |
|
Asu Utilisateur confirmé: Rang ****
Messages : 895
| Sujet: Re: OUT OF MEMORY avec pathfinding Sam 10 Jan 2015 - 21:06 | |
| Quelle est la taille de ta room? OUT OF MEMORY veut dire que GM n'a pas pu réserver assez de mémoire pour initialiser ta grille (à priori) et qu'elle est peut être trop grosse. _________________ <Cysteine> nON mais la touche maj s'active/se désactive toute seule <Cysteine> et a du mal à réponDRE QUANd j'appuie dessus <Cysteine> et je l'ai démont2? IL Ny a rien DEDANs
|
|
DeinDall Utilisateur confirmé: Rang ****
Messages : 858 Localisation : Quimper
| Sujet: Re: OUT OF MEMORY avec pathfinding Sam 10 Jan 2015 - 21:25 | |
| Le problème c'est surtout que tu crées une grille à chaque (begin) step sans la détruire, et c'est une très mauvaise idée. La grille il faut que tu la crée une seule fois et l'utiliser plusieurs fois plus tard, et la mettre a jour si jamais il y a changement de la disposition de la room et la détruire à la "fin de la room". |
|
Asu Utilisateur confirmé: Rang ****
Messages : 895
| Sujet: Re: OUT OF MEMORY avec pathfinding Sam 10 Jan 2015 - 22:13 | |
| - DeinDall a écrit:
- Le problème c'est surtout que tu crées une grille à chaque (begin) step sans la détruire, et c'est une très mauvaise idée. La grille il faut que tu la crée une seule fois et l'utiliser plusieurs fois plus tard, et la mettre a jour si jamais il y a changement de la disposition de la room et la détruire à la "fin de la room".
GM n'est pas censé le détruire si on redéfinit la variable? _________________ <Cysteine> nON mais la touche maj s'active/se désactive toute seule <Cysteine> et a du mal à réponDRE QUANd j'appuie dessus <Cysteine> et je l'ai démont2? IL Ny a rien DEDANs
|
|
DeinDall Utilisateur confirmé: Rang ****
Messages : 858 Localisation : Quimper
| Sujet: Re: OUT OF MEMORY avec pathfinding Sam 10 Jan 2015 - 22:25 | |
| Une variable classique ou un tableau oui mais pas une structure de données. La variable ne contient alors que l'identifiant de la grille/liste/pile/... et non la structure elle-même. C'est comme un pointeur en C si on veux. |
|
Asu Utilisateur confirmé: Rang ****
Messages : 895
| Sujet: Re: OUT OF MEMORY avec pathfinding Sam 10 Jan 2015 - 22:51 | |
| - DeinDall a écrit:
- Une variable classique ou un tableau oui mais pas une structure de données. La variable ne contient alors que l'identifiant de la grille/liste/pile/... et non la structure elle-même. C'est comme un pointeur en C si on veux.
Ah, effectivement. Du coup le problème c'est très sûrement ça. _________________ <Cysteine> nON mais la touche maj s'active/se désactive toute seule <Cysteine> et a du mal à réponDRE QUANd j'appuie dessus <Cysteine> et je l'ai démont2? IL Ny a rien DEDANs
|
|
Evilshroom Très bonne participation
Messages : 121 Localisation : .... Projet Actuel : ????????
| Sujet: Re: OUT OF MEMORY avec pathfinding Lun 12 Jan 2015 - 4:49 | |
| Allo! Merci beaucoup de vos réponses. Et en effet la room est TREEEEEESSSSS grande! (20640x9408) Et le bug ne survient pas dans de petites room. Donc! Ce que j'ai pensé faire, c'est écrire dans le code quelque chose au lieu de - Code:
-
if distance_to_object(obj_parent_character) < 600 { dir=direction grid=mp_grid_create(0,0,room_width/8,room_height/8,8,8); path=path_add(); mp_grid_add_instances(grid,obj_parent_solid,1) mp_grid_path(grid,path,x,y,obj_parent_character.x,obj_parent_character.y,1); path_start(path,4,'',1); sprite_index = spr_zombie
} Mettre ça à la place : - Code:
-
if distance_to_object(obj_parent_character) < 600 { dir=direction grid=mp_grid_create(0,0,view_wview/8,room_hview/8,8,8); path=path_add(); mp_grid_add_instances(grid,obj_parent_solid,1) mp_grid_path(grid,path,x,y,obj_parent_character.x,obj_parent_character.y,1); path_start(path,4,'',1); sprite_index = spr_zombie
} Comme ça, les ennemis vont créer une grid SEULEMENT dans le view... Mais non!!! Ça n'a pas plus fonctionné! Sauriez-vous pourquoi par hasard? |
|
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: OUT OF MEMORY avec pathfinding Lun 12 Jan 2015 - 14:49 | |
| faut aussi que tu replace la grid en x et y, w et h ne suffisent pas |
|
Contenu sponsorisé
| Sujet: Re: OUT OF MEMORY avec pathfinding | |
| |
|