Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Here is the bulk of it<BR/> You shouldn't get compile errors now<BR/> Plus I cleaned it up<BR/> You will also have to fix your rotation point of player_mc<BR/></p> <pre><code>import flash.filters.GlowFilter; //Settings var maxDist:Number = 400; var accuracy:Number = 1; //other vars (do not edit) var dx:Number; var dy:Number; var startX:Number; var startY:Number; var endX:Number; var endY:Number; var realDist:Number; var rad:Number = Math.PI/180; var rad2:Number = 180/Math.PI; var laser_mc:MovieClip = new MovieClip() map_mc.addChild(laser_mc) //Glow Filter var glow:GlowFilter = new GlowFilter(); glow.color = 0xFF0000; glow.alpha = 1; glow.blurX = 7; glow.blurY = 7; glow.quality = 2; laser_mc.filters = new Array(glow); /** * * Mouse Controls * */ stage.addEventListener( MouseEvent.MOUSE_DOWN, fire); //on Click, fire the weapon function fire( e:Event ):void { stage.addEventListener( Event.ENTER_FRAME , updateLaser) } stage.addEventListener( MouseEvent.MOUSE_UP, stopFire); //on release, stop weapon firing function stopFire( e:Event ):void { laser_mc.graphics.clear(); stage.removeEventListener( Event.ENTER_FRAME , updateLaser) } stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoved) //on mouse move, rotate the player function mouseMoved( e:Event ):void { //get distance between mouse and player dx = map_mc.mouseX-map_mc.player_mc.x; dy = map_mc.mouseY-map_mc.player_mc.y; //calculate rotation of player map_mc.player_mc.rotation = Math.atan2(dy, dx)*rad2; } //Update Laser Function function updateLaser( e:Event ):void { //run a loop for (realDist=0; realDist&lt;maxDist; realDist += accuracy){ //get end X&amp;Y endX = map_mc.player_mc.x + Math.cos(map_mc.player_mc.rotation * rad) * realDist; endY = map_mc.player_mc.y + Math.sin(map_mc.player_mc.rotation * rad) * realDist; //calculate hit test if (map_mc.walls_mc.hitTestPoint(endX,endY)) { break; } } //calculate the tip of the barrel (start X &amp; Y) startX = map_mc.player_mc.x + 15 * Math.cos(map_mc.player_mc.rotation * rad); startY = map_mc.player_mc.y + 15 * Math.sin(map_mc.player_mc.rotation * rad); //draw laser laser_mc.graphics.clear(); laser_mc.graphics.lineStyle(2, 0xFF0000); laser_mc.graphics.moveTo(startX, startY); laser_mc.graphics.lineTo(endX, endY); } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload