Problema ao carregar o jogo e com surface

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Problema ao carregar o jogo e com surface

Mensagem por gifah em Sex 08 Jul 2011, 16:44

Ola pessoal.

Eu estou tendo um probleminha naquele jogo que estou fazendo. O jogo já esta jogavel, mas eu tenho um problema ao tentar carregar o jogo.

Ele fala que no evento draw do objeto onde eu declaro a surface e crio ela, diz que a surface nao existe.


no objeto - fps_counter tem isso abaixo:

no create, eu tenho isso
Código:
globalvar cover, length, angle, add;
cover = surface_create(view_wview,view_hview);//create a surface for "carving" out our light
length = 400;//how far to see
angle = 120;//angle of vision
add = 1; //this controls quality... lower numbers = better quality and more lag...

no begin step eu tenho isso
Código:
x = obj_boneco.x;//make sure it doesn't get deactivated
y = obj_boneco.y;
draw_cover();

e no draw - que é onde ele diz que esta o problema, eu tenho isso
Código:
draw_surface(cover,view_xview,view_yview);
//draw_text_color(view_xview,view_yview,fps,c_white,c_white,c_white,c_white,1);//draw the fps...
draw_rectangle_color(global.boneco_x-20,global.boneco_y-16,global.boneco_x+global.vida,global.boneco_y-20,c_green,c_green,c_green,c_green,false);
draw_set_font(fonte);
draw_set_color(c_red);
draw_text(global.boneco_x-13,global.boneco_y-35,string(global.balas_usar));
draw_text(global.boneco_x,global.boneco_y-35,"/");
draw_text(global.boneco_x+7,global.boneco_y-35,string(global.pente_usar));




draw_set_color(c_black);

with (obj_salvar) {
draw_set_color(c_white);
draw_text(global.boneco_x-32,global.boneco_y,"JOGO SALVO");
draw_set_color(c_black);
}

with (obj_pause) {
draw_set_color(c_white);
draw_text(global.boneco_x-32,global.boneco_y,"JOGO PARADO");
draw_set_color(c_black);
}

Só acontece esse erro quando eu inicio o jogo e já aperto em carregar jogo. Se eu iniciar o jogo e depois voltar ao menu principal e depois clicar em carregar ele funciona. Eu ja tentei de tudo. Quando clicar carregar, ele iniciar o jogo e depois carregar - nao funciona. ao iniciar o jogo ja criar uma surface - nao funciona e algumas outras coisass que nao to lembrado, pq foram muitas.

Queria saber se alguem sabe fazer isso. Pq ja briguei bagarai com essa bagaça aqui.

gifah

Ranking : Nota B
Número de Mensagens : 111
Idade : 27
Data de inscrição : 25/04/2011
Notas recebidas : B
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Problema ao carregar o jogo e com surface

Mensagem por PedroX em Sex 08 Jul 2011, 16:53

O problema é da memória.
Tente fazer o seguinte, coloque que ao terminar o jogo, liberar a surface.
O código é surface_free. Depois de fazer isso, veja se aumenta o numero de vezes que o jogo não dá erros.
Isso é só um teste. O mais recomendado é ter uma máquina boa, se já tiver, diminua a resolução dos gráficos.

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Problema ao carregar o jogo e com surface

Mensagem por MatheusReis em Sex 08 Jul 2011, 16:59

A função de salvar/carregar do game maker não memoriza as surfaces, essa deve ser a causa raíz do problema.
Game Maker Help - Surfaces escreveu:Surfaces will not be saved when saving a game.
--EDIT--
É exatamente isso, se funciona quando você joga e depois volta no menu inicial.
Quando você joga as surfaces são iniciadas, então quando você carrega o jogo elas já estão lá.


Última edição por Mathaeuz em Sex 08 Jul 2011, 17:04, editado 1 vez(es)

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Re: Problema ao carregar o jogo e com surface

Mensagem por gifah em Sex 08 Jul 2011, 17:02

Pedro Henrique escreveu:O problema é da memória.
Tente fazer o seguinte, coloque que ao terminar o jogo, liberar a surface.
O código é surface_free. Depois de fazer isso, veja se aumenta o numero de vezes que o jogo não dá erros.
Isso é só um teste. O mais recomendado é ter uma máquina boa, se já tiver, diminua a resolução dos gráficos.

Até mais!

a resolução dos graficos estao 640 x 480. e meu notebook comprei ele esse ano.

Sobre o surface free. Eu ate coloquei, mas o problema acontece quando na primeira vez eu mando ele carregar o jogo. eu nem cheguei a iniciar um jogo. E o pior que de tanto eu fica olhando, agora nao carrega de jeito nenhum. Esse Game maker não é bom pra grandes e bons jogos. Estou frustado. aff aff.

gifah

Ranking : Nota B
Número de Mensagens : 111
Idade : 27
Data de inscrição : 25/04/2011
Notas recebidas : B
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Problema ao carregar o jogo e com surface

