Como mover um objeto atraves de outro objeto?

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Como mover um objeto atraves de outro objeto?

Mensagem por henriquebr em Dom 15 Jan 2012, 15:43

Olá pessoal, a minha questao é essa:
Como mover um objeto atraves de outro objeto? (titulo)
tipo, eu seleciono um objeto (clico o mouse nele) ai blz, fica com uma borda quadrada vermelha (tb queria saber como faz isso) ai o outro objeto, ja sabe que ele vai mover ele (pq ele e universal, xD) ai clicando por cima do outro objeto, ele move ele, mas como faz (tb respondam a outra questao).

p.s.: eu sei que se eu usar o:
Código:
with(obj){
direção que sera movida}

mas se eu colocar o objeto la, ele iria mover todos, nao o que eu quero, pq tem varios objectos iguais na room........


Última edição por henriquebr em Dom 15 Jan 2012, 15:51, editado 1 vez(es)

henriquebr

Ranking : Nota D
Número de Mensagens : 421
Data de inscrição : 03/10/2011
Notas recebidas : D+B+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por Davichococat em Dom 15 Jan 2012, 15:49

Código:

With (object){
action ;
}

Traduzindo:

Código:

Com (o objeto x) {
fazer isso;
}

É muito simples. Eu uso pouco o With, porque sou viciado em variáveis. Você pode fazer como eu também, e usar Globais, mas cuidado com o consumo de memória.

Davichococat

Número de Mensagens : 182
Data de inscrição : 29/12/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.google.com

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por CLT em Dom 15 Jan 2012, 15:51

Você pode criar variáveis para andar:

No Create:

Código:
direita=false
esquerda=false

No Step:

Código:
if direita=true
{
if place_free(x+5,y){x+=5}
}
if esquerda=true
{
if place_free(x-5,y){x-=5}
}

E no objeto que fará esse objeto andar:

No Evento Keyboard right:

Código:
direita=true

No Evento Keyboard left:

Código:
esquerda=true

Não testei mas deve dar certo.

CLT

Ranking : Nota C
Número de Mensagens : 343
Data de inscrição : 06/01/2012
Notas recebidas : B-D
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://equipeevolution.forumeiros.com/

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por henriquebr em Dom 15 Jan 2012, 15:53

acabei de editar a minha questao (vc mandou a msg na hora que eu fui postar).

henriquebr

Ranking : Nota D
Número de Mensagens : 421
Data de inscrição : 03/10/2011
Notas recebidas : D+B+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por saim em Dom 15 Jan 2012, 16:02

Não entendi muito bem a pergunta, mas acho que o que você precisa é explicar pra instância que é pra ela se mover.

Pode fazer isso usando uma variável da instância (éPraMover = true/false). Se éPraMover == true, então move, senão, não. Daí, no evento de clicar você altera o valor da variável.

Pode fazer isso também definindo uma variável em algum controller, contendo a id da(s) instância(s) a ser(em) movida(s). Quando for pra mover, use o with, mas com essa id ao invés do nome do objeto.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por henriquebr em Dom 15 Jan 2012, 16:05

sim eu sei, e como eu falei: se eu definir o objeto no with, ele vai mover ele, ok, mas tem arios objetos iguais na room, entao ele irei mover todos, so queria mover, o qual eu selecionar pelo mouse(que tb queria a explicação de comofzr isso).

henriquebr

Ranking : Nota D
Número de Mensagens : 421
Data de inscrição : 03/10/2011
Notas recebidas : D+B+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por saim em Dom 15 Jan 2012, 16:25

Acho que você deixou passar a parte de usar a instância, não o objeto, dentro do with. Por exemplo, defina uma variável global. Vamos chamá-la de "queVaiMover". Ao clicar sem estar em nenhum objeto, quemVaiMover=noone. Aí você clica numa instância. Nesse clique, você define quemVaiMover = idDaInstância (pode usar instance_position(mouse_x, mouse_y, objeto), pra saber essa id). No movimento, coloque
Código:
if quemVaiMover != noone){
with(quemVaiMover{
//move
}
}

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por henriquebr em Dom 15 Jan 2012, 16:56

mas eu defino isso:
quemVaiMover = idDaInstância
em que objecto? e em que evento?

e o que significa noone? defino a variavel aonde? estou confuso scratch

p.s.: pode fzr uma engine? What a Face

henriquebr

Ranking : Nota D
Número de Mensagens : 421
Data de inscrição : 03/10/2011
Notas recebidas : D+B+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por PedroX em Dom 15 Jan 2012, 19:09

Coloque no objeto que move o evento de clique do mouse:
Código:
if (universal.selecionado)
mover

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por Mr.Brum em Dom 15 Jan 2012, 19:22

Cara, ontem eu fiz uma engine parecida, pra um cara que tava com uma dúvida quase igual a sua:
http://dl.dropbox.com/u/43446077/JOGOS/engines/engine%20parar%20um%20objeto%20por%20id%20com%20mouse%20sobre%20ele.gmk

Nela, eu criei uma variável (global.selected), ao clicar numa das bolas eu pego o id dela,observe que é o mesmo objeto, mas com várias instâncias.
No step da bola, eu tenho a condição de parar ela por 10 segundos,caso o id dela seje o mesma que está na global.selected.

Acho que se vc entender como ela funciona, vai conseguir aplicar isso ao seu jogo facilmente.




Mr.Brum

Ranking : Nota C
Número de Mensagens : 913
Idade : 25
Data de inscrição : 28/04/2011
Notas recebidas : D + D + C + C + D + B
Reputação : 41
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://mrbrumgames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por henriquebr em Seg 16 Jan 2012, 12:04

hmm, mrbrum22 sua engine e muinto boa, mas nao deu pra mim entender direito, vou mandar a engine p/ vcs e se puder, consertem o erro, o que eu quero, e que dependendo da posição das setas, ele mova, e como base na questao que eu fiz, vlw!
aqui esta o link: http://www.4shared.com/file/Bx-PD6sx/my_game.html

henriquebr

Ranking : Nota D
Número de Mensagens : 421
Data de inscrição : 03/10/2011
Notas recebidas : D+B+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por saim em Seg 16 Jan 2012, 14:23

henriquebr escreveu:mas eu defino isso:
quemVaiMover = idDaInstância
em que objecto? e em que evento?
saim escreveu:Ao clicar sem estar em nenhum objeto, quemVaiMover=noone. Aí você clica numa instância. Nesse clique, você define quemVaiMover = idDaInstância

henriquebr escreveu:e o que significa noone? defino a variavel aonde? estou confuso scratch
"noone" significa "ninguém". É um objeto especial do game maker, indica que aquela variável não corresponda a nenhuma instância. Mais informações no meu tutorial sobre variáveis, na assinatura.

henriquebr escreveu:p.s.: pode fzr uma engine? What a Face
Não

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por henriquebr em Seg 16 Jan 2012, 15:33

hmm, agora entendi, mas nao sei como colocar, lool que dor de cabeça ¬¬ ainda espero uma pessoa de bom gosto que arrume a minha engine Smile

henriquebr

Ranking : Nota D
Número de Mensagens : 421
Data de inscrição : 03/10/2011
Notas recebidas : D+B+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por saim em Seg 16 Jan 2012, 15:39

henriquebr escreveu:hmm, agora entendi, mas nao sei como colocar
Nos eventos do mouse.
henriquebr escreveu:ainda espero uma pessoa de bom gosto que arrume a minha engine Smile
Arrumem a engine pra ele aí, moçada!

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por henriquebr em Seg 16 Jan 2012, 19:36

obrigado pela incentivassao @sain abraço

henriquebr

Ranking : Nota D
Número de Mensagens : 421
Data de inscrição : 03/10/2011
Notas recebidas : D+B+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por Davichococat em Seg 16 Jan 2012, 19:42

Olha só, amigo, parece um bom desafio, vou tentar fazer a engine. Mas, primeiro, explique-me algumas coisas porque a mensagem estava bem confusa.

Pelo o que eu entendi, é para fazer isso:
Uma engine que clico em um objeto, ele fica selecionado. Se eu clicar em um lugar vazio e ele estiver selecionado, ele se move até a posição que foi clicada.

Ou... :
Clico em um objeto, ele fica selecionado, clico em outro, ele se move até lá.

Explica aí, amigo, estou interessado em fazer a engine!

Davichococat

Número de Mensagens : 182
Data de inscrição : 29/12/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.google.com

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por henriquebr em Seg 16 Jan 2012, 20:01

ola, muinto obrigado pela ajuda!
o que eu queria era editar [url=http://adf.ly/246619/]essa[/url] engine assim:
pode ver que tem 4 setas, uma pra cima, uma pra baixo, direita e outra pra esquerda, pode-se ver tb que o obj_bloco e apenas um, ai eu queria espalhar eles pela room, e ao clicar em determinada seta movia ele (seta pra cima, move ele pra cima, etc...) so que eu to meio confuso nesse negocio de id's e variaveis, ai eu queria ajuda com isso, vlw!

henriquebr

Ranking : Nota D
Número de Mensagens : 421
Data de inscrição : 03/10/2011
Notas recebidas : D+B+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por Davichococat em Seg 16 Jan 2012, 20:03

O link não funciona. Você redirecionou para o próprio adf.ly.

Davichococat

Número de Mensagens : 182
Data de inscrição : 29/12/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.google.com

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por henriquebr em Seg 16 Jan 2012, 20:08

opa, mil desculpas, aqui ta o link: www.4shared.com/file/Bx-PD6sx/my_game.html


Última edição por henriquebr em Seg 16 Jan 2012, 20:11, editado 1 vez(es)

henriquebr

Ranking : Nota D
Número de Mensagens : 421
Data de inscrição : 03/10/2011
Notas recebidas : D+B+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por vinians em Seg 16 Jan 2012, 20:10

Amigo, vc pode fazer assim oh:
No Evento Create do objBloco coloque:
Código:

selecionado = false;
No Evento OnMouseClick (mouse clicou) coloque:
Código:

with (objBloco)
{
  selecionado = false; //os outros ficam nao selecionados
}
selecionado = true; //seleciona apenas este que clicou

Agora no Evento Draw (para mostrar a selecao)
Código:

draw_sprite(sprite_index, image_index, x, y);
if (selecionado)
{
  draw_set_color(c_red);
  draw_rectangle(x, y, x + sprite_width, y + sprite_height, true);
//assumindo que nao esteja centralizado
}
Agora no objeto onde vc controla as setas de movimento:
Código:

var sel;
sel = noone;
with (objBloco)
{
  if (selecionado) other.sel = id;
}
if (sel != noone)
{
  if (keyboard_check(vk_left) sel.x -= 4;
  if (keyboard_check(vk_right) sel.x += 4;
  if (keyboard_check(vk_up) sel.y -= 4;
  if (keyboard_check(vk_down) sel.y += 4;
}
Amigo, não testei, mas provavelmente funciona.
Boa sorte ai!
flws!


Última edição por vinians em Seg 16 Jan 2012, 20:25, editado 1 vez(es)

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por Davichococat em Seg 16 Jan 2012, 20:16

@henriquebr
Simplesmente não funciona, é só algumas sprites na tela que não fazem nada. E o F1 está vazio. Poderia me explicar? Você está mandando um exemplo de engine que você quer ou o seu progresso atual?

Davichococat

Número de Mensagens : 182
Data de inscrição : 29/12/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.google.com

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por henriquebr em Seg 16 Jan 2012, 20:20

amigo, quando eu coloco esse codigo na setas:
Código:
var sel;
sel = noone;
with (objBloco)
{
  if (selecionado) sel = id;
}
if (sel != noone)
{
  if (keyboard_check(vk_left) sel.x -= 4;
  if (keyboard_check(vk_right) sel.x += 4;
  if (keyboard_check(vk_up) sel.y -= 4;
  if (keyboard_check(vk_down) sel.y += 4;
}
ele move as propias setas, e nao o bloco scratch

Davichococat escreveu:@henriquebr
Simplesmente não funciona, é só algumas sprites na tela que não fazem nada. E o F1 está vazio. Poderia me explicar? Você está mandando um exemplo de engine que você quer ou o seu progresso atual?

e isso mesmo, ela nao move, maos assima eu expliquei o que eu quero...


Última edição por henriquebr em Seg 16 Jan 2012, 20:29, editado 1 vez(es)

henriquebr

Ranking : Nota D
Número de Mensagens : 421
Data de inscrição : 03/10/2011
Notas recebidas : D+B+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por PlayStationGM em Seg 16 Jan 2012, 20:22

Cara, refazer os códigos seria uma boa.
Talvez refazendo, você encontra o erro..
Boa sorte amigo!

PlayStationGM

Número de Mensagens : 7
Data de inscrição : 16/01/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por vinians em Seg 16 Jan 2012, 20:27

henriquebr escreveu:amigo, quando eu coloco esse codigo na setas:
Código:
var sel;
sel = noone;
with (objBloco)
{
  if (selecionado) sel = id;
}
if (sel != noone)
{
  if (keyboard_check(vk_left) sel.x -= 4;
  if (keyboard_check(vk_right) sel.x += 4;
  if (keyboard_check(vk_up) sel.y -= 4;
  if (keyboard_check(vk_down) sel.y += 4;
}
ele move as propias setas, e nao o bloco scratch
Oops amigo, tinha um bug. Troque por :
Código:

with (objBloco)
{
  if (selecionado) other.sel = id;
}
if (sel != noone)
{
  if (keyboard_check(vk_left) sel.x -= 4;
  if (keyboard_check(vk_right) sel.x += 4;
  if (keyboard_check(vk_up) sel.y -= 4;
  if (keyboard_check(vk_down) sel.y += 4;
}
Se os nomes dos objetos estiverem corretos vai funcionar.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por henriquebr em Seg 16 Jan 2012, 20:31

ainda sim, continua movendo as setas...
baixe e comprove: http://www.4shared.com/file/MA8LbprG/my_game_2.html

henriquebr

Ranking : Nota D
Número de Mensagens : 421
Data de inscrição : 03/10/2011
Notas recebidas : D+B+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por vinians em Seg 16 Jan 2012, 20:41

Amigo, fiz a engine pra voce do jeito que lhe falei
Download aqui
Testei aqui e tudo ok!
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por henriquebr em Seg 16 Jan 2012, 20:45

vinians escreveu:Amigo, fiz a engine pra voce do jeito que lhe falei
Download aqui
Testei aqui e tudo ok!
Flws!

vc fez ela com o pro do gm 8.1? se for, eu nao tenho ele Sad

henriquebr

Ranking : Nota D
Número de Mensagens : 421
Data de inscrição : 03/10/2011
Notas recebidas : D+B+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por vinians em Seg 16 Jan 2012, 20:47

Qual é o seu GM?

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por henriquebr em Seg 16 Jan 2012, 20:51

8 pro - desculpem se eu floodei

henriquebr

Ranking : Nota D
Número de Mensagens : 421
Data de inscrição : 03/10/2011
Notas recebidas : D+B+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por vinians em Seg 16 Jan 2012, 21:04

Ok amigão agora tem coloquei uma versão para GM7 ( que voce pode abrir no GM8 Cool
Download GM 7

Download GM 8.1

Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por henriquebr em Seg 16 Jan 2012, 21:18

FUNCIONOU, VLWWWWWWWWWWWWWWWWWWW! cheers
podem fechar o topico!

henriquebr

Ranking : Nota D
Número de Mensagens : 421
Data de inscrição : 03/10/2011
Notas recebidas : D+B+D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como mover um objeto atraves de outro objeto?

Mensagem por Conteúdo patrocinado Hoje à(s) 07:52


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum