Hejsa.

Jeg har lavet et simpelt spil, hvor en figur kan flyttes rundt på scenen vha. tastaturinputs. Figuren er tegnet på følgende måde:

public function drawPlayerRight():void {
canvas = this.graphics;
canvas.lineStyle(3, 0xFFFF66);
canvas.beginFill(0xFFFF66, 100);
canvas.drawEllipse(0,0,60,55);
canvas.moveTo(2,30);
canvas.lineTo(-15,6);
canvas.lineTo(-15,49);
canvas.lineTo(2,30);
canvas.endFill();
canvas.lineStyle(0, 0xFFFFFF);
canvas.beginFill(0x5CB3FF, 100);
canvas.drawCircle(39,20,7);
canvas.endFill();
canvas.beginFill(0x000000,100);
canvas.drawCircle(42,22,4);
}

Figuren må ikke kunne flyttes udenfor scenekanten, så jeg har forsøgt at lave en funktion til dette formål, men desværre virker den ikke efter hensigten. For det første er playerens x koordinat placeret et stykke inde i figuren, så figuren bevæger sig halvvejs ud over kanten før den reagerer. For det andet går der et lille stykke tid før det er muligt at bevæge sig i den anden retning, når man har ramt kanten. Det er som om figuren klæber til scenekanten i et par sekunder når man rammer den.

public function onEnterFrame(e:Event):void
{
if (player.x < 0)
{
player.x = 0;
removeEventListener(Event.ENTER_FRAME, boundaryPlayer);
}
if (player.x > bubbleFish.stage.stageWidth)
{
player.x = bubbleFish.stage.stageWidth;
removeEventListener(Event.ENTER_FRAME, boundaryPlayer);
}
if (player.y < 0)
{
player.y = 0;
removeEventListener(Event.ENTER_FRAME, boundaryPlayer);
}
if (player.y > bubbleFish.stage.stageHeight)
{
player.y = 600 - player.height;
removeEventListener(Event.ENTER_FRAME, boundaryPlayer);
}
}

Er det muligt at teste om figuren rammer kanten vha. en form for boundingbox i stedet? Og er der generelt en smartere metode til afgrænsning af sceneområdet?

Håber nogen kan hjælpe Smile

Mange hilsner fra Sabine