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 Hoje à(s) 19:49

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


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

- Tópicos semelhantes

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