Erro em codigo de inimigo

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

Erro em codigo de inimigo

Mensagem por taninhabaixinha em Qui 29 Set 2011, 23:35

É o seguinte eu tenho o seguinte código em um inimigo:

Código:

 if (distance_to_object(hero_right_obj) < 80)
 { sprite_index = manfire_ataqR
 }

o problema é que em vez dele mudar seu sprite para o "manfire_ataqR" ele muda para outro personagem totalmente diferente.... o que tem de errado aqui ? alguem me ajuda ?? :SS

taninhabaixinha

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

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por Carlos L. em Qui 29 Set 2011, 23:54

Verifique o nome da sprite no código, e da sprite que você quer usar talvez seja o nome trocado, não se esqueça que o game maker distingue maiúsculas de minusculas, se não for isso não tem como saber porque esse código que você passou não tem nada de errado só se for em outro pedaço de código.

Carlos L.

Ranking : Nota C
Número de Mensagens : 270
Data de inscrição : 26/09/2010
Notas recebidas : C
Reputação : 8
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por Limalokão em Sex 30 Set 2011, 04:19

O GM também tem um certo conflito entre sprites e objetos, se vc colocar manfire_ataqR numa sprite e tambem manfire_ataqR em um objeto ele vai entrar em conflito! Recomendo a você a renomear todas as sprites para
spr_...manfire_ataqR e os objetos para obj_...manfire_ataqR ai ele nunca entrará em conflito! ;D

Limalokão

Ranking : Nota C
Número de Mensagens : 803
Idade : 24
Data de inscrição : 24/11/2009
Notas recebidas : C
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por itarodrigo em Sex 30 Set 2011, 08:02

prefiro usar o draw para escolher as sprites.

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por saim em Sex 30 Set 2011, 10:05

Debugue, sempre debugue. Caso você não saiba o que é debugar (ou "tirar os bugs"), é rodar o jogo usando o "play" vermelho ao invés do verde (antes de gerar o executável, claro). Quando você faz isso, aparece uma janelinha que te informa um monte de coisas que estão acontecendo durante o jogo e você não pode ver porque... bom, porque você não é o computador.
Enfim, na janela de debug, tem um símbolo de "+". Clique nele e você terá acesso a qualquer variável do jogo. Lembre-se que variável tem um sentido muito amplo. ids são variáveis. E tudo tem id. Inclusive as sprites. Já viu onde eu quero chegar?

Clique no "+" e digite o nome da sprite que você quer (manfire_ataqR). Esse é o sprite que DEVERIA estar no inimigo, certo? Ok, isso é só pra saber o número dele.
Dê uma pausa no jogo. A janela de debug te dá essa opção, o símbolo é o "||", de pause em video-cassete DVD player mesmo.
Agora, passe o mouse sobre o inimigo. Lá embaixo da janelinha de debug aparece um texto, tipo "mouse_id=100358". Não tenho certeza de como é escrito, mas o que importa é que ele mostra a id da instância sob o mouse. Anote esse número.
Agora, escreva esse número entre parênteses, coloque um ponto e escreva o número da variável que você quer ver. Exemplo: (100358).sprite_index
Se o número for igual ao da sprite manfire_ataqR, provavelmente o que está acontecendo é o que o Soul Limaloko sugeriu e há um conflito de variáveis (duas ou mais variáveis com o mesmo nome). Pra corrigir, o Soul Limaloko já te explicou como faz. Se os números forem diferentes, é porque existe algum erro no código e o que está definindo o sprite não é a linha que você acredita que seja. Pode ser um código depois dela, pode ser um engano na condição, pode ser até um código de outra instância que se imponha sobre essa em questão, que você esqueceu que existe.

Se você gostou de debugar, ainda tem a opção de gravar num arquivo as variáveis que você está observando, pra voltar pra tela de edição, corrigir e debugar de novo sem ter que escrever uma-por-uma. Vé em "watch-save" que você pode gravar um .txt com o nome dessas variáveis (e pode até editá-lo manualmente, depois). Pra voltar com as variáveis numa segunda debugada, vá em "watch-load".

Nossa, é muita informação. Quando comecei a escrever, não achei que seria tanta. Acho que vou fazer um tutorial sobre debug...

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por taninhabaixinha em Qua 12 Out 2011, 21:49

