GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por 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


Atacando sem parar

5 participantes

Ir para baixo

Atacando sem parar Empty Atacando sem parar

Mensagem por jailson_dante Qui 11 Dez 2014, 19:43

Olá pessoal! Eu sou novo por aqui e não sou bom em GML e nem em Lógica, mas, to fazendo o impossível para aprender, então peço ajuda a todos. O jogo vai ser feito em TopDown e como na descrição diz, eu quero q o inimigo quando perto do player ataque de maneira pausada o meu código é esse:

no step do inimigo:

if (distance_to_object(ob_player)>15 and distance_to_object(ob_player)<150){
i_parado=false;
mp_potential_step(ob_player.x,ob_player.y,2,false);}
else{
i_parado=true;
speed=0;}
if (i_atacando=false and distance_to_object(ob_player)<=16){
image_index=0;
i_atacando=true;
alarm[0]=25}

no alarm0 do inimigo:

i_atacando=false;

como vocês podem ver eu uso um alarm mas, mesmo assim, quando o inimigo fica perto do player ele fica atacando sem parar, e só para quando o player se afasta dele.
jailson_dante
jailson_dante

Data de inscrição : 10/11/2014
Reputação : 0
Número de Mensagens : 15
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por Wendryos Qui 11 Dez 2014, 19:56

Eu não sei como ta no seu jogo, mas nos meus eu uso mais ou menos isso, espero que te ajude.


No create
Código:
paralisado = false

Na colisão dele com o player ou no ato de mudar a sprite para o ataque.

Código:
if paralisado = false
{
sprite_index = //Sua sprite de ataque ou do hp no players diminuindo Ex.: obj_player.hp -=5
alarm[0] = 5
}

no alarm[0]

Código:
paralisado = true;
alarm[1] = //Voce decide quando ele volta a atacar.

E finalmente no alarm[1]

Código:
paralisado = false;



Wendryos
Wendryos

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 21/04/2014
Reputação : 12
Número de Mensagens : 194
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por Sewer Crawler Qui 11 Dez 2014, 20:03

Não sei se entendi bem, mas no Evento Alarm vc pôs outro  
Código:
alarm[0]=25
?


Última edição por Sewer Crawler em Qui 11 Dez 2014, 20:15, editado 1 vez(es)
Sewer Crawler
Sewer Crawler

Data de inscrição : 08/10/2014
Reputação : 27
Número de Mensagens : 236
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por WellingtonBecker Qui 11 Dez 2014, 20:08

No alarme cada segundo é equivalente a 30 steps. Aumente para 120 e veja oque acontece.
WellingtonBecker
WellingtonBecker

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 09/05/2013
Reputação : 105
Número de Mensagens : 824
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por Wendryos Qui 11 Dez 2014, 20:49

Não tem erro isso, é só fazer do jeito que mostrei a ele, colocar uma variável para controlar o ataque, e utilizar dois alarms para alterar essa variável.

O inimigo só vai atacar se a variável estiver em false, então ele controla o tempo Ex: A cada 30 steps ele ataca.
Wendryos
Wendryos

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 21/04/2014
Reputação : 12
Número de Mensagens : 194
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por jailson_dante Qui 11 Dez 2014, 21:32

Wendryos - Black Horn, obrigado por ajudar e desculpa pela falta de coerência. Eu tentei a adaptar o seu condigo no meu mas não deu certo. Vou mostrar o condigo completo:

no creat do inimigo ta assim:

i_parado=true; // controla a animação e o estado do inimigo se ele esta parado ou nao.
i_atacando=false; // controla a animaçao e o estado do inimigo se ele esta atacando ou nao,

no step eu coloquei assim: obs o step quase completo.

i_angulo=round(point_direction(x,y,ob_player.x,ob_player.y)/45)*45; // faz com que o inimigo fique olhando para o player

