/* Klavye Oklarıyla Hareket Ettir
Belirtilen sembol örneğinin klavyedeki oklarla hareket ettirilmesini sağlar.
Talimatlar:
1. Hareket miktarını artırmak veya azaltmak için aşağıdaki 5 değerinin yerine sembol örneğinin tuşlara her basıldığında hareket etmesini istediğiniz piksel sayısını girin.
5 sayısının aşağıdaki kodda dört kez göründüğünü unutmayın.
*/
var upPressed:Boolean = false;
var downPressed:Boolean = false;
var leftPressed:Boolean = false;
var rightPressed:Boolean = false;
pacman.addEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_2);
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed_2);
stage.addEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed_2);
function fl_MoveInDirectionOfKey_2(event:Event)
{
if (upPressed)
{
pacman.y -= 5;
}
if (downPressed)
{
pacman.y += 5;
}
if (leftPressed)
{
pacman.x -= 5;
}
if (rightPressed)
{
pacman.x += 5;
}
}
function fl_SetKeyPressed_2(event:KeyboardEvent):void
{
switch (event.keyCode)
{
case Keyboard.UP:
{
upPressed = true;
break;
}
case Keyboard.DOWN:
{
downPressed = true;
break;
}
case Keyboard.LEFT:
{
leftPressed = true;
break;
}
case Keyboard.RIGHT:
{
rightPressed = true;
break;
}
}
}
function fl_UnsetKeyPressed_2(event:KeyboardEvent):void
{
switch (event.keyCode)
{
case Keyboard.UP:
{
upPressed = false;
break;
}
case Keyboard.DOWN:
{
downPressed = false;
break;
}
case Keyboard.LEFT:
{
leftPressed = false;
break;
}
case Keyboard.RIGHT:
{
rightPressed = false;
break;
}
}
}
hocam teşekkür ederim.impetus23' Alıntı:hocam onun sebebi de siz 10 birim götürüp sonra değip değmediğine bakmanız lazım.. sizin kodda sonradan 10 birim gidiyor
yani mesela pacman.x += 10; kodu for döngüsünden önce olmalı![]()
skoralani.text = String(0);
var skor:uint;
skor = 0;
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_PressKeyToMove);
function fl_PressKeyToMove(event:KeyboardEvent):void
{
switch (event.keyCode)
{
case Keyboard.UP :
{
pacman.gotoAndStop(4);
var m;
pacman.y -= 10;
for (m=1; m<=7; m++)
{
if (pacman.hitTestObject(root["engel" + m]))
{
pacman.y += 30;//yukarı çıkarken eğer ortadaki engellerden birine
// tekrar 30birim aşağı çek.Amaç engellerin içinden geçmemesi
}
}
//herhengi bir engele çarpmıyorsa aşağı inmeye decam et
if (pacman.hitTestObject(ustduvar))
{
pacman.y += 20;//yukarı çıkarken en yukarıdaki duvara çarparsa
}//20 birim aşağı insin.Amaç üst duvarı geçememesi
break;
};//aynı işlem ve kontroller diğer tuşlar için tekrar edilir.
case Keyboard.DOWN :
{
pacman.gotoAndStop(3);
pacman.y += 10;
var l;
for (l=1; l<=7; l++)
{
if (pacman.hitTestObject(root["engel" + l]))
{
pacman.y -= 30;
}
}
if (pacman.hitTestObject(altduvar))
{
pacman.y -= 20;
}
break;
};
case Keyboard.LEFT :
{
pacman.gotoAndStop(2);
pacman.x -= 10;
var j;
for (j=1; j<=7; j++)
{
if (pacman.hitTestObject(root["engel" + j]))
{
pacman.x += 30;
}
}
if (pacman.hitTestObject(solduvar))
{
pacman.x += 20;
}
break;
};
case Keyboard.RIGHT :
{
pacman.gotoAndStop(1);
pacman.x += 10;
var k;
for (k=1; k<=7; k++)
{
if (pacman.hitTestObject(root["engel" + k]))
{
pacman.x -= 30;
}
}
if (pacman.hitTestObject(sagduvar))
{
pacman.x -= 20;
}
};
break;
}
var i;
for (i=1; i<=8; i++)
{
if (pacman.hitTestObject(root["nokta" + i]))
{
root["nokta" + i].x = -100;
skor += 5;
skoralani.text = skor.toString();
}
}
}