Muito obrigado, mas como eu faço no código ?
eu tento colocar o numero 102133 e como o saim disse " (102133).sprite_index no step mas nao funciona... como eu faço ???
fica assim o codigo..

Código:


 if (distance_to_object(hero_right_obj) < 80)
 { (102133).sprite_index
 }

taninhabaixinha

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

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por delta games em Qua 12 Out 2011, 22:06

taninhabaixinha escreveu:Muito obrigado, mas como eu faço no código ?
eu tento colocar o numero 102133 e como o saim disse " (102133).sprite_index no step mas nao funciona... como eu faço ???
fica assim o codigo..

Código:


 if (distance_to_object(hero_right_obj) < 80)
 { (102133).sprite_index
 }

vc criou a variavel no create? esse numero é uma variavel, que deve ser definida no create,

delta games

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

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por taninhabaixinha em Qua 12 Out 2011, 22:16

Aconteceu esse erro :

Código:


___________________________________________
FATAL ERROR in
action number 3
of Create Event
for object dogfire_left:

COMPILATION ERROR in code action
Error in code at line 3:
    }
    ^
at position 3: Assignment operator expected.

acho que tem erro na formulação do código... alguem pode me ajudar ??

taninhabaixinha

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

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por itarodrigo em Qua 12 Out 2011, 22:30

vá no objeto 'dogfire_left', evento 'create' e cole o codigo aqui.

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por taninhabaixinha em Qua 12 Out 2011, 22:40

É esse o código:


Código:

 if (distance_to_object(hero_right_obj) < 80)
 { (102133).sprite_index
 }

taninhabaixinha

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

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por saim em Qua 12 Out 2011, 23:34

Não, peraí, não foi nada disso que eu disse!
Eu disse pra você debugar, ou seja, verificar o valor da variável. Não definí-la. Bom, como eu comentei, criei um tutorial sobre debug, tem um link na minha assinatura.
Seu código original estava ok, portanto alguma coisa fora dele deve estar errada.
Eu suspeito que o problema seja aquele que o Soul Limaloko disse: existem duas sprites com o mesmo nome. Pra ter certeza, só debugando.
Então, verifique o valor do índice da sprite "manfire_ataqR" e o valor da sprite do objeto. Se forem o mesmo valor, o código faz o que se espera e o problema está, provavelmente, no nome da sprite. Se forem valores diferentes, aí tem algo errado com o código mesmo.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por itarodrigo em Qui 13 Out 2011, 08:56

taninhabaixinha escreveu:É esse o código:


Código:

 if (distance_to_object(hero_right_obj) < 80)
 { (102133).sprite_index
 }

esse codigo nao faz nada por isso tá dando erro.

o que voce quer fazer com esse codigo?

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por taninhabaixinha em Qui 13 Out 2011, 23:25

eu queria que a chegar menos de 80, mudasse para uma especifica sprite, que era a do código 102133.... só isso

taninhabaixinha

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

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por Knonick em Qui 13 Out 2011, 23:45

Tente este código:
Código:
if (distance_to_object(hero_right_obj) < 80)
{
    sprite_index=102133
}
Eu só adaptei o seu código, não sei se vai funcionar.

Knonick

Número de Mensagens : 92
Idade : 18
Data de inscrição : 10/05/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por taninhabaixinha em Sex 14 Out 2011, 00:16

nao deu certo o código e o id estao certos, mas na hora do objeto mudar ele nao aparece... apenas some, o que pode estar errado aqui ?? :SSS

taninhabaixinha

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

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por saim em Sex 14 Out 2011, 00:24

Não pode estar certo. Os índices das sprites começam em 0. Seu jogo não pode ter 102133 sprites.
Mais uma vez, sugiro voltar pro seu primeiro código e debugar, ver qual o índice da sprite que você quer e qual o índice da sprite que você está aparecendo.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por itarodrigo em Sex 14 Out 2011, 09:08

no evento ondraw do objeto que voce quer mudar, use:
Código:

if (distance_to_object(hero_right_obj) < 80)
{
draw_sprite(sprite1,image_index,x,y);
}
else
{
draw_sprite(sprite2,image_index,x,y);
}

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erro em codigo de inimigo

Mensagem por Conteúdo patrocinado Hoje à(s) 23:11


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