Heim > Artikel > Web-Frontend > [Fruit Ninja] Blood Sun Crazy Knife Code-_-#Es gibt eigentlich nur ein Messer
Ich lerne PHP, aber ich habe in den frühen Tagen eine Zeit lang as3 studiert. Obwohl Flash abgeschafft wurde, gilt für mich, der Programmiersprachen so sehr liebt,
ActionEinige Aspekte des Skripts sind es wert, von ihnen gelernt zu werden. AS3 ist in der Spieleentwicklung sehr charakteristisch.
Das Folgende ist der Code für ein Messer in Fruit Ninja, den ich zusammengestellt habe
Der Code dient nur als Referenz:
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); } } } }
Dieser Artikel wird von der chinesischen PHP-Website bereitgestellt. Er beschreibt, wie man mit as3 den Code für ein Messer in Fruit Ninja schreibt Nur als Referenz.
Artikeladresse: http://www.php.cn/html5-tutorial-374270.html
Bitte nicht erneut drucken~~~~
Wenn Sie nicht Es gefällt mir nicht, kommentiere nicht~ ~~~~
Das obige ist der detaillierte Inhalt von[Fruit Ninja] Blood Sun Crazy Knife Code-_-#Es gibt eigentlich nur ein Messer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!