Mensagem por GameMakerTutoriais em Sex 08 Jul 2011, 17:05

Nossa cara, o que já tive de problema com surface no Gm8, não tem como descrever pra você. A trairagem foi tanta que eu tive que passar para o Gm6.1

Mas esse código que o Pedro Henrique passou, raramente funcionou comigo em casos de sair e entrar de novo no jogo. Ele funciona enquanto o jogo tá rodando, mas depois que vc fechou o jogo sem usar a surface_free(), já era, aí que começa o problema todo.

Faz o seguite, quando vc cria a surface ela retorna o id da mesma. Se ela retornar -1 é porque o Gm não conseguiu criar, você poderia tentar um loop com um número de tentativas até mostrar uma mensagem de "falta de memória".

Mesmo se você tentar liberar a memória das surfaces que deveriam existir, logo na arrancada do jogo, não adianta. Surfaces no Gm é a melhor coisa que tem mais é o que mais dá problema.

Algumas vezes o que funcinava comigo era mudar a resolução da tela e voltar ela ao normal. Se vc quiser tentar, mas não é garantido infelizmente

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Problema ao carregar o jogo e com surface

Mensagem por MatheusReis em Sex 08 Jul 2011, 17:11

Algumas vezes o que funcinava comigo era mudar a resolução da tela e voltar ela ao normal. Se vc quiser tentar, mas não é garantido infelizmente
Isso também faz sentido. Aí vai mais um trecho do GM Help:
GM Help escreveu:For reasons of speed, the surface is maintained in videomemory only. As a result, you might loose the surface when e.g. the screen resolution changes or the screensaver pops up.
Ou seja: quando mudamos de resolução, o computador pode "esquecer" as surfaces, liberando a memória.

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Re: Problema ao carregar o jogo e com surface

Mensagem por gifah em Sex 08 Jul 2011, 18:10

a pergunta se mantem.

Como resolvo isso?

gifah

Ranking : Nota B
Número de Mensagens : 111
Idade : 27
Data de inscrição : 25/04/2011
Notas recebidas : B
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

http://illiweb.com/fa/wysiwyg/text_bold.png

Mensagem por Klior em Sex 08 Jul 2011, 18:57

Sei lá, tenta algo assim:

Código:
globalvar cover, length, angle, add;
if (surface_exists(cover)) {
    surface_free(cover);
}
cover = surface_create(view_wview,view_hview);//create a surface for "carving" out our light
length = 400;//how far to see
angle = 120;//angle of vision
add = 1; //this controls quality... lower numbers = better quality and more lag...

Código:
if (surface_exists(cover)) {
    draw_surface(cover,view_xview,view_yview);
}
//draw_text_color(view_xview,view_yview,fps,c_white,c_white,c_white,c_white,1);//draw the fps...
draw_rectangle_color(global.boneco_x-20,global.boneco_y-16,global.boneco_x+global.vida,global.boneco_y-20,c_green,c_green,c_green,c_green,false);
draw_set_font(fonte);
draw_set_color(c_red);
draw_text(global.boneco_x-13,global.boneco_y-35,string(global.balas_usar));
draw_text(global.boneco_x,global.boneco_y-35,"/");
draw_text(global.boneco_x+7,global.boneco_y-35,string(global.pente_usar));




draw_set_color(c_black);

with (obj_salvar) {
draw_set_color(c_white);
draw_text(global.boneco_x-32,global.boneco_y,"JOGO SALVO");
draw_set_color(c_black);
}

with (obj_pause) {
draw_set_color(c_white);
draw_text(global.boneco_x-32,global.boneco_y,"JOGO PARADO");
draw_set_color(c_black);
}

Klior

Número de Mensagens : 426
Idade : 25
Data de inscrição : 07/03/2010
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Problema ao carregar o jogo e com surface

Mensagem por GameMakerTutoriais em Sex 08 Jul 2011, 20:39

Tenta aí mudar a resolução e voltar pra original. Se não der.. só Deus!

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Problema ao carregar o jogo e com surface

Mensagem por Mr. Kaleb em Sex 08 Jul 2011, 21:01

Eu não sei se eu estou bestando, mas acho que não precisa criar a var de surface 2 vezes, pois você definiu assim lá no create.

Mr. Kaleb

Ranking : Nota C
Número de Mensagens : 1400
Idade : 19
Data de inscrição : 07/09/2010
Notas recebidas : C
Reputação : 21
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Problema ao carregar o jogo e com surface

Mensagem por Ailton Ramos da Silva em Seg 21 Nov 2011, 21:19

http://www.youtube.com/watch?v=VsT33M8bm7g

Ailton Ramos da Silva

Número de Mensagens : 1
Data de inscrição : 21/11/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Problema ao carregar o jogo e com surface

Mensagem por Conteúdo patrocinado Hoje à(s) 22:15


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum