站长资讯网
最全最丰富的资讯网站

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

本人是学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;    }   }  }//package  import 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

请勿转载~~~~

不喜勿喷~~~~~

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号