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


Girando em torno

4 participantes

Ir para baixo

Girando em torno Empty Girando em torno

Mensagem por chicoweb Qui 05 Dez 2013, 23:01

Galera to colocando a engine aqui,
Se trata do seguinte: tem tres morcegos e eles vao girar em torno do bichinho branco.
So que com o código que to usando, ele sobrepoe cada morcego e eles giram no mesmo lugar.
Queria que eles girassem em locais diferentes, aparecendo sem se um em cima do outro, por favor.


Download aqui!!!
chicoweb
chicoweb

Games Ranking : Nota C

Notas recebidas : B+C
Data de inscrição : 15/05/2012
Reputação : 49
Número de Mensagens : 675
Prêmios : Girando em torno Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 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

Girando em torno Empty Re: Girando em torno

Mensagem por Willy Qui 05 Dez 2013, 23:37

De acordo com seu código, a variável que especifica onde os morcegos devem ficar é a direção (direction). Em nenhum momento você definiu qual é a direction dos morcegos, logo, todos iniciam na mesma direção, ou seja, 0. Tudo o que você tem que fazer, é definir uma direção para cada morcego. Faça um teste simples... No create do morcego, coloque:
Código:
direction = irandom(360);
Com isso, seu problema está resolvido em parte.

Ainda sim, haverá a possibilidade de seus morcegos (por mera probabilidade) ficarem sobrepostos.
Então, adaptei sua engine e tornei o objeto controle, de fato, um objeto controle. É a partir dele que serão criados os morcegos e é ele que vai definir a direção dos morcegos, deixando tudo simétrico e garantindo que não ficarão sobrepostos independente da quantidade de morcegos.

Sem mais, aqui está:Download blz
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : Girando em torno Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

Girando em torno Empty Re: Girando em torno

Mensagem por fredcobain Qui 05 Dez 2013, 23:57

O que vc pretende é um movimento circular em torno de um objeto.

O código abaixo certamente resolve:
Evento CREATE:

Código:
raio = 100; //raio do giro. Alterne esse valor entre os objetos que vão ficar circulando para eles nao se sobreporem
xc = x;
yc = y;
angulo = 0;
Agora no Evento Step:

Código:
x = xc + lengthdir_x(raio, angulo);
y = yc + lengthdir_y(raio, angulo);
angulo += 1; //roda no sentido horário... alterne esse valor entre os objetos para variar a velocidade de cada um... valores negativos vão fazer mudar o sentido
if (angulo > 360) angulo = 0;


O código acima eu aprendi com o Vinians.

Agora se quiser algo mais nerd:
Código:
x = xc + cos(degtorad(angulo))*raio;
y = yc - sin(degtorad(angulo))*raio;
angulo += 1; //roda no sentido horário
if (angulo > 360) angulo = 0;
fredcobain
fredcobain

Games Ranking : Sem avaliações

Data de inscrição : 14/04/2011
Reputação : 163
Número de Mensagens : 692
Prêmios : Girando em torno Empty

Medalhas x 0 Tutoriais x 3 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

Girando em torno Empty Re: Girando em torno

Mensagem por Willy Sex 06 Dez 2013, 00:08

Fredcobain, o problema dele não era com o movimento, mas sim, o fato dos objetos estarem ocupando o mesmo espaço. Tanto é que no código dele, ele usou a "forma nerd". Veja a engine que ele deixou. investigador 

E só pra constar, não é necessário zerar o ângulo quando passar de 360. Razz
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : Girando em torno Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

Girando em torno Empty Re: Girando em torno

Mensagem por fredcobain Sex 06 Dez 2013, 00:13

É verdade!! Kkkkkkk
Isso é que dá nao baixar as engines...

Mass.... não seria só caso então dele variar o raio e a velocidade de acréscimo do ângulo para cada instância ?
fredcobain
fredcobain

Games Ranking : Sem avaliações

Data de inscrição : 14/04/2011
Reputação : 163
Número de Mensagens : 692
Prêmios : Girando em torno Empty

Medalhas x 0 Tutoriais x 3 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

Girando em torno Empty Re: Girando em torno

Mensagem por saim Sex 06 Dez 2013, 09:43

A solução do Willy (no primeiro post dele) me parece a mais adequada, quando se fala em objetos rodando em torno do outro. Uma simetria se faz necessária, nesses casos, e a simetria só é alcançada quando um único objeto controla a posição inicial dos demais. Daí, tanto faz se ele é quem vai controlar o resto das posições ou se cada instância toma conta de si.
Particularmente, eu gosto de usar um único objeto e controlar as instâncias a partir dele, mas isso é gosto pessoal.

MAS estamos falando de morcegos. Morcegos têm um movimento errático. De fato, colocar velocidades angulares aleatórias, raios de giro que aumentam e diminuem (senoidalmente), poxa, até variar a velocidade angular (senoidalmente também) e usar umas 5 ou mais instâncias de morcegos, batendo as asas, pode dar um efeito bem mais morcegástico do que usar simetria.

