PHP前端开发

【水果忍者】血日狂刀代码-_-#真的只有一把刀

百变鹏仔 2个月前 (10-18) #H5教程
文章标签 忍者

本人是学php的,但是早期对于as3还是有一段时间的研究,虽然flash已经被淘汰了,但是对于程序语言无比热爱的我来说,

actionscript的有些方面还是值得借鉴的,as3在游戏开发方面就很有特色。

下面是本人整理的水果忍者里的一把刀代码,

代码贴上,仅供参考:

Main.as

 package { import flash.events.*; import flash.display.*; import flash.filters.BitmapFilter; import flash.filters.BlurFilter; import flash.filters.GlowFilter; import flash.geom.ColorTransform; import flash.text.*; public class Main extends Sprite {  private var info:TextField  private var score:int = 0  private var lost:int = 0  private var time:int = 0  private var particles:Array  private var rubbishs:Array  private var lines:Array        private var cutlayer:Shape  private var cutBmdLayer:BitmapData  private var cutlayerFilter:BitmapFilter  private var cutlayerCT:ColorTransform  private var flayer:Shape  private var fBmdLayer:BitmapData  private var flayerFilter:BitmapFilter  private var flayerCT:ColorTransform  private var lastX:Number  private var lastY:Number  public function Main():void {   this.particles = [];   this.rubbishs = [];   this.lines = [];   this.cutlayer = new Shape();   this.flayer = new Shape();   super();   //Wonderfl.capture(stage);   this.info = new TextField();   this.info.autoSize = TextFieldAutoSize.LEFT;   this.info.multiline = true;   this.fBmdLayer = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0);   addChild(new Bitmap(this.fBmdLayer));   this.flayerFilter = new BlurFilter();   this.flayerCT = new ColorTransform(1, 1, 1, 0.5);   this.cutBmdLayer = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0);   var _local1:Bitmap = new Bitmap(this.cutBmdLayer);   addChild(_local1);   addChild(this.info);   _local1.filters = [new GlowFilter(0xFF0000, 1, 16, 16, 2, 3, false, false)];   this.cutlayerFilter = new BlurFilter(2, 2, 3);   this.cutlayerCT = new ColorTransform(1, 1, 1, 0);   stage.addEventListener(MouseEvent.MOUSE_DOWN, this.onMD);   //addEventListener(Event.ENTER_FRAME, this.update);   _scene = new Sprite();   this.addChild(_scene);   _scene.filters = [new GlowFilter(0x00CCFF, 1, 10, 10, 2, 1, false, false)];   stage.addEventListener(MouseEvent.MOUSE_DOWN, downHandler);   stage.addEventListener(MouseEvent.MOUSE_UP, upHandler);   this.addEventListener(Event.ENTER_FRAME, enterFrame);  }  private function onMD(_arg1:MouseEvent):void {   this.lastX = mouseX;   this.lastY = mouseY;   stage.addEventListener(MouseEvent.MOUSE_MOVE, this.onMM);   stage.addEventListener(MouseEvent.MOUSE_UP, this.onMU);  }  private function onMU(_arg1:MouseEvent):void {   stage.removeEventListener(MouseEvent.MOUSE_MOVE, this.onMM);   stage.removeEventListener(MouseEvent.MOUSE_UP, this.onMU);  }  private function onMM(_arg1:MouseEvent):void {   var _local2:Line1 = new Line1();   _local2.x1 = this.lastX;   _local2.y1 = this.lastY;   this.lastX = mouseX;   this.lastY = mouseY;   _local2.x2 = this.lastX;   _local2.y2 = this.lastY;   this.lines.push(_local2);  }      private var _cacheX:int;  private var _cacheY:int;  private var _isDown:Boolean;  private var _scene:Sprite;  private function downHandler(e:MouseEvent):void {   _cacheX = mouseX;   _cacheY = mouseY;   _isDown = true;  }  private function upHandler(e:MouseEvent):void {   _isDown = false;  }  private function enterFrame(e:Event):void {   for each (var l:Line in Line.sets) {    l.update();   }   updateLine();  }  private function updateLine():void {   if (!_isDown) return;   var line:Line = new Line(_cacheX, _cacheY, mouseX, mouseY);   _scene.addChild(line);   _cacheX = mouseX;   _cacheY = mouseY;  } }}//packageimport flash.display.*;class Line1 { public var x1:Number public var y1:Number public var x2:Number public var y2:Number public var state:int = 0 public function Line1() { } public function get length():Number {  return (Math.sqrt((((this.x2 - this.x1) * (this.x2 - this.x1)) + ((this.y2 - this.y1) * (this.y2 - this.y1))))); }}import flash.display.Sprite;class Line extends Sprite { static public var sets:Array = []; public var sX:int; public var sY:int; public var eX:int; public var eY:int; public var linesize:Number; public var state:int = 0 public function Line($sX:int, $sY:int, $eX:int, $eY:int, $linesize:Number = 8) {  sets.push(this);  sX = $sX;  sY = $sY;  eX = $eX;  eY = $eY;  linesize = $linesize;  draw(); } private function draw():void {  graphics.clear();  graphics.lineStyle(linesize, 0xFFFFFF);  graphics.moveTo(sX, sY);  graphics.lineTo(eX, eY); } public function update():void {  draw();  linesize -= 1;  if (linesize < 1) {   clear();  } } private function clear() {  graphics.clear();  for (var i:String in sets) {   var l:Line = sets[i] as Line;   if (l == this) {    sets.splice(i, 1);    parent.removeChild(this);   }  } }}

本文由php中文网提供,介绍了如何使用as3写出一把水果忍者里的刀的代码,鉴于flash已被淘汰,代码仅供参考。

文章地址:http://www.php.cn/html5-tutorial-374270.html

请勿转载~~~~

不喜勿喷~~~~~