Cool - you've used fixed mirrors though? The versions of this game I've played had the rotation of the mirror as part of the puzzle complexity.
So you have a selection of mirrors in a toolbox that point at varying 90 degree steps that you drag onto the screen in some kind of maze - then when you press 'go' the laser draws its way across the screen to the goal. There'll also be fixed mirrors on the screen that you have to hit with the laser to complete the level. M > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf > Of James Marsden > Sent: 07 March 2006 13:19 > To: Flashcoders mailing list > Subject: Re: [Flashcoders] Bouncing laserbeam for game > > Hey thanks Mike, > > I've managed to do it rather simply with this in case anyone > is interested: > > > > > // create laser point > var laser = {x:0, y:0, vx:10, vy:10, steps:[], count:0}; > > onEnterFrame = function() > { > // bounce off the walls > if (laser.x > 400) > { > laser.vx *=-1; > } > else if (laser.x < 0) > { > laser.vx *=-1; > } > if (laser.y > 200) > { > laser.vy *=-1; > } > else if (laser.y < 0) > { > laser.vy *=-1; > } > > // update current point > laser.x+=laser.vx; > laser.y+=laser.vy; > > // if laser doesn't have a complete history of steps > if (laser.steps.length < 10) > { > // add a step > laser.steps[laser.count] = {x:laser.x, y:laser.y}; > > // update count > laser.count++; > } > else > { > // remove the oldest step > laser.steps[0] = undefined; > > // loop through all steps > for (var i=1;i<laser.steps.length;i++) > { > // shuffle steps back by one position > laser.steps[(i-1)] = laser.steps[i]; > } > // add the current position to the top of the stack > laser.steps[10] = {x:laser.x, y:laser.y}; > } > > // clear drawings from last frame > _root.clear(); > > // choose base colour for laser > _root.lineStyle(8, 0xFF0000, 80); > > // move to laser head point > _root.moveTo(laser.x, laser.y); > > // loop through previous steps drawing back to oldest > recorded step > for (var i=laser.steps.length-1;i>0;i--) > { > _root.lineTo(laser.steps[i].x, laser.steps[i].y); > } > > // change to medium colour > _root.lineStyle(7, 0xFF0099, 100); > > // move back to laser head point > _root.moveTo(laser.x, laser.y); > > // loop through previous steps drawing back to oldest > recorded step > for (var i=laser.steps.length-1;i>0;i--) > { > _root.lineTo(laser.steps[i].x, laser.steps[i].y); > } > > // change to topmost colour > _root.lineStyle(4, 0xFFFFFF, 100); > > // move back to laser head point > _root.moveTo(laser.x, laser.y); > > // loop through previous steps drawing back to the oldest > recorded step > for (var i=laser.steps.length-1;i>0;i--) > { > _root.lineTo(laser.steps[i].x, laser.steps[i].y); > } > } > > > > > > Mike Mountain wrote: > > >Well I've never made one before - but I'd store an array of the gun, > >mirrors, and goals x,y and rotation properties and crawl > through them > >to draw the line...something like: > > > > > > > > > > > _______________________________________________ > Flashcoders@chattyfig.figleaf.com > To change your subscription options or search the archive: > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > > Brought to you by Fig Leaf Software > Premier Authorized Adobe Consulting and Training > http://www.figleaf.com http://training.figleaf.com > _______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com