【发布时间】:2012-06-26 11:58:06
【问题描述】:
我试图在平台游戏中为我的角色提供一种移动机制,在该机制中,按住左键然后再按住右键将导致角色仍然向左移动但速度较慢(即 motionSpeed/2),就像月亮一样- 步行(反之亦然):
public var leftKey:Boolean = false;
public var rightKey:Boolean = false;
public var upKey:Boolean = false;
public var leftFlag:Boolean = false;
function ifKeyDown(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT && rightKey == false)
{
leftKey = true;
if (event.keyCode == Keyboard.LEFT && event.keyCode == Keyboard.RIGHT)
{
leftFlag = true;
trace("leftFlag true");
}
}
if (event.keyCode == Keyboard.RIGHT && leftKey == false)
{
rightKey = true;
}
}
function ifKeyUp(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.LEFT)
{
leftKey = false;
leftFlag = false;
}
if (event.keyCode == Keyboard.RIGHT)
{
rightKey = false;
}
}
public function ifEnterFrame(event:Event):void
{
if (leftKey == true && leftFlag == false)
{
player1_mc.x -= mainSpeed;
trace("L");
}
if (rightKey == true && leftFlag == false)
{
player1_mc.x += mainSpeed;
trace("R");
}
if (leftKey == true && rightKey == true)
{
if (leftFlag == true)
{
player1_mc.x -= mainSpeed/2;
trace("L + R");
}
else
{
player1_mc.x += mainSpeed/2;
trace("R + L");
}
}
我的输出如下所示: 我按住左键 大号 大号 大号 大号 我松开左键。然后, 我按住右键 R R R R 我松开了右键。然后, 我按住右然后也按住左 大号 R 右+左 大号 R 右+左 我都放开了。然后, 我先左再右 大号 R 右+左 大号 R 右+左
虽然我通过我的跟踪知道 leftFlag 没有运行,但我花了几个小时试图找出为什么无济于事。 :(
【问题讨论】:
标签: actionscript-3