Maison > Article > interface Web > [Fruit Ninja] Code du couteau Bloody Sun-_-#Il n'y a vraiment qu'un seul couteau
J'étudie PHP, mais j'étudie as3 depuis un certain temps au début. Bien que Flash ait été éliminé, pour moi qui aime tellement les langages de programmation,
actionCertains aspects du script méritent d'être appris. AS3 est très distinctif dans le développement de jeux.
Ce qui suit est le code d'un couteau dans Fruit Ninja que j'ai compilé
Le code est collé à titre de référence uniquement :
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); } } } }
Cet article est fourni par le site Web chinois php. Il explique comment utiliser as3 pour écrire le code d'un couteau dans Fruit Ninja. Depuis que flash a été éliminé, le code est. pour référence seulement.
Adresse de l'article : http://www.php.cn/html5-tutorial-374270.html
Veuillez ne pas réimprimer~~~~
Si vous ne le faites pas Je n'aime pas ça, ne commente pas ~ ~~~~
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!