效果演示:(请移动鼠标看效果)
敌人跟随我的AS代码
很高兴我昨天为一个游戏写了一些AS。(虽然不是我自已的而不能展示它,我只是被邀请写了其中的一部分),但是我很乐意与你一起共享其中的一些代码,比如我今天与你共享的一些源代码。
这个flash Actionspript源代码创一个跟随你的鼠标的敌人,特别要注意的是它不只是跟随鼠标的路径,而它的脸部总是随着鼠标旋转。这很酷吧。
首先我们要做一些诸如创建我们的敌人的准备工作,你总会做这些事,无论你是否乐意。当你完成时,右击它将它转换为MC,并为它取一个实例名称,我取的名称是:“"enemy_mc"。
现在我们准备写一些AS代码,但请记住这些AS代码是AS3.0的,为了使它工作你或许应做一些改变版本的事情,我没法为你做这些。:-)
你可以复制并粘贴这些代码到你的flash动面板或者你可以输入这些代码。
AS源代码:
首先是一个使敌人有移动的事件监听,这是一个enterframe事件。
enemy_mc.addEventListener(Event.ENTER_FRAME, do_stuff);
要调用的函数
function do_stuff(event:Event):void {
// 这儿计算出敌人中心点随着鼠标旋转的角度.
var myRadians:Number = Math.atan2(mouseY-enemy_mc.y, mouseX-enemy_mc.x);
var myDegrees:Number = Math.round((myRadians*180/Math.PI));
// 这是敌人移向鼠标的参数.
var yChange:Number = Math.round(mouseY-enemy_mc.y);
var xChange:Number = Math.round(mouseX-enemy_mc.x);
var yMove:Number = Math.round(yChange/20);
var xMove:Number = Math.round(xChange/20);
// 不使用上面的计算就没有什么可以人做的事,这样我就设置x和y及旋转.
enemy_mc.y += yMove;
enemy_mc.x += xMove;
enemy_mc.rotation = myDegrees+90;
}