【水果忍者】血日狂刀代码-_-#真的只有一把刀
本人是学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
请勿转载~~~~
不喜勿喷~~~~~
Atas ialah kandungan terperinci 【水果忍者】血日狂刀代码-_-#真的只有一把刀. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Artikel ini menerangkan bagaimana untuk membenamkan audio dalam HTML5 menggunakan & lt; audio & gt; elemen, termasuk amalan terbaik untuk pemilihan format (MP3, Ogg Vorbis), pengoptimuman fail, dan kawalan JavaScript untuk main balik. Ia menekankan menggunakan pelbagai audio f

Artikel ini membincangkan menggunakan tag meta viewport untuk mengawal skala halaman pada peranti mudah alih, memberi tumpuan kepada tetapan seperti lebar dan skala awal untuk respons dan prestasi optimum.

Artikel ini membincangkan menguruskan privasi dan keizinan lokasi pengguna menggunakan API Geolocation, menekankan amalan terbaik untuk meminta kebenaran, memastikan keselamatan data, dan mematuhi undang -undang privasi.

Artikel ini menerangkan cara membuat dan mengesahkan borang HTML5. Ia memperincikan & lt; form & gt; Unsur, jenis input (teks, e -mel, nombor, dll), dan atribut (diperlukan, corak, min, max). Kelebihan bentuk html5 berbanding kaedah yang lebih lama, termasuk

Artikel ini membincangkan menggunakan API Penglihatan Halaman HTML5 untuk mengesan penglihatan halaman, meningkatkan pengalaman pengguna, dan mengoptimumkan penggunaan sumber. Aspek utama termasuk berhenti media, mengurangkan beban CPU, dan menguruskan analisis berdasarkan perubahan penglihatan.

Butiran artikel ini mewujudkan permainan HTML5 interaktif menggunakan JavaScript. Ia meliputi reka bentuk permainan, struktur HTML, gaya CSS, logik JavaScript (termasuk pengendalian acara dan animasi), dan integrasi audio. Perpustakaan JavaScript Penting (Phaser, PI

Artikel ini menerangkan cara menggunakan API Drag dan Drop HTML5 untuk mewujudkan antara muka pengguna interaktif, memperincikan langkah -langkah untuk membuat unsur -unsur menyeret, mengendalikan peristiwa utama, dan meningkatkan pengalaman pengguna dengan maklum balas tersuai. Ia juga membincangkan perangkap biasa dengan a

Artikel ini menerangkan API WebSockets HTML5 untuk komunikasi pelayan klien bidirectional masa nyata. Ia memperincikan pelaksanaan klien (JavaScript) dan pelayan (python/flask), menangani cabaran seperti skalabilitas, pengurusan negeri,
