Conectar-se
Quem está conectado
23 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 22 Visitantes

CRP-Max

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota B
Notas recebidas : B
Data de inscrição : 25/04/2011
Número de Mensagens : 111
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Problema ao carregar o jogo e com surface

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.
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Problema ao carregar o jogo e com surface

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!
avatar
Ranking : Nota A
Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Número de Mensagens : 1087
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 30

Prêmios
   : 2
   : 1
   : 0
Ver perfil do usuáriohttp://www.mathaeuz.deviantart.com

Re: Problema ao carregar o jogo e com surface

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)
avatar
Ranking : Nota B
Notas recebidas : B
Data de inscrição : 25/04/2011
Número de Mensagens : 111
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Problema ao carregar o jogo e com surface

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.
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 26

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Problema ao carregar o jogo e com surface

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
avatar
Ranking : Nota A
Notas recebidas : B-A-A
Data de inscrição : 13/01/2010
Número de Mensagens : 1087
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 30

Prêmios
   : 2
   : 1
   : 0
Ver perfil do usuáriohttp://www.mathaeuz.deviantart.com

Re: Problema ao carregar o jogo e com surface

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.
avatar
Ranking : Nota B
Notas recebidas : B
Data de inscrição : 25/04/2011
Número de Mensagens : 111
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Problema ao carregar o jogo e com surface

em Sex 08 Jul 2011, 18:10
a pergunta se mantem.

Como resolvo isso?
avatar
Data de inscrição : 07/03/2010
Número de Mensagens : 426
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 13

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

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

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);
}
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 26

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Problema ao carregar o jogo e com surface

em Sex 08 Jul 2011, 20:39
Tenta aí mudar a resolução e voltar pra original. Se não der.. só Deus!
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/09/2010
Número de Mensagens : 1400
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 21

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Problema ao carregar o jogo e com surface

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.
avatar
Data de inscrição : 21/11/2011
Número de Mensagens : 1
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Problema ao carregar o jogo e com surface

em Seg 21 Nov 2011, 21:19
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum