我有这个角色,如果你按下A按钮它会攻击。我让攻击按钮工作,但我找到了最热门的问题。当玩家攻击它到达它的手臂并击中但是如果手臂触及敌人它没有记录命中,它将仅在角色身体接触敌人时记录命中。我怎样才能实现这一点,以便只有手臂接触然后注册命中。
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
public class Player extends MovieClip
{
// player settings
var WalkSpeed:Number = 5;
var RotationSpeed:Number = 8;
// movement flags
var MovingUp:Boolean = false;
var MovingLeft:Boolean = false;
var MovingRight:Boolean = false;
//Attack Settings
var Attack:Boolean = false;
public var Attacking:Boolean = false;
public function Player()
{
// constructor code
stage.addEventListener(Event.ENTER_FRAME, Update);
stage.addEventListener(KeyboardEvent.KEY_DOWN, Move);
stage.addEventListener(KeyboardEvent.KEY_UP, StopMove);
}
function Move(event:KeyboardEvent):void
{
switch ( event.keyCode )
{
case Keyboard.UP :
MovingUp = true;
break;
case Keyboard.LEFT :
MovingLeft = true;
break;
case Keyboard.RIGHT :
MovingRight = true;
break;
case Keyboard.A :
Attack = true;
break;
}
}
function Update(event:Event):void
{
if (Attacking == false)
{
// Rotate right or left
if (MovingRight)
{
rotation += RotationSpeed;
}
if (MovingLeft)
{
rotation -= RotationSpeed;
}
if (MovingUp)
{
x = x+Math.cos(rotation/180*Math.PI)*WalkSpeed;
y = y+Math.sin(rotation/180*Math.PI)*WalkSpeed;
}
if (Attack)
{
Attacking = true;
//gotoAndStop('attack');
}
//Attacking enemies
if (Attacking == true)
{
gotoAndStop('attack');
MovingRight = false;
MovingUp = false;
MovingLeft = false;
if(this.hitTestObject(MovieClip(root).Bad)){
trace ("hit");
}
}
}
//Creating Boundaries
if (this.x > 530)
{
this.x = 530;
}
if (this.x < 20)
{
this.x = 20;
}
if (this.y > 380)
{
this.y = 380;
}
if (this.y < 20)
{
this.y = 20;
}
}
function StopMove(event:KeyboardEvent):void
{
switch ( event.keyCode )
{
case Keyboard.UP :
MovingUp = false;
break;
case Keyboard.LEFT :
MovingLeft = false;
break;
case Keyboard.RIGHT :
MovingRight = false;
break;
case Keyboard.A :
Attack = false;
break;
}
}
}
}