Conectar-se
Quem está conectado
29 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 29 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota B
Notas recebidas : B-C
Data de inscrição : 02/05/2012
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Como fazer uma atração magnética

em Dom 12 Ago 2012, 20:02
Olá, gostaria de saber como posso fazer para atrair objetos para o personagem!
Conseguem entender? Tipo, moedas são puxadas magneticamente pelo personagem!
avatar
Ranking : Nota A
Notas recebidas : C+A+A+B+A
Data de inscrição : 10/09/2010
Número de Mensagens : 426
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 10

Prêmios
   : 2
   : 2
   : 0
Ver perfil do usuáriohttp://williammustaffa.blogspot.com

Re: Como fazer uma atração magnética

em Dom 12 Ago 2012, 20:11
Você pode usar gravity_direction, definindo player como centro da gravidade assim:
Código:

gravity=1 //força da gravidade
gravity_direction=point_direction(x,y,obj_player.x,obj_player.y)
avatar
Ranking : Nota A
Notas recebidas : A
Data de inscrição : 13/10/2011
Número de Mensagens : 106
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://bigleafeater.tumblr.com/

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 13:30
Também pode adicionar vetores em direção do player:

No código step do player:
if instance_exists(moeda){
with(moeda){
if point_distance(x,y,other.x,other.y) < 100{
motion_add(point_direction(x,y,other.x,other.y), velocidade)
}
}
}

Para entender o código é simples:
Na primeira linha eu determinei que se a distância for menor do que 100 pixels, a próxima linha será executada.

Em seguida eu coloquei um "With" para executar um código no Objeto.

e, por fim, eu fiz com que o objeto moeda executasse a ação de magnetismo que é uma função chamada "motion_add()" que adiciona vetores no objeto para que ele se movimente.

ps: Substitua "player" pelo nome do seu personagem, "moeda" pelo nome da sua moeda e velocidade pela aceleração que você deseja.


Espero que tenha ajudado!


Última edição por Thomaz em Seg 13 Ago 2012, 21:18, editado 3 vez(es)
avatar
Ranking : Nota D
Notas recebidas : D + D
Data de inscrição : 06/04/2012
Número de Mensagens : 682
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 42

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 14:36
se for Top Down fasa isso, va no obj que vc quer que seja levado ate o player, cria o evento step nele e add o seguint codigo:

Código:
if distance_to_object(obj_player)<10//se a distancia do objeto player for menor que 10 pixels
{
mp_potential_step(obj_player.x,obj_player.y, 1 , false)// eu vou atras dele.
}

e pronto.

qualquer duvida so falar.
avatar
Ranking : Nota B
Notas recebidas : B-C
Data de inscrição : 02/05/2012
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 18:53
Galerinha, é o seguinte, minhas moedas no caso são estrelas, e o que está acontecendo é que as "moedas" estão evitando o foguete(player), não indo de encontro a ele(Isto no código do willcraft2), já nos dois códigos acima, o que acontece, é que na hora de rodar o jogo, um erro aparece dizendo que a variável "x" não foi encontrada, eu dei uma mudada no código mais, daí ele não dava erro, mas também não fazia nada além do normal!
Se vocês pudessem estar me ajudando aí eu agradeço, Aqui vai um print do meu jogo p vc terem uma noção!
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 19:42
No Step do objeto estrela coloque o código do William Lima.

Obs: substitua obj_player pelo nome do objeto que é o player.

Até mais!
avatar
Ranking : Nota B
Notas recebidas : B-C
Data de inscrição : 02/05/2012
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 19:58
Pedrø escreveu:No Step do objeto estrela coloque o código do William Lima.

Obs: substitua obj_player pelo nome do objeto que é o player.

Até mais!

Não cara, eu já fiz isso, mas de todo jeito não acontece nd!

Mas vlw ae!
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 20:07
Clique no botão Show Information do objeto player e do estrela. Copie ambas as informações e poste aqui, em spoilers, se forem grandes.
avatar
Ranking : Nota D
Notas recebidas : D + D
Data de inscrição : 06/04/2012
Número de Mensagens : 682
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 42

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 20:20
@gabrielalves_3.0 escreveu:
Pedrø escreveu:No Step do objeto estrela coloque o código do William Lima.

Obs: substitua obj_player pelo nome do objeto que é o player.

Até mais!

Não cara, eu já fiz isso, mas de todo jeito não acontece nd!

Mas vlw ae!

Olha cara fiz uma engine.
avatar
Ranking : Nota B
Notas recebidas : B-C
Data de inscrição : 02/05/2012
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 20:29
Spoiler:
Information about object: obj_estrela

Sprite: spr_estrela
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Mask:

Create Event:
execute code:

image_speed=0.5


set the vertical speed relative to 2

Collision Event with object obj_fogo_parado:
for all Variaveis: set variable global.pontos relative to 10
change the instance into object obj_10pt, yes performing events

Collision Event with object obj_protegido:
change the instance into object obj_10pt, yes performing events
for all Variaveis: set variable global.pontos relative to 10


Spoiler:

Information about object: obj_fogo_parado

Sprite: spr_fogo_parado
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Mask:

Keyboard Event for Key:
start moving in directions 000100000 with speed set to 12

Keyboard Event for Key:
start moving in directions 000001000 with speed set to 12

Other Event: Outside Room:
restart the current room with transition effect Fade out and in
play sound sound4; looping: false

Key Release Event for Key:
start moving in directions 000010000 with speed set relative to -4

Key Release Event for Key:
start moving in directions 000010000 with speed set relative to -4
avatar
Ranking : Nota B
Notas recebidas : D+A+B
Data de inscrição : 16/01/2012
Número de Mensagens : 787
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 7

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://need90games.blogspot.com.br

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 20:45
coloca assim no objeto estrela ou moeda seila :
Código:
if distance_to_object(obj_playe)<=25{/*Se a distancia entre a estrela e o player for menorque 25, a estrela sera puxada para o player*/
move_towards_point(obj_player.x,obj_player.y,1)}
É tão simples...

Ps : Aqui tem o download de uma engine que fiz no início do ano :
https://dl.dropbox.com/u/46263990/Atration.gmk
avatar
Ranking : Nota B
Notas recebidas : B-C
Data de inscrição : 02/05/2012
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 21:28
Olha só, a mesma imagem que eu coloquei antes, agora com esse código:

if distance_to_object(obj_player)<=25{
move_towards_point(obj_player.x,obj_player.y,1)
}
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 21:40
Código:
gravity_direction = point_direction(x, y, player.x, player.y);
gravity = abs( 0.25 / sin(degtorad(gravity_direction)) );

Pode substituir o 0.25 por um valor que desejar.

Testa e me fala se deu certo. Acabei de fazer o código, então não tenho certeza se funciona.
avatar
Ranking : Nota B
Notas recebidas : B-C
Data de inscrição : 02/05/2012
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 21:53
Bem, ele diz que a variável x é desconhecida!
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 22:02
É que você deve substituir player.x e player.y por nome_objeto.x e nome_objeto.y.

Não vá colocar nome_objeto, mas sim o nome do objeto.

Até mais!
avatar
Ranking : Nota B
Notas recebidas : B-C
Data de inscrição : 02/05/2012
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 22:15
Hehe, eu sei, eu sei... Foi o que eu fiz!
Não tenho idéia porque está dando errado!
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Seg 13 Ago 2012, 22:54
Os objetos estão todos na room?

Coloque antes do código:

Código:
if instance_exists(nome_do_objeto)
{
código aqui
}
avatar
Ranking : Nota A
Notas recebidas : A
Data de inscrição : 25/02/2012
Número de Mensagens : 359
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 15

Prêmios
   : 0
   : 1
   : 1
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Ter 14 Ago 2012, 00:02
Não sei se você ja resolveu seu problema mas acho que não pois b=você não disse nada a resepeito!
Fiz uma engine que con certesa vai te ajudar usei o codigo que o willcraft2 postou.

Controles: Espaco acelera, setas esquerda e direita viram.

Aqui o link:
Engine de Exemplo

Flws mano precisando tamo ai...
avatar
Data de inscrição : 26/03/2011
Número de Mensagens : 101
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 9

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Ter 14 Ago 2012, 16:16
Coloque isso na step da estrela:
Código:
if distance_to_object(obj_personagem)<120
{move_towards_point(obj_personagem.x,obj_personagem.y,3)}
Espero que ajude.
Boa sorte
avatar
Ranking : Nota B
Notas recebidas : B-C
Data de inscrição : 02/05/2012
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Como fazer uma atração magnética

em Ter 14 Ago 2012, 21:28
O problema só pode ser que o que movimenta são os objetos da cena, e o fundo, o foguete fica parado, então eu tive que usar o vertical speed nos objetos, isso deve estar atrapalhando!!

Eu vou fazer refazer tudo, pra poder dar certo! Mas valeu ai, todo mundo pela ajuda!
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum