Maison  >  Article  >  interface Web  >  [Fruit Ninja] Code du couteau Bloody Sun-_-#Il n'y a vraiment qu'un seul couteau

[Fruit Ninja] Code du couteau Bloody Sun-_-#Il n'y a vraiment qu'un seul couteau

PHP中文网
PHP中文网original
2017-07-15 12:00:241962parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Apprendre les bases du canevasArticle suivant:Apprendre les bases du canevas