Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[Resolvido] Estranho bug ao executar arquivos externos
4 participantes
Página 1 de 1
[Resolvido] Estranho bug ao executar arquivos externos
Como muitos sabem, eu costumo programar de longe do game maker. Tenho uma lista com todas as funções e um game genérico, que pega um arquivo de texto e executa o que estiver dentro dele. Dentre as "coisas dentro dele" eu crio objetos com object_add() e adiciono eventos com object_event_add(ind,evtype,evnumb,codestr).
Isso tem me ajudado a testar minhas engines pra depois, em casa, já saber o que fazer pro jogo funcionar.
Só que agora me deparei com algo inusitado. Usando esse sistema, estabelece-se um limite pra função draw_text e pra draw_text_ext. Fiz um teste e não consegui exibir um texto com 53 caracteres na tela usando draw_text_ext. 52 vai numa boa, mas 53 trava o jogo. Usando a função draw_text, esse limite sobe para 59 caracteres.
Claro que esses limites não se aplicam quando eu jogo os textos diretamente no executável ou - isso estou supondo - ou mesmo quando eu importo os textos de um arquivo externo, mas faço isso com um objeto de dentro do executável.
Existe alguma explicação pra esse fenômeno? Porque eu não posso usar textos com muitos caracteres num objeto criado a partir de object_add()?
Sinto-me obrigado a mostrar o que usei em cada arquivo. Vai no spoiler:
Isso tem me ajudado a testar minhas engines pra depois, em casa, já saber o que fazer pro jogo funcionar.
Só que agora me deparei com algo inusitado. Usando esse sistema, estabelece-se um limite pra função draw_text e pra draw_text_ext. Fiz um teste e não consegui exibir um texto com 53 caracteres na tela usando draw_text_ext. 52 vai numa boa, mas 53 trava o jogo. Usando a função draw_text, esse limite sobe para 59 caracteres.
Claro que esses limites não se aplicam quando eu jogo os textos diretamente no executável ou - isso estou supondo - ou mesmo quando eu importo os textos de um arquivo externo, mas faço isso com um objeto de dentro do executável.
Existe alguma explicação pra esse fenômeno? Porque eu não posso usar textos com muitos caracteres num objeto criado a partir de object_add()?
Sinto-me obrigado a mostrar o que usei em cada arquivo. Vai no spoiler:
- Spoiler:
- no arquivo "tutorial.saim", que é o arquivo que o game genérico executa, coloquei:
- Código:
globalvar objTutoControl, objTowerParent, objEgg, objSpermTuto, sprSperm, sprTower, sprEgg;
objTutoControl = object_add();
objTowerParent = object_add();
objEgg = object_add();
objSpermTuto = object_add();
execute_file(working_directory + "\quadrados.draw");
execute_file(working_directory + "\tutorial2.obj");
execute_file(working_directory + "\towerTuto.obj");
execute_file(working_directory + "\spermTuto.obj");
fonte = font_add("Arial", 12, 0, 0, 0, 255);
draw_set_font(fonte);
instance_create(0, 0, objTutoControl);
No arquivo "tutorial2.obj" tem o seguinte:- Código:
object_event_add(objTutoControl, ev_create, 0, '
//substituir isso aqui pela rotina de importar textos
texto[0]= "123456789 121415181 222426282 323436383 424446484 52";
texto[1]= "123456789 121415181 222426282 323436383 424446484 525";
texto[2]= "123456789 121415181 222426282 323436383 424446484 5254565856";
textoAtual = 0;
')
object_event_add(objTutoControl, ev_keypress, vk_space, '
textoAtual += 1;
if (textoAtual == 3){
game_end();
}
')
object_event_add(objTutoControl, ev_draw, 0, '
draw_text(20, 20, texto[textoAtual]);
')
object_event_add(objTutoControl, ev_other, ev_game_end, '
sprite_delete(sprSperm);
sprite_delete(sprTower);
sprite_delete(sprEgg);
')
O bug acontece ao exibir o texto[1], quando eu uso draw_text_ext e ao exibir o texto[2], ao usar draw_text
Última edição por saim em Qui 15 Dez 2011, 10:10, editado 1 vez(es)
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Resolvido] Estranho bug ao executar arquivos externos
Que estranho...
Acho que não há esse "limite". Mas, que eu vi, você só está usando draw_text, nunca draw_text_ext. E não entedi direto qual é o bug que está dando. Explique melhor o que é que acontece e o que deveria acontecer.
Acho que não há esse "limite". Mas, que eu vi, você só está usando draw_text, nunca draw_text_ext. E não entedi direto qual é o bug que está dando. Explique melhor o que é que acontece e o que deveria acontecer.
Re: [Resolvido] Estranho bug ao executar arquivos externos
bom, vi que o problema é um bug mesmo, vc já tentou usar uma variavel para o texto e depois abrilá no draw_text_ext com uma var global?
henriquebr- Games Ranking :
Notas recebidas : D+B+D
Data de inscrição : 03/10/2011
Reputação : 1
Número de Mensagens : 421
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido] Estranho bug ao executar arquivos externos
Estranho eu testei aqui e não tive problema nenhum, você deveria por a engine para saber exatamente como você está fazendo.
Testei da seguinte maneira:
#tutorial.saim.txt
#tutorial2.obj.txt
Creation Code da Room:
Todos os três textos foram mostrados sem problemas
Testei da seguinte maneira:
#tutorial.saim.txt
- Código:
globalvar objTutoControl, objTowerParent, objEgg, objSpermTuto, sprSperm, sprTower, sprEgg;
objTutoControl = object_add();
objTowerParent = object_add();
objEgg = object_add();
objSpermTuto = object_add();
execute_file(working_directory + "\tutorial2.obj.txt");
fonte = font_add("Arial", 12, 0, 0, 0, 255);
draw_set_font(fonte);
instance_create(0, 0, objTutoControl);
#tutorial2.obj.txt
- Código:
object_event_add(objTutoControl, ev_create, 0, '
//substituir isso aqui pela rotina de importar textos
texto[0]= "123456789 121415181 222426282 323436383 424446484 52";
texto[1]= "123456789 121415181 222426282 323436383 424446484 525";
texto[2]= "123456789 121415181 222426282 323436383 424446484 5254565856";
textoAtual = 0;
')
object_event_add(objTutoControl, ev_keypress, vk_space, '
textoAtual += 1;
if (textoAtual == 3){
game_end();
}
')
object_event_add(objTutoControl, ev_draw, 0, '
draw_text(20, 20, texto[textoAtual]);
')
object_event_add(objTutoControl, ev_other, ev_game_end, '
sprite_delete(sprSperm);
sprite_delete(sprTower);
sprite_delete(sprEgg);
')
Creation Code da Room:
- Código:
execute_file(working_directory + "\tutorial.saim.txt");
Todos os três textos foram mostrados sem problemas
Klior- Data de inscrição : 07/03/2010
Reputação : 13
Número de Mensagens : 426
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- C#
- Javascript
Re: [Resolvido] Estranho bug ao executar arquivos externos
Não há o limite MESMO, por isso estou estranhando.luiz_eldorado escreveu:Que estranho...
Acho que não há esse "limite". Mas, que eu vi, você só está usando draw_text, nunca draw_text_ext. E não entedi direto qual é o bug que está dando. Explique melhor o que é que acontece e o que deveria acontecer.
Eu fiquei alternando entre as opções, mas postei uma só. Na prática, eu fiz as duas.
O bug é que o jogo trava, tem que ser fechado pelo gerenciador de tarefas. Como se eu tivesse entrado num loop infinito, o que não parece ser o caso.
Já tentei:henriquebr escreveu:bom, vi que o problema é um bug mesmo, vc já tentou usar uma variavel para o texto e depois abrilá no draw_text_ext com uma var global?
- importar o texto de um outro arquivo externo (esse é meu objetivo final, na verdade)
- usar uma variável para o texto (que é o que está no exemplo)
- usar o texto diretamente no draw_text e draw_text_ext.
- Usar outros textos antes, pra ver se não é algo a ver com o índice do texto (o erro sempre ocorre ao mostrar o mesmo texto e muda de texto se eu mudar de função).
Não tentei usar uma global, mas não faz sentido uma global ser mais eficiente que uma local.
A engine está meio inacessível, no momento... Foi com o game genérico, aquele mesmo que está no link do tutorial. Essa sua versão deveria funcionar igualzinho - na prática, o que é feito é isso mesmo. Então o erro é só comigo? Estranho. Não faz sentido querer culpar a máquina - qualquer placa de vídeo consegue mostrar um texto desse tamanho (aliás, qualquer placa de SOM consegue isso). Por via das dúvidas, vou tentar testar em outras máquinas. Se importa em baixar a engine? Vou copiar o link aqui.Klior escreveu:Estranho eu testei aqui e não tive problema nenhum, você deveria por a engine para saber exatamente como você está fazendo.
Pra não dizer que você fez idêntico, a extensão do primeiro arquivo é .saim, mesmo, sem o .txt no final. E a minha engine tem um objeto que procura arquivos da extensão .saim pra executar. Mas se não achar, ele pede o novo nome da extensão, então é só escrever "txt" (acho que SEM o ".").
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [Resolvido] Estranho bug ao executar arquivos externos
saim escreveu:
Se importa em baixar a engine? Vou copiar o link aqui.
Com esse arquivo que você mandou realmente está travando, deu uma travada e tive que finalizar com ctrl + del, refiz o procedimento que eu tinha descrevi-do acima para ter certeza, e não travou, está com algum outro problema na 'engina' que você me mandou.
Klior- Data de inscrição : 07/03/2010
Reputação : 13
Número de Mensagens : 426
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- C#
- Javascript
Re: [Resolvido] Estranho bug ao executar arquivos externos
Hm... Não faço idéia do que pode ser. Bom, o problema está isolado, então. Até eu recuperar o acesso ao editável da engine, não faz sentido continuar esse tópico, de forma que estou trancando ele.
Muito obrigado a todos!
Muito obrigado a todos!
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Tópicos semelhantes
» [resolvido]Como abrir arquivos externos com caminho maior.
» [Resolvido] Abrir arquivos e automaticamente executar função nele
» Ler arquivos externos
» arquivos mp3 externos
» arquivos externo
» [Resolvido] Abrir arquivos e automaticamente executar função nele
» Ler arquivos externos
» arquivos mp3 externos
» arquivos externo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos