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] Variavel nao funciona como seu valor ?
2 participantes
Página 1 de 1
[RESOLVIDO] Variavel nao funciona como seu valor ?
Bom, recentemente fiz uma pergunta, ja consegui resolver, mas agora o meu problema nao faz sentido algum ! (Resumindo --->) E criei o seguinte codigo:
Sendo o valor de xaa 32 e o de yaa 0, e existe um obj_pedra no local, mas ela nao funciona, exemplo nao fica como verdadeiro.
Mas se eu colocar assim:
Ele funciona O.o Como pode isso ?
CODIGOS INTEIROS:
Create:
Step:
Ja rodei no debug, as vars xaa e yaa assumem exatamente o valor que eu queria, mas a var texto apenas vai adicionando A,A,A,A,A,A ... ja se eu trocar os xaa e yaa pelos numeros o codigo funciona.
O que esta acontecendo ?
- Código:
if place_meeting(xaa,yaa,obj_pedra)
exemplo=true
Sendo o valor de xaa 32 e o de yaa 0, e existe um obj_pedra no local, mas ela nao funciona, exemplo nao fica como verdadeiro.
Mas se eu colocar assim:
- Código:
if place_meeting(32,0,obj_pedra)
exemplo=true
Ele funciona O.o Como pode isso ?
CODIGOS INTEIROS:
Create:
- Código:
xaa=0
yaa=0
texto=""
Step:
- Código:
if place_free(xaa,yaa)
texto += "A"
if place_meeting(xaa,yaa,obj_bloco_pedra)
texto += "B"
if place_meeting(xaa,yaa,obj_bloco)
texto += "C"
if place_meeting(xaa,yaa,obj_espinho)
texto += "D"
if place_meeting(xaa,yaa,obj_player)
texto += "E"
if place_meeting(xaa,yaa,obj_espinho_cair)
texto += "F"
if place_meeting(xaa,yaa,obj_bloco_metralha)
texto += "G"
if place_meeting(xaa,yaa,obj_espinholo)
texto += "H"
if place_meeting(xaa,yaa,obj_bloco_metal)
texto += "I"
if place_meeting(xaa,yaa,obj_meio_bloco)
texto += "J"
if place_meeting(xaa,yaa,obj_bloco_some1)
texto += "K"
if place_meeting(xaa,yaa,obj_bloco_some2)
texto += "L"
if xaa=768
{
yaa+=32
xaa=0
if yaa=480
{
arquivo = file_text_open_write("texto.txt"); // texto.txt será o nome do arquivo
file_text_write_string(arquivo , string(texto));
}
}
else
xaa+=32
Ja rodei no debug, as vars xaa e yaa assumem exatamente o valor que eu queria, mas a var texto apenas vai adicionando A,A,A,A,A,A ... ja se eu trocar os xaa e yaa pelos numeros o codigo funciona.
O que esta acontecendo ?
Última edição por pinpi em Qui 20 Dez 2012, 14:05, editado 1 vez(es)
Lukbebalduke- Games Ranking :
Notas recebidas : B - B - A - B
Data de inscrição : 06/07/2011
Reputação : 30
Número de Mensagens : 765
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 2
x 1 x 0 x 0
Re: [RESOLVIDO] Variavel nao funciona como seu valor ?
Primeiro, algumas considerações.
- place_meeting pode retornar "true" se for rodada num objeto com máscara de colisão. Se for rodado num objeto sem, digamos, "forma física" (como um controle, por exemplo), o estranho é estar dando certo quando você usa números.
Esse engano é muito comum, portanto eu me sinto obrigado a perguntar se você está usando o mesmo objeto nas duas situações e se ele tem uma sprite/collision_mask.
Sugiro substituir o place_meeting por um instance_position
- Esse código parece ser aquele que você estava procurando pra criar um mapa através de uma linha de caracteres. Só que ele demora pra fazer isso, assim que estiver funcionando, recomendo usar um "while (yaa < 480)" ao invés do step. Você vai gerar o arquivo num único step, ao invés dos 6 segundos que deve estar levando agora.
Estou fazendo um script pra testar uma teoria, aqui. Se usar instance_position resolver, comente. Senão, eu volto a postar assim que tiver rodado o teste.
Fiz um teste aqui, parece funcionar:
- place_meeting pode retornar "true" se for rodada num objeto com máscara de colisão. Se for rodado num objeto sem, digamos, "forma física" (como um controle, por exemplo), o estranho é estar dando certo quando você usa números.
Esse engano é muito comum, portanto eu me sinto obrigado a perguntar se você está usando o mesmo objeto nas duas situações e se ele tem uma sprite/collision_mask.
Sugiro substituir o place_meeting por um instance_position
- Esse código parece ser aquele que você estava procurando pra criar um mapa através de uma linha de caracteres. Só que ele demora pra fazer isso, assim que estiver funcionando, recomendo usar um "while (yaa < 480)" ao invés do step. Você vai gerar o arquivo num único step, ao invés dos 6 segundos que deve estar levando agora.
Fiz um teste aqui, parece funcionar:
- Código:
var xaa, yaa, texto, arquivo, idObjeto;
xaa = 0; yaa = 0;
arquivo = file_text_open_write("teste.txt"); //abre o arquivo pra escrever
while(yaa <= 480){ //enquanto não passar do limite
idObjeto = instance_position(xaa, yaa, all); //id da INSTÂNCIA
if (idObjeto == noone){ //se vazio
file_text_write_string(arquivo, "na posição (" + string(xaa) + ", " + string(yaa) + ") não tem objeto;");
}
else { //se qualquer um
file_text_write_string(arquivo, "na posição (" + string(xaa) + ", " + string(yaa) + ") tem um " + object_get_name(idObjeto . object_index) + ";");
}
file_text_writeln(arquivo); //pula de linha
xaa += 32; //anda pra direita
if (xaa > 768){ //se no fim
xaa = 0; yaa += 32; //volta pra esquerda e anda pra baixo
}
}
file_text_close(arquivo); //fecha o arquivo
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] Variavel nao funciona como seu valor ?
Troquei o place_meeting pelo instance_position e deu certo, nao sei porque ja que meus objeto eram solidos e tinham colision mask. Em fim, muito obrigado Saim.
TOPICO RESOLVIDO
TOPICO RESOLVIDO
Lukbebalduke- Games Ranking :
Notas recebidas : B - B - A - B
Data de inscrição : 06/07/2011
Reputação : 30
Número de Mensagens : 765
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 2
x 1 x 0 x 0
Re: [RESOLVIDO] Variavel nao funciona como seu valor ?
É que place_meeting te retorna true ou false se o objeto em que a função está colocada colide (ou não) com o objeto colocado como argumento ao ser posto na posição (x, y), também entrada como argumento.
Os objetos não precisam ser sólidos, mas PRECISAM ter a collision_mask. Fiquei com a impressão que só os objetos que aparecem no arquivo têm a collision_mask e que o objeto que percorre a room testando as colisões não tem.
Isso explicaria o erro.
instance_position te retorna a id do objeto que colide com o ponto dado como argumento. Esse ponto não precisa de uma collision_mask, então se o objeto que chama a função tem ou não tem uma collision_mask não faz diferença.
Os objetos não precisam ser sólidos, mas PRECISAM ter a collision_mask. Fiquei com a impressão que só os objetos que aparecem no arquivo têm a collision_mask e que o objeto que percorre a room testando as colisões não tem.
Isso explicaria o erro.
instance_position te retorna a id do objeto que colide com o ponto dado como argumento. Esse ponto não precisa de uma collision_mask, então se o objeto que chama a função tem ou não tem uma collision_mask não faz diferença.
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
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos