Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcos.cardoso

Trocar um objeto por outro em aplicação

Recommended Posts

Bom dia,

 

estou desenvolvendo um joguinho onde preciso trocar alguns objetos de lugar com outros objetos. Esses objetos são 20 carrinhos que os usuário poderão colorir e trocar de lugar. Assim, o usuário pode querer colorir o carrinho 18 de azul e depois trocar ele de lugar com o carrinho de número 10, por exemplo.

O usuário tem algumas ferramentas, como o pincel para colorir e uma mao para trocar os objetos de lugar. Assim quando pegar a mao, ele poderá trocar os objetos de lugar.

Sobre colorir os carrinhos não tenho problema, mas não estou conseguindo trocar eles de lugar.

 

O código que estou usando é o seguinte:

 

// mao é um movieclip que adiciono no palco via linkage
mao.addEventListener(MouseEvent.MOUSE_DOWN, _downMao);
// variavel que verifica se o mouse está livre de qualquer ferramenta, como o pincel ou a mao
var flag:Boolean = false;

// variavel que recebe o movieclip que a mao esta transportando
var pegou:MovieClip = null;

function _downMao(e:MouseEvent):void {

if (flag == false) {

	stage.addEventListener(MouseEvent.MOUSE_MOVE, moveMao);

	flag = true;

} else {
	// carros é um array com todos os carros do palco
	for (i = 0; i < carros.length; i++) {

		if (carros[i].hitTestPoint(mouseX, mouseY)) {

			if (e.target.drag == false) {

				trace("1");

				carros[i].startDrag(false);

				pegou = carros[i];

				e.target.drag = true;

			} else if (pegou != null) {

				trace("2");

				pegou.stopDrag();

				pegou.x = carros[i].x;

				pegou.y = carros[i].y;

				carros[i].startDrag(false);

				trace(carros[i].name);

				pegou.drag = false;

				pegou = carros[i];
			}

			return;
		}
	}
}
}

function moveMao(e:MouseEvent):void {

mao.x = mouseX;
mao.y = mouseY;
}

 

Alguém tem alguma idéia?

 

Continuarei tentando aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Inicialmente o pai do carrinho é o stage e ali recebe ações.

 

Para movê-lo junto com a mão experimente usar na mesma função onde tem o startDrag o addChild para mudar o parentesco do carrinho.

 

Exemplo:

 

function onMove(evt:MouseEvent):void
{
if(evt.target == moon) return;
evt.target.addChild(moon);
evt.target.startDrag();
}

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.