开发者

programing the charachter to shoot

i am looking for a tutorial to help me with shooting one arrow per click towards the mouse.

this is my code:

import flash.events.*;
var xd:Number;
var yd:Number;
var radAngle:Number;
var size:int=25;
// size of the arrowshot
var arrows开发者_如何学PythonhotSpeed:int=50;
// defines some variables


function mcFunction(event:Event):void {

    xd=bowframe.bow.x-stage.mouseX;
    yd=bowframe.bow.y-stage.mouseY;
    // finds the x and y difference of the sprite and the mouse
    radAngle=Math.atan2(yd,xd);
    // finds the angle in radians 
    bowframe.bow.rotation = int(radAngle*360/(Math.PI*2)-90);

}

stage.addEventListener(Event.ENTER_FRAME, mcFunction);

function shootarrowshot(event:MouseEvent):void {
    var arrowshot:Sprite = new Sprite();
    with (arrowshot.graphics) {
        lineStyle(1, 0x000000, 1);
        moveTo(-size/2,-size);
        lineTo(size/2,-size);
        lineTo(size/2,size);
        lineTo(-size/2,size);
        lineTo(-size/2,-size);
    }
    addChild(arrowshot);
    //attaches
    arrowshot.x=bowframe.bow.x;
    arrowshot.y=bowframe.bow.y;
    arrowshot.rotation=bowframe.bow.rotation;
    // sets the arrowshot x,y, and rotation to the bowframe.bow
    arrowshot.addEventListener(Event.ENTER_FRAME, movearrowshot);
    // adds and enterFrame to the arrowshot, to move it
}
function movearrowshot(event:Event) {
    with (event.target) {
        // with the object that called the event
        x+= arrowshotSpeed*Math.sin(rotation*(Math.PI/180));
        y-= arrowshotSpeed*Math.cos(rotation*(Math.PI/180));
        // moves the arrowshot depending on its rotation, uses build in math sin and cos functions
        if (x>=550||x<=0||y>=400||y<=0) {
            // if the arrowshot is out of the screen
            event.target.removeEventListener(Event.ENTER_FRAME, movearrowshot);
            this.removeChild(DisplayObject(event.target));
            // removes the arrowshot sprite and the enterFrame on it
        }
    }
}
stage.addEventListener(MouseEvent.MOUSE_DOWN, shootarrowshot);

i also want the arrow and the bow to stay facing the mouse.


First of all the way that you going about doing this seems backwards to me but hey if it works go with it right!

http://www.freeactionscript.com/2011/07/projectile-weapon/

This link will show you how another person has developed a simple projectile shooter. If you want bow & arrows the major changes you will have to make with deal with rotation based on the arc caused by the gravity. (unless you not going to use a gravity calculation). It looks like you'll do fine finding the calculation though.

In your comment I'm not sure what you meant by "it also creates a bullet on all of the other frames"

Hopefully you get this to work with the help of the tutorial.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