switch (i_angulo){ // controla a troca de sprites
case(0):
if (i_atacando=false){
if (i_parado=false){
sprite_index=sp_inim_a_d;}
else{
sprite_index=sp_inim_p_d;}}
else{
sprite_index=sp_inim_at_d;
instance_create(x+22,y,ob_hit);}
break;

case(45):
if (i_atacando=false){
if (i_parado=false){
sprite_index=sp_inim_dia_c_d_a;}
else{
sprite_index=sp_inim_dia_c_d_p;}}
else{
sprite_index=sp_inim_dia_c_d_at;
instance_create(x+22,y-16,ob_hit);}
break; // e assim vai até completar os 360º

if (distance_to_object(ob_player)>15 and distance_to_object(ob_player)<150){
i_parado=false;
mp_potential_step(ob_player.x,ob_player.y,2,false);}
else{
i_parado=true;
speed=0;}// quando o player estiver numa certa distancia entre 15 e 150 pixels o inimigo o segue se nao ele para de seguir.

if (i_atacando=false and distance_to_object(ob_player)<=16){
image_index=0;
i_atacando=true;
alarm[0]=25}// aqui é onde acho q ta o erro. Repetindo: "eu acho" kkk

e no alarm0:

i_atacando=false; // torna a variavel de true para false.

Por favor, mim ajudem ainda sou leigo.
jailson_dante
jailson_dante

Data de inscrição : 10/11/2014
Reputação : 0
Número de Mensagens : 15
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por Sewer Crawler Qui 11 Dez 2014, 22:37

Quando for postar código, clique nesse ícone.
Mais fácil de analisar.
Atacando sem parar 2hwhgyb
Sewer Crawler
Sewer Crawler

Data de inscrição : 08/10/2014
Reputação : 27
Número de Mensagens : 236
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por Wendryos Qui 11 Dez 2014, 22:40

Me envia seu GMK caso se usa o GM8, posso tentar resolver isso, porque ta meio confuso(pra min).



Espera, Ne cada movimentação dele ele ataca?(obj_hit)

Wendryos
Wendryos

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 21/04/2014
Reputação : 12
Número de Mensagens : 194
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por jailson_dante Qui 11 Dez 2014, 22:51

esse "obj_hit" é uma caixa de colisâo q futuramente sera usada para tirar o hp do player.

vou te enviar o gmk por favor nao olhe pra bagunca de sprites.
jailson_dante
jailson_dante

Data de inscrição : 10/11/2014
Reputação : 0
Número de Mensagens : 15
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por Wendryos Qui 11 Dez 2014, 22:56

Ok Jailson.
Wendryos
Wendryos

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 21/04/2014
Reputação : 12
Número de Mensagens : 194
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por jailson_dante Qui 11 Dez 2014, 22:58

http://www.4shared.com/rar/eaJ9YqD-ce/rpgteste01gmx.html
jailson_dante
jailson_dante

Data de inscrição : 10/11/2014
Reputação : 0
Número de Mensagens : 15
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por Wendryos Qui 11 Dez 2014, 23:02

Eu não tenho o Studio, só o GM8, não vai dar de baixar.

Mas já me adianta uma coisa, esse código ai é do personagem(player) ou do inimigo?
Wendryos
Wendryos

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 21/04/2014
Reputação : 12
Número de Mensagens : 194
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por jailson_dante Qui 11 Dez 2014, 23:05

é do inimigo.
jailson_dante
jailson_dante

Data de inscrição : 10/11/2014
Reputação : 0
Número de Mensagens : 15
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por Wendryos Qui 11 Dez 2014, 23:11

No create

Código:
paralisado = false

No Step

Código:
if (i_atacando=false and paralisado=false and distance_to_object(ob_player)<=16){
image_index=0;
i_atacando=true;
alarm[0]=25}

No alarm[0]

Coloca

Código:
paralisado=true
alarm[1] = 25


No alarm[1]

Código:
paralisado=false



Com isso ele só vai fazer o ataque se a variavel paralisado estiver false, oque ocorre a cada 25 steps.
Wendryos
Wendryos

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 21/04/2014
Reputação : 12
Número de Mensagens : 194
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por jailson_dante Qui 11 Dez 2014, 23:27

Wendryos - Black Horn o seu código pra mim esta muito certo, e agradeço muito pela sua paciencia, mas não sei porque não funcionou, não surtiu efeito nenhum (q estranho). vou dormir agora e deixo o tópico em aberto.
Obrigado a todos e boa noite!
jailson_dante
jailson_dante

Data de inscrição : 10/11/2014
Reputação : 0
Número de Mensagens : 15
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por Wendryos Qui 11 Dez 2014, 23:29

Creio que seja pelo seu código do step, mas preciso dormir também, amanha trabalho cedo, caso ninguém tiver resolvido, amanha eu volto a tentar te ajudar. Boa noite.
Wendryos
Wendryos

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 21/04/2014
Reputação : 12
Número de Mensagens : 194
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por makgamer Sex 12 Dez 2014, 01:40

Seu erro está no script de sprites para ângulo...
Basicamente você programou pra caso o player estiver perto a variável atacando ficar True, mas no script de sprites você disse que caso ela esteja True o sprite mude pro de ataque e crie o objeto de colisão do ataque, o problema é que durante os 25 steps que o alarme é chamado a variável fica positiva, o que faz com que o objeto fique sendo criado e o sprite fique repetindo até que o alarme negativa a variável e isso para, mas aí o step deixa positivo de novo e gera um ciclo vicioso. Estou com sono então amanhã explico como resolve isso...
makgamer
makgamer

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 29/03/2009
Reputação : 7
Número de Mensagens : 941
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 2.0
  • Unity
  • Java
  • C#
  • Javascript
  • RPG Maker
  • C ou C++
  • Outros


Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por jailson_dante Sex 12 Dez 2014, 10:37

Bom dia pessoal! Eu consegui resolver o problema com a ajuda de todos e principalmente do nosso amigo Wendryos - Black Horn. vou explicar como:

no creat do inimigo:

Código:
i_parado=true;
i_atacando=false;
pode_atacar=true;

no step do inimigo (aquela linha que eu achava q estava errada):

Código:
if (pode_atacar=true){
if (distance_to_object(ob_player)<=16){
image_index=0;
i_atacando=true;
pode_atacar=false;
alarm[0]=5;}} // coloquei esse valor no alarm0 pq se eu colocar um valor maior o inimigo executa mais de um ataque.

e no alarm0 do inimigo:

Código:
i_atacando=false;
alarm[1]=30;//Faz com que a variavel q controla o tempo da pausa entre ataques "pode_atacar" mude o seu valor a cada 30 steps.

e no alarm1 do inimigo:

Código:
pode_atacar=true;// onde o valor de false passa a ser true para da o comando do proximo ataque.

Então por enquanto é isso pessoal, mais uma vez agradeço a todos. Tópico resolvido
jailson_dante
jailson_dante

Data de inscrição : 10/11/2014
Reputação : 0
Número de Mensagens : 15
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por Sewer Crawler Sex 12 Dez 2014, 13:35

Tenho umas engines nos quais os inimigos agem parecido. Se quiser te passo os links.


Última edição por Sewer Crawler em Sex 12 Dez 2014, 13:54, editado 1 vez(es)
Sewer Crawler
Sewer Crawler

Data de inscrição : 08/10/2014
Reputação : 27
Número de Mensagens : 236
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por Wendryos Sex 12 Dez 2014, 13:38

Que bom Jailson que conseguimos te ajudar, se precisar é só postar sua duvida que tentaremos saná-las.
Wendryos
Wendryos

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 21/04/2014
Reputação : 12
Número de Mensagens : 194
Prêmios : Atacando sem parar Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1

Ir para o topo Ir para baixo

Atacando sem parar Empty Re: Atacando sem parar

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos