PDA

Volledige versie bekijken : Onclick mouse vraag :)??


Flugzor
%Europe/Berlin %660 %2010, 15:51
Hallo :)
Ik heb een vraag en hoop dat iemand mij hiermee kan helpen.
Het is het volgende :

Ik wil een Dam spel maken maar ik zit vast bij het gedeelte waar je de stenen kan oppakken en weer neer kan zetten.

Ik wil het zeg maar hebben dat als je op je damsteen klikt en dan weer ergens anders dat de damsteen daarheen gaat. Tot nu toe kan mijn steen 1x verplaatsen maar daarna zit hij vast aan de muis.
Ik heb het geprobeerd te verhelpen met een stopDrag(); maar werkt helaas niet.
Ik hoop dus dat iemand mij hier kan helpen.

Hier is de code :

import flash.events.MouseEvent;
import flash.display.Sprite;
var xNewPos:int;
var yNewPos:int;
var rodesteen;
var inTransit:Boolean = false;

stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseClick);
stage.addEventListener(MouseEvent.MOUSE_DOWN, rodesteenMove);


function mouseClick(event:MouseEvent):void {
stage.addEventListener(Event.ENTER_FRAME, rodesteenMove);
xNewPos = event.target.mouseX;
yNewPos = event.target.mouseY;
inTransit = true;
//trace(xNewPos);
//trace(yNewPos);
}
function rodesteenMove(evt:Event):void {
if(inTransit == true){
if(xNewPos < rodesteen.x && yNewPos < rodesteen.y){
rodesteen.x = mouseX;
rodesteen.y = mouseY;
}
}

}

cornedor
%Europe/Berlin %668 %2010, 16:02
Ik denk dat je het zo moet doen:

function mouseClick(event:MouseEvent):void {
if(inTransit == false)
{
stage.addEventListener(Event.ENTER_FRAME, rodesteenMove);
xNewPos = event.target.mouseX;
yNewPos = event.target.mouseY;
inTransit = true;
//trace(xNewPos);
//trace(yNewPos);
}
else if(inTransit == true)
{
inTransit = false)
}
}

Flugzor
%Europe/Berlin %676 %2010, 16:14
Heb hem aan het werk weten te krijgen. Misschien wel een onhandige methode maar het werkt waar ik blij mee ben.

Nog bedankt cornedor voor het idee om een else if te gebruiken! :)

Dit is het geworden :

import flash.events.MouseEvent;
import flash.display.Sprite;
var xNewPos:int;
var yNewPos:int;
var rodesteen;
var inTransit:Boolean = false;

stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseClick);
stage.addEventListener(MouseEvent.MOUSE_DOWN, rodesteenMove);


function mouseClick(event:MouseEvent):void {
stage.addEventListener(Event.ENTER_FRAME, rodesteenMove);
xNewPos = event.target.mouseX;
yNewPos = event.target.mouseY;
inTransit = true;
trace(xNewPos);
trace(yNewPos);
}
function rodesteenMove(evt:Event):void {
if(inTransit == true){
if(xNewPos < rodesteen.x && yNewPos < rodesteen.y){
rodesteen.x = mouseX;
rodesteen.y = mouseY;
}
else if (xNewPos > rodesteen.x && yNewPos > rodesteen.y){

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

Flugzor
%Europe/Berlin %706 %2010, 16:57
Nu heb ik een volgende vraag.
Ik heb natuurlijk 2 verschillende stenen om mee te spelen bijvoorbeeld wit & zwart.
Deze code werkt alleen voor 1 steen en niet voor allebei de stenen want dan komen ze in elkaar te zitten.

Kan iemand mij uitleggen hoe ik bijvoorbeeld een selectie van 1 steen kan maken zodat die alleen kan bewegen en daarna deselecteren zodat ik een andere weer kan selecteren?

Greetz,
Flugzor