所以我想让一个物体围绕另一个物体旋转,但我想让它只在按下向右箭头键的时候才这样做。当我运行这个程序时,轨道器根本不会移动,即使按下了右箭头键,它也不会跟踪!
任何帮助都是非常感谢的!
PS我必须在KEY_DOWN中使用事件侦听器吗?或者我可以返回一个数字并检查它吗?
var orbiter:Orbiter = new Orbiter();
var origin:Origin = new Origin();
var angle:Number = 0;
var speed:Number = 1.5;
var radius:Number = 75;
origin.x= 100;
origin.y =100;
addChild(orbiter);
addChild(origin);
stage.addEventListener(Event.ENTER_FRAME, Orbit_Brah);
function Orbit_Brah(event:Event):void
{
var nLeftOrRight = CheckKeyDown;
if (nLeftOrRight == 1)
{
angle += speed;
var rad:Number = angle * (Math.PI / 180);
orbiter.x = origin.x + radius * Math.cos(rad);
orbiter.y = origin.y + radius * Math.sin(rad);
orbiter.rotation = (Math.atan2(orbiter.y-origin.y, orbiter.x-origin.x) * 180 / Math.PI);
}
}
function CheckKeyDown(event:KeyboardEvent):int
{
if (event.keyCode == Keyboard.RIGHT)
{
trace ("Key Press Registered");
return 1;
}
return 0;
}发布于 2014-05-03 14:17:54
您需要添加一个侦听器来从KeyboardEvents获取信息。将信息存储在一个变量中,并在更新循环中使用它。您可能还希望使用KeyboardEvent.KEY_UP来检查按键何时释放。就像这样。
stage.addEventListener(Event.ENTER_FRAME, Update);
stage.addEventListener(KeyboardEvent.KEY_DOWN, OnKeyboardDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, OnKeyboardUpHandler);
function Update(pEvent : Event) : void
{
// update code here using stored info
if(_isMovingRight)
{
//
}
}
function OnKeyboardDownHandler(pEvent : KeyboardEvent) : void
{
switch(pEvent.keyCode)
{
case Keyboard.RIGHT:
_isMovingRight = true;
break;
}
}
function OnKeyboardUpHandler(pEvent : KeyboardEvent) : void
{
switch(pEvent.keyCode)
{
case Keyboard.RIGHT:
_isMovingRight = false;
break;
}
}发布于 2014-05-03 14:52:59
你太努力了。在声明之后,您需要做的就是:
stage.addEventListener(KeyboardEvent.KEY_DOWN, Orbit_Brah);
function Orbit_Brah(e)
{
if (e.keyCode == Keyboard.RIGHT)
{
angle += speed;
var rad:Number = angle * (Math.PI / 180);
orbiter.x = origin.x + radius * Math.cos(rad);
orbiter.y = origin.y + radius * Math.sin(rad);
orbiter.rotation = (Math.atan2(orbiter.y-origin.y, orbiter.x-origin.x) * 180 / Math.PI);
}
}这仍然给您留下了一个小的数学问题,当您运行代码时,这个问题将是显而易见的,但是您可以解决这个问题。
https://stackoverflow.com/questions/23439010
复制相似问题