Como o fredcobain, eu não baixei a engine. Suponho que a vista seja top-down. Se não for, pode ser legal, também, alterar o depth dos morcegos a cada vez que ele chegue num extremo de trajetória. Mas isso é se não for top-down.
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Girando em torno Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Girando em torno Empty Re: Girando em torno

Mensagem por chicoweb Sex 06 Dez 2013, 11:01

Willy escreveu:De acordo com seu código, a variável que especifica onde os morcegos devem ficar é a direção (direction). Em nenhum momento você definiu qual é a direction dos morcegos, logo, todos iniciam na mesma direção, ou seja, 0. Tudo o que você tem que fazer, é definir uma direção para cada morcego. Faça um teste simples... No create do morcego, coloque:
Código:
direction = irandom(360);
Com isso, seu problema está resolvido em parte.

Ainda sim, haverá a possibilidade de seus morcegos (por mera probabilidade) ficarem sobrepostos.
Então, adaptei sua engine e tornei o objeto controle, de fato, um objeto controle. É a partir dele que serão criados os morcegos e é ele que vai definir a direção dos morcegos, deixando tudo simétrico e garantindo que não ficarão sobrepostos independente da quantidade de morcegos.

Sem mais, aqui está:Download blz
Galera valeu ai pela ajuda, os códigos de vcs ficaram show, mas como eu fiz o "Método Nerd", o código do Willy se encaixou melhor na engine.
Só que o código dele gerava aleatoriamente a posição, fiz um ajuste para ordenar os morcegos direitinho:

Código:
// assim SEPARA ELES - o 100 significa o quanto separa
x = object1.x + distancia * cos(degtorad(direction + (ind*100)));
y = object1.y + distancia * sin(degtorad(direction + (ind*100)));
Esse ind e uma variavel que criei no obj morcego, tipo ordem dele, indo de 1 ate 10.
Para isso tive que criar as instancia via código pelo obj_game_control:

Código:
       qatras = 10;
        for (i=0 ; i<=qatras ; i+=1){    
            obj[icont] = instance_create(0,0,object2);
            obj[icont].ind = icont;
        }
DOWNLOAD (MUDEI PARA GMS)
chicoweb
chicoweb

Games Ranking : Nota C

Notas recebidas : B+C
Data de inscrição : 15/05/2012
Reputação : 49
Número de Mensagens : 675
Prêmios : Girando em torno Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 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

Girando em torno Empty Re: Girando em torno

Mensagem por saim Sex 06 Dez 2013, 12:29

2 coisas:

no segundo código, substitua "icont" por "i" ou vice-versa. Senão sua array só vai ter um elemento. (onde vc definiu o valor de "icont"?)

se quiser separar os morcegos uniformemente, pode definir o ângulo de cada um como um divisor de 360:
Código:
// assim SEPARA ELES - o dAng significa o quanto separa
var dAng; dAng := 360 / qatras;
x = object1.x + distancia * cos(degtorad(direction + (ind*dAng)));
y = object1.y + distancia * sin(degtorad(direction + (ind*dAng)));
ou, na hora de criar mesmo:
Código:
       qatras = 10;
var dAng; dAng := 360 / qatras;
        for (i=0 ; i<=qatras ; i+=1){    
            obj[i] = instance_create(x + distancia * cos(degtorad(direction + (i*dAng))), y + distancia * sin(degtorad(direction + (ind*dAng))), object2);
            obj[i].ind = icont;
        }
saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Girando em torno Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

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

Ir para o topo Ir para baixo

Girando em torno Empty Re: Girando em torno

Mensagem por Willy Sex 06 Dez 2013, 12:46

Willy escreveu:Então, adaptei sua engine e tornei o objeto controle, de fato, um objeto controle. É a partir dele que serão criados os morcegos e é ele que vai definir a direção dos morcegos, deixando tudo simétrico e garantindo que não ficarão sobrepostos independente da quantidade de morcegos.
chicoweb escreveu:Só que o código dele gerava aleatoriamente a posição, fiz um ajuste para ordenar os morcegos direitinho:
Acredito que você não baixou minha engine... Nela os morcegos estão sendo criados da mesma forma que o saim fez, ou seja, pegando 360 e dividindo pela quantidade de morcegos. Depois, em um laço for, criando e definindo um direction para os morcegos de acordo com o resultado da divisão.
Willy
Willy

Games Ranking : Nota A

Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Reputação : 264
Número de Mensagens : 1890
Prêmios : Girando em torno Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://willy-gmbr.blogspot.com/

Ir para o topo Ir para baixo

Girando em torno Empty Re: Girando em torno

Mensagem por chicoweb Sex 06 Dez 2013, 17:01

Tá certo sim galera.

Melhorou ainda mais agora tá perfeita, o segredo eh dividir o 360 pela quantidade mesmo. o meu ate deu certo mas foi meio um chutometro kkkk.

Obrigado ae vcs pela ajuda.
chicoweb
chicoweb

Games Ranking : Nota C

Notas recebidas : B+C
Data de inscrição : 15/05/2012
Reputação : 49
Número de Mensagens : 675
Prêmios : Girando em torno Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 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

Girando em torno Empty Re: Girando em torno

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


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