Erros... alguém me ajuda?

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

Erros... alguém me ajuda?

Mensagem por jpaulo em Seg 05 Mar 2012, 15:15

Pessoal, é o seguinte: eu fiz uma janela é ela é móvel. Fiz com uma engine aqui do fórum. Mas eu coloquei para algumas coisas ficarem dentro dessa janela. Até aí tudo bem, porque os objetos seguem a janela direitinho. Só que quando clico no objeto, era para mudar o sprite do jogador. Só que não muda. E eu coloquei para o jogador ficar parado enquanto essa janela existir. Eu até já tirei esse código. Mas continua sem funcionar. Será que é porque eu coloquei o código de para quando ele ficar parado, o sprite mudar para o sprite dele parado, e esse código acabou meio que confrontando (se contradizendo), e um código (no caso, o que faz ele ficar parado) foi mais... "forte"? Aqui estão os códigos do obj_jogador, do obj_janela_escolha_classe, obj_bot_mago, obj_bot_arqueiro, obj_bot_guerreiro, obj_bot_gatuno. Sei que é muito mas me ajudem, por favor.
Obj_jogador
Create
Código:
level=1
hp=100
sp=100
Step
Código:
image_speed=0.4
if mouse_check_button(mb_left)and place_empty(mouse_x,mouse_y){move_towards_point(mouse_x,mouse_y,6);
instance_create(mouse_x,mouse_y,obj_stop_mouse)}
if direction>90 and direction<270{image_xscale=-1;sprite_index=spr_andando}else{image_xscale=1;
sprite_index=spr_andando}
if speed>0{sprite_index=spr_andando}else{if image_xscale=-1{sprite_index=spr_parado;}
else{sprite_index = spr_parado;image_xscale=1}}
Bem, do obj_jogador, estou certo de que só esses são necessários.

Obj_janela_escolha_classe(essa objeto é a janela que contém os objetos que são a escolha das classes. Isto é, você clica e se transforma em tal classe)
Create
Código:
arrastar = false; // Variável para saber se está arrastando

xx = 0; // Variáveis para saber a diferença entre a posição do bloco
yy = 0; // e do mouse quando clicar e fazer se mover de acordo
Step
Código:
if (arrastar == true) // Se está arrastando
{
    x = mouse_x+xx; // Vai para a posição do mouse mais a diferença
    y = mouse_y+yy; // entre a sua posição e a do mouse quando clicou
   
}
Código:
with(obj_mais){instance_destroy()}
with(obj_txt){instance_destroy()}
with(obj_jogador){speed=0}
if self.x=mouse_x and self.y=mouse_y{speed=0}
Left Pressed
Código:
arrastar = true; // Começa a arrastar

xx = x-mouse_x; // Calcula a diferença entre a sua posição
yy = y-mouse_y; // e a do mouse para se mover depois
Global left released
Código:
arrastar = false; //Para de arrastar

Obj_bot_mago(botão que clica para virar mago)
Step
Código:
x=obj_janela_escolha_classe.x+64;y=obj_janela_escolha_classe.y+30
image_speed=0
Left Button
Código:
with(obj_jogador)sprite_index=spr_mago_parado
Código:
with(obj_janela_escolha_classe){arrastar = false}
Mouse enter
Código:
image_index=1
Mouse leave
Código:
image_index=0

Obj_bot_arqueiro
Step
Código:
x=obj_janela_escolha_classe.x+64;y=obj_janela_escolha_classe.y+30+30
Código:
image_speed=0
Left Button
Código:
with(obj_jogador)sprite_index=spr_arqueiro_parado
Código:
with(obj_janela_escolha_classe){arrastar = false}
Mouse enter
Código:
image_index=1
Mouse leave
Código:
image_index=0

Obj_bot_guerreiro
Step
Código:
x=obj_janela_escolha_classe.x+64;y=obj_janela_escolha_classe.y+30+30+30
Código:
image_speed=0
Left Button
Código:
with(obj_jogador)sprite_index=spr_guerreiro_parado
Código:
with(obj_janela_escolha_classe){arrastar = false}
Mouse enter
Código:
image_index=1
Mouse leave
Código:
image_index=0

Obj_bot_gatuno
Step
Código:
x=obj_janela_escolha_classe.x+64;y=obj_janela_escolha_classe.y+30+30+30+30
Código:
image_speed=0
Left Button
Código:
with(obj_jogador)sprite_index=spr_gatuno_parado
Código:
with(obj_janela_escolha_classe){arrastar = false}
Mouse enter
Código:
image_index=1
Mouse leave
Código:
image_index=0

Eu sei que pode parecer demais, mas por favor, me ajudem, eu realmente quero fazer esse jogo, mas preciso da ajuda de vocês!

jpaulo

Número de Mensagens : 345
Data de inscrição : 21/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erros... alguém me ajuda?

Mensagem por saim em Seg 05 Mar 2012, 16:19

Não entendi muito bem o que está acontecendo de errado, por favor, escreva de novo com outras palavras. O que era pra acontecer e o que está acontecendo?
É muito código pra entrar em miudezas, mas faltou dizer pra que serve o obj_stop_mouse.
Fora isso, só vi o evento de clicar nos botões pra mudar a sprite do jogador, isso não deveria ser um problema.

Claro que, como o step do jogador manda a sprite ser spr_andando ou spr_parado, apertar os botões não terá um efeito durador (talvez nem tenha efeito nenhum, se o step do jogador acontecer depois do clique). É isso que está dando errado? Os botões não estão mudando a sprite?

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: Erros... alguém me ajuda?

Mensagem por jpaulo em Seg 05 Mar 2012, 20:25

O problema é que quando eu clico no obj_bot_"classe", deveria fazer o obj_player mudar o sprite dependendo classe. E quando eu clico, não acontece nada. O.o

obj_stop_mouse:quando o mouse clica em um lugar que não tenha nenhum objeto, esse objeto é criado. Ele serve para que quando o personagem siga a direção do mouse, não siga infinitamente aquela direção, parando onde o ponto foi criado.

Se você estiver disposto a me ajudar, posso te mandar o jogo (por mp, não quero que todo mundo veja o jogo antes da hora :|), então você conserta e dou créditos sem problema Very Happy

jpaulo

Número de Mensagens : 345
Data de inscrição : 21/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erros... alguém me ajuda?

Mensagem por saim em Ter 06 Mar 2012, 00:27

jpaulo escreveu:O problema é que quando eu clico no obj_bot_"classe", deveria fazer o obj_player mudar o sprite dependendo classe. E quando eu clico, não acontece nada. O.o
Já comentado acima.

jpaulo escreveu:obj_stop_mouse:quando o mouse clica em um lugar que não tenha nenhum objeto, esse objeto é criado. Ele serve para que quando o personagem siga a direção do mouse, não siga infinitamente aquela direção, parando onde o ponto foi criado.
Hmm... o move_towards_point, então, define uma velocidade em direção, certo? Achei que ele só movia o objeto (estou meio enferrujado com as built-ins).

jpaulo escreveu:Se você estiver disposto a me ajudar, posso te mandar o jogo (por mp, não quero que todo mundo veja o jogo antes da hora :|), então você conserta e dou créditos sem problema Very Happy
Não são necessários créditos. Vamos manter como está, a gente procura isolar o problema (já foi feito, é o step do Obj_jogador que está mudando o sprite), você entende o que há de errado, corrige e fica com todos os créditos, ok?

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: Erros... alguém me ajuda?

Mensagem por jpaulo em Ter 06 Mar 2012, 09:05

tudo bem
Mas o acredito que o que há de errado é o step do player: ele diz que o player deve ficar parado, isso é: speed=0 e sprite_index=spr_parado. Isso meio que contradiz o codigo que diz que ele deveria mudar de sprite para a classe escolhida, certo?
Já tentei usar "return", mas não funcionou tbm. acredito que não deveria haver esse problema.

jpaulo

Número de Mensagens : 345
Data de inscrição : 21/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erros... alguém me ajuda?

Mensagem por saim em Ter 06 Mar 2012, 09:28

jpaulo escreveu:Mas o acredito que o que há de errado é o step do player: ele diz que o player deve ficar parado, isso é: speed=0 e sprite_index=spr_parado. Isso meio que contradiz o codigo que diz que ele deveria mudar de sprite para a classe escolhida, certo?
saim escreveu:Claro que, como o step do jogador manda a sprite ser spr_andando ou spr_parado, apertar os botões não terá um efeito durador (talvez nem tenha efeito nenhum, se o step do jogador acontecer depois do clique).
Exatamente. Você precisa dar um jeito de fazer a sprite dele para ser a sprite do personagem escolhido parado. Talvez armazenar essas sprites em variáveis globais e chamar essas variáveis no step, ao invés de fazer uma checagem caso-a-caso.

jpaulo escreveu:Já tentei usar "return", mas não funcionou tbm. acredito que não deveria haver esse problema.
Não entendi como "return" poderia ajudar, aqui. Mostre como você fez.

Estive relendo o step, tem uma passagem muito estranha:
Código:
if speed>0{sprite_index=spr_andando}else{if image_xscale=-1{sprite_index=spr_parado;}
else{sprite_index = spr_parado;image_xscale=1}}
Sugiro reler o código, melhorar a identação e ver o que você quis dizer com isso. Escreva em pseudocódigo, desenhe um fluxograma. Por exemplo, tem um pedaço aí que você diz: "se a escala não for negativa, então faça ela ser positiva". Ora, só existem (nesse caso) essas duas opções, então não há porque FAZER ela ser positiva se ela não for negativa.

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: Erros... alguém me ajuda?

Mensagem por jpaulo em Ter 06 Mar 2012, 10:00

saim escreveu: Talvez armazenar essas sprites em variáveis globais e chamar essas variáveis no step, ao invés de fazer uma checagem caso-a-caso.

Cara, deu certo. Genial da sua parte. Estou muito agradecido Smile

jpaulo

Número de Mensagens : 345
Data de inscrição : 21/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Erros... alguém me ajuda?

Mensagem por saim em Ter 06 Mar 2012, 11:10

Que bom que funcionou! Smile
Vou trancar o tópico, então. Se quiser reabrir, entre em contato com a moderação.

Aqui, é sério, dê uma relida nesse código, entenda tudo o que ele faz. Baixar uma engine pode ser perigoso, se você não souber o que está fazendo.

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: Erros... alguém me ajuda?

Mensagem por Conteúdo patrocinado Hoje à(s) 07:43


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