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
» Colisões não funcionando
por RastaMaan Ontem à(s) 19:49

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Ontem à(s) 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

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21


atngir um alvo em movimento

2 participantes

Ir para baixo

atngir um alvo em movimento Empty atngir um alvo em movimento

Mensagem por Thyago Qui 15 Abr 2010, 22:25

uma vez eu estava fazendo um jogo de futebol e parei por um motivo.Quando um jogador do computador tocava para o outro ele mirava onde este jogador estava,mas como na maioria das vezes ele estava em movimento quando a bola chegava naquela posição o jogador não estava mais la.Então criei um script que calcula a velocidade da bola,a velocidade do outro jogador e com uma formula ele descobre onde eles vão se encontrar e manda la. coloque o script em step e use enter para (atirar lançar)
.escript feito por thyago(por mim)
Código:
/* este script serve para atingir um alvo em movimento*/
obj_tiro=obj_bola//substitua(obj_bola)pelo nome do objeto que sera lançado em direção ao alvo
obj_alvo=obj_jogador2//substitua(obj_jogador2)pelo nome do objeto que sera o alvo
velocidade_do_tiro=6 //(aqui voce coloca o valor que o objeto sera lançado ao alvo)
//não mexer a partir daqui///////////////////////////////////////////////////////////////
with(obj_tiro)if !variable_local_exists("raio") raio=31
obj_tiro.obj_alvo=obj_alvo                                                            //
obj_tiro.velocidade_do_tiro=velocidade_do_tiro                                        //
with(obj_tiro)//troque o nome object31 pelo nome do objeto lançado(nesse caso é a bola)//
{                                                                                      //
obj_alvo=obj_alvo                                                                //
ponto_de_encontro_x=obj_alvo.x+cos(-obj_alvo.direction*(0.0174))*raio
ponto_de_encontro_y=obj_alvo.y+sin(-obj_alvo.direction*(0.0174))*raio

alfa=raio/(obj_alvo.speed)
beta=distance_to_point(ponto_de_encontro_x,ponto_de_encontro_y)/velocidade_do_tiro
if alfa>(beta+32) raio-=32 if beta>(alfa+32) raio+=32
if alfa>(beta+16) raio-=16 if beta>(alfa+16) raio+=16
if alfa>(beta+8) raio-=8 if beta>(alfa+8) raio+=8
if alfa>(beta+1) raio-=1 if beta>(alfa+1) raio+=1
if alfa>(beta+0.1) raio-=0.1 if beta>(alfa+0.1) raio+=0.1

ponto_de_encontro_x=obj_alvo.x+cos(-obj_alvo.direction*(0.0174))*(raio*1.2)
ponto_de_encontro_y=obj_alvo.y+sin(-obj_alvo.direction*(0.0174))*(raio*1.2)
}
if keyboard_check_pressed(vk_enter)
{
obj_tiro.direction=point_direction(x,y,obj_tiro.ponto_de_encontro_x,obj_tiro.ponto_de_encontro_y)
obj_tiro.speed=velocidade_do_tiro
}                                                                                        //
//script end/////////////////////////////
Thyago
Thyago

Games Ranking : Nota B

Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Reputação : 31
Número de Mensagens : 1101
Prêmios : atngir um alvo em movimento Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 0

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

Ir para o topo Ir para baixo

atngir um alvo em movimento Empty Re: atngir um alvo em movimento

Mensagem por PedroX Sex 16 Abr 2010, 16:37

nossa vc é bom hein...
Nota 9.9!
Funcionou bem, so faltou um negocio...

Se a velocidade for 0 da erro de divisao por zero...
entao eu coloquei pra dividir pela speed + 0.001
para nao mudar o movimento e deu certo...
valeu!
voce ainda ta fazendo o jogo?

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : atngir um alvo em movimento Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Ir para o topo


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