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.
精彩评论