Entrar
Últimos assuntos
» Problema ao entrar por uma porta e voltar por elapor aminaro Seg 06 maio 2024, 10:08
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43
» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
Meu player ataca rápido demais.
+4
Igor KinGamer
Henrique_GJ
tata139
PLinioX
8 participantes
Página 1 de 1
Meu player ataca rápido demais.
Bem, vocês devem estar cansados de ouvirem essa pergunta, como eu diminuo a "velocidade de ataque" do meu personagem? Simplesmente o ataque dele é na velocidade da luz!
Eu estou seguindo alguns tutos do reddragon (não ao pé da letra, não gosto de serguir guias assim e talvez por isso esteja bugando, mas que seja).
Vou disponibilizar o arquivo .exe aqui para verem como está o jogo, me digam o que querem, como por exemplo: O step do player, o step do pirata, o create de não sei quem, que seja, qualquer coisa, só pedir que eu edito e coloco aqui!
Link para download:http://ifile.it/w4sx5ja/Piratas.exe
Eu estou seguindo alguns tutos do reddragon (não ao pé da letra, não gosto de serguir guias assim e talvez por isso esteja bugando, mas que seja).
Vou disponibilizar o arquivo .exe aqui para verem como está o jogo, me digam o que querem, como por exemplo: O step do player, o step do pirata, o create de não sei quem, que seja, qualquer coisa, só pedir que eu edito e coloco aqui!
Link para download:http://ifile.it/w4sx5ja/Piratas.exe
PLinioX- Data de inscrição : 12/02/2010
Reputação : 0
Número de Mensagens : 11
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
Bom eu suspeirto que seja image_speed estou baixando depois edito.
tata139- Data de inscrição : 11/08/2008
Reputação : 3
Número de Mensagens : 1121
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
image_speed tá em 0.25
O problema não é a animação, o problema está nos "hits". A animação é normal, mas quando ele desenha, ele desenha um monte de "1", que é o meu ataque, e a vida dos piratas desce rápido demais ou então não desce, aí depois no outro ataque ele morre de uma vez só!
O problema não é a animação, o problema está nos "hits". A animação é normal, mas quando ele desenha, ele desenha um monte de "1", que é o meu ataque, e a vida dos piratas desce rápido demais ou então não desce, aí depois no outro ataque ele morre de uma vez só!
PLinioX- Data de inscrição : 12/02/2010
Reputação : 0
Número de Mensagens : 11
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
Baixa o jogo e vê qual o problema, você vai entender rapidinho!
PLinioX- Data de inscrição : 12/02/2010
Reputação : 0
Número de Mensagens : 11
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
Você colocou num evento de colisão para tirar a vida do inimigo?
Igor KinGamer- Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
por que você não usa no evento alarm?
donte- Data de inscrição : 22/12/2009
Reputação : 0
Número de Mensagens : 1165
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker Studio 2.0
- Unity
Re: Meu player ataca rápido demais.
coloque este código no create do jogador(player):
podematar = true
no código de ataque do jogador ao inimigo(pirata):
if (podematar = true)
{
código de ataque
podematar = false
alarm[0] = 5
em codigo do ataque coloque o codigo que tira a vida do inimigo
crie um evento Alarm - Alarm 0 e coloque esse código nele:
podematar = true
se vc não entender alguma coisa ou der algum erro me avisa
podematar = true
if (podematar = true)
{
código de ataque
podematar = false
alarm[0] = 5
crie um evento Alarm - Alarm 0 e coloque esse código nele:
podematar = true
Re: Meu player ataca rápido demais.
Obrigado agora já consigo fazer com que o ataque saia mais devagar, mas agora o problema é outro!
Meus piratas estão imortais, segue meu script para o ataque e desenho do "hit"
A variável "vida" é do pirata, que se chama obj_pirata, serve pra marcar quanto de vida ele ainda tem, se a vida for <=0 ele explode, mas agora eles não morrem mais.
Ai ai, que dor de cabeça que isso tá dando >.<
Meus piratas estão imortais, segue meu script para o ataque e desenho do "hit"
if (podematar = true){
podematar = false
alarm[1] = 5
if obj_player.atacando = true and podematar = true{
vida -= atk
if vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
}
dano = instance_create(x,y,obj_dano);
dano.dano = atk
}
A variável "vida" é do pirata, que se chama obj_pirata, serve pra marcar quanto de vida ele ainda tem, se a vida for <=0 ele explode, mas agora eles não morrem mais.
Ai ai, que dor de cabeça que isso tá dando >.<
PLinioX- Data de inscrição : 12/02/2010
Reputação : 0
Número de Mensagens : 11
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
o código abaixo está no alarm 1? se não coloque ele no alarm 1PLinioX escreveu:if (podematar = true){
podematar = false
alarm[1] = 5
if obj_player.atacando = true and podematar = true{
vida -= atk
if vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
}
dano = instance_create(x,y,obj_dano);
dano.dano = atk
}
podematar = true
e tente tirar o } dessa parte
dano = instance_create(x,y,obj_dano);
dano.dano = atk
}
Re: Meu player ataca rápido demais.
Você primeiro transforma a variável podematar em false ([1]) para depois testar se ela é true ([2]),o que se torna impossível:
if (podematar = true){
podematar = false/*[1]*/
alarm[1] = 5
if obj_player.atacando = true and podematar = true/*[2]*/{
vida -= atk
if vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
}
dano = instance_create(x,y,obj_dano);
dano.dano = atk
}
Você tem que transformá-la [1] no final do código e/ou parar de testar se podematar = true [2]. Independente de você transformar a variável em false no final ou não, esse teste é desnecessário, pois, para ele estar acontecendo, podematar tem que ser true (primeira linha do código).
Ou seja, o ideal seria deixar assim:
if (podematar = true){
alarm[1] = 5
if obj_player.atacando = true{
vida -= atk
if vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
}
dano = instance_create(x,y,obj_dano);
dano.dano = atk
podematar = false
}
podematar = false/*[1]*/
alarm[1] = 5
if obj_player.atacando = true and podematar = true/*[2]*/{
vida -= atk
if vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
}
dano = instance_create(x,y,obj_dano);
dano.dano = atk
}
Você tem que transformá-la [1] no final do código e/ou parar de testar se podematar = true [2]. Independente de você transformar a variável em false no final ou não, esse teste é desnecessário, pois, para ele estar acontecendo, podematar tem que ser true (primeira linha do código).
Ou seja, o ideal seria deixar assim:
alarm[1] = 5
if obj_player.atacando = true{
vida -= atk
if vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
}
dano = instance_create(x,y,obj_dano);
dano.dano = atk
podematar = false
}
Igor KinGamer- Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
http://ifile.it/0ur72ai/Piratas.gmk
Agora o erro é outro, mas cansei de tentar explicar por aqui, dá uma olhada aí e me diz o que tá errado >.<
Qualquer pessoa que puder me ajudar agradeço muito!
Agora o erro é outro, mas cansei de tentar explicar por aqui, dá uma olhada aí e me diz o que tá errado >.<
Qualquer pessoa que puder me ajudar agradeço muito!
PLinioX- Data de inscrição : 12/02/2010
Reputação : 0
Número de Mensagens : 11
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
Aqui, o erro que dá é o fato de eu não ter o GM pro...
Se esforça e tenta explicar o que tá dando errado (não roda mas dá para eu ver os códigos, posso tentar descobrir...)
Se esforça e tenta explicar o que tá dando errado (não roda mas dá para eu ver os códigos, posso tentar descobrir...)
Igor KinGamer- Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
Ok, agora quando eu ataco o problema é:
Bem, tá aí, é estranho, até porque ele lê essa variável em uma outra parte >.<
___________________________________________
ERROR in
action number 1
of Draw Event
for object obj_dano:
Error in code at line 1:
if obj_player.atacando = true {draw_text_color(x,y,string(dano),c_white,c_white,c_white,c_white,0.8 )}
^
at position 15: Unknown variable atacando
Bem, tá aí, é estranho, até porque ele lê essa variável em uma outra parte >.<
PLinioX- Data de inscrição : 12/02/2010
Reputação : 0
Número de Mensagens : 11
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
Você não "inicializou" a variável no começo do jogo.
Tente colocar esse código no evento Create do objeto do jogador:
Tente colocar esse código no evento Create do objeto do jogador:
- Código:
atacando = 0
guiagge- Data de inscrição : 24/09/2008
Reputação : 0
Número de Mensagens : 90
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
Achei o erro. Tem alguns erros na engine toda.
O código na colisão do player com o pirata está assim:
if (podematar = true){
alarm[1] = 11
if obj_player.atacando = true and podematar = true{
obj_pirata.vida -= atk
if obj_pirata.vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
}
podematar = false
dano = instance_create(x,y,obj_dano);
dano.dano = atk
}
Nesse código, dois erros:
obj_pirata.vida -= atk
if obj_pirata.vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
Primeiro: Esse código diminuirá a vida de todos os obj_pirata. Para diminuir só do que foi acertado, troque os "obj_pirata" por "other".
Segundo: Você está aplicando as funções effect_create_above() e instance_destroy() ao próprio player!!! Assim, ele é destruido e a variável atacando dele não existe mais, por isso dá aquele erro. Para aplicar ao pirata acertado, você tem que colocar with(other){effect_create_above([...]);instance_destroy()}.
Agora, no step do obj_pirata:
barra_vida = vida * 100 / 1
Primeiro, não tem nenhum motivo para dividir por 1, o que não muda o valor em nada. Segundo, como a variável vida começa em 1, um golpe já matará a criatura.
Sinceramente, francamente, é melhor você recomeçar esse sistema de ataque do início (mesmo arrumando o que eu disse, ele ainda tem erros), prestando bastante atenção ao que você está fazendo. Você tem que saber o que exatamente cada mísero código em cada objeto faz, assim, quando der um erro como esses, você poderá analisar e descobrir. Você tem que ter domínio total dos códigos do seu jogo, senão, terá sempre que vir aqui perguntar o que está dando erro.
O código na colisão do player com o pirata está assim:
alarm[1] = 11
if obj_player.atacando = true and podematar = true{
obj_pirata.vida -= atk
if obj_pirata.vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
}
podematar = false
dano = instance_create(x,y,obj_dano);
dano.dano = atk
}
Nesse código, dois erros:
if obj_pirata.vida <= 0{effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}
Primeiro: Esse código diminuirá a vida de todos os obj_pirata. Para diminuir só do que foi acertado, troque os "obj_pirata" por "other".
Segundo: Você está aplicando as funções effect_create_above() e instance_destroy() ao próprio player!!! Assim, ele é destruido e a variável atacando dele não existe mais, por isso dá aquele erro. Para aplicar ao pirata acertado, você tem que colocar with(other){effect_create_above([...]);instance_destroy()}.
Agora, no step do obj_pirata:
Primeiro, não tem nenhum motivo para dividir por 1, o que não muda o valor em nada. Segundo, como a variável vida começa em 1, um golpe já matará a criatura.
Sinceramente, francamente, é melhor você recomeçar esse sistema de ataque do início (mesmo arrumando o que eu disse, ele ainda tem erros), prestando bastante atenção ao que você está fazendo. Você tem que saber o que exatamente cada mísero código em cada objeto faz, assim, quando der um erro como esses, você poderá analisar e descobrir. Você tem que ter domínio total dos códigos do seu jogo, senão, terá sempre que vir aqui perguntar o que está dando erro.
Igor KinGamer- Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
Ok, vou refazer a engine, o problema é que eu tive que fazer alguns ajustes e como estava meio na pressa acabou ficano algumas coisas erradas =/
Estou refazendo, qualquer erro edito e posto aqui!
---EDIT---
Agora só falta eu ajeitar essa explosão do pirata, como eu faço explodir o pirata no script do player!?
Estou refazendo, qualquer erro edito e posto aqui!
---EDIT---
Agora só falta eu ajeitar essa explosão do pirata, como eu faço explodir o pirata no script do player!?
PLinioX- Data de inscrição : 12/02/2010
Reputação : 0
Número de Mensagens : 11
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
ai cara eu tambem tinhas problemas com isso mais eu usei.
- Código:
image_speed=0.25
Kronos- Data de inscrição : 10/02/2010
Reputação : 0
Número de Mensagens : 112
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
PLinioX escreveu:Agora só falta eu ajeitar essa explosão do pirata, como eu faço explodir o pirata no script do player!?
Eu escrevi ali em cima, você tem que colocar with(other){effect_create_above(...);instance_destroy();}
if obj_pirata.vida <= 0{with(other){effect_create_above(ef_explosion,x,y,0,c_red);instance_destroy()}}
Igor KinGamer- Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Meu player ataca rápido demais.
Muito obrigado pela sua ajuda, eu não tinha entendi muito bem o with(other), estou mandando o link do .exe e do .gmk, só pra ver como ficou o resultado final, e se possível me dar mais algumas dicas.
GMK: http://ifile.it/oyzedtc/Piratas.gmk
EXE: http://ifile.it/zom01x9/Piratas.exe
GMK: http://ifile.it/oyzedtc/Piratas.gmk
EXE: http://ifile.it/zom01x9/Piratas.exe
PLinioX- Data de inscrição : 12/02/2010
Reputação : 0
Número de Mensagens : 11
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|