在好例子网,分享、交流、成长!
您当前所在位置:首页Flash 开发实例Flash用户交互 → flash切水果游戏源码下载

flash切水果游戏源码下载

Flash用户交互

下载此实例
  • 开发语言:Flash
  • 实例大小:0.02M
  • 下载次数:109
  • 浏览次数:999
  • 发布时间:2015-07-02
  • 实例类别:Flash用户交互
  • 发 布 人:zy0922
  • 文件格式:.zip
  • 所需积分:2
 相关标签: flash

实例介绍

【实例简介】flash切水果

【实例截图】flash切水果

【核心代码】flash切水果

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 function update(_arg1:Event):void {
			var _local4:Particle;
			var _local5:Line1;
			var _local6:int;
			var _local7:Object;
			var _local8:Particle;
			var _local2:Graphics = this.flayer.graphics;
			_local2.clear();
			var _local3:int = (this.particles.length - 1);
			while (_local3 >= 0) {
				_local4 = this.particles[_local3];
				_local4.update(_local2);
				if (_local4.y > stage.stageHeight) {
					if (_local4.state == 0) {
						this.lost  ;
					}
					;
					this.particles.splice(_local3, 1);
				}
				;
				_local3--;
			}
			;
			_local3 = (this.rubbishs.length - 1);
			while (_local3 >= 0) {
				_local4 = this.rubbishs[_local3];
				_local4.update(_local2);
				if (_local4.y > stage.stageHeight) {
					this.rubbishs.splice(_local3, 1);
				}
				;
				_local3--;
			}
			;
			this.cutlayer.graphics.clear();
			_local3 = (this.lines.length - 1);
			while (_local3 >= 0) {
				_local5 = this.lines[_local3];
				if (_local5.state == 0) {
					_local6 = (this.particles.length - 1);
					while (_local6 >= 0) {
						_local4 = this.particles[_local6];
						_local7 = this.intersection(_local5.x1, _local5.y1, _local5.x2, _local5.y2, _local4.x, _local4.y, _local4.r);
						if ((((_local4.state == 0)) && (!((_local7 == null))))) {
							_local4.state = 1;
							_local4.cut(_local7.x1, _local7.y1, _local7.x2, _local7.y2);
							_local8 = new Particle();
							_local8.x = _local4.x;
							_local8.y = _local4.y;
							_local8.vx = _local4.vx;
							_local8.vy = _local4.vy;
							_local8.r = _local4.r;
							_local8.av = _local4.av;
							_local8.lineColor = _local4.lineColor;
							_local8.color = _local4.color;
							_local8.state = _local4.state;
							_local8.cut(_local7.x2, _local7.y2, _local7.x1, _local7.y1);
							this.particles.push(_local8);
							this.score  ;
							this.rubbish(_local4.x, _local4.y, _local4.color);
						}
						;
						_local6--;
					}
					;
				}
				;
				_local5.state  ;
				if (_local5.state > 5) {
					this.lines.splice(_local3, 1);
				}
				;
				this.cutlayer.graphics.lineStyle((_local3 / 5), 0, 1, true, "none", "round", "round", 1);
				this.cutlayer.graphics.moveTo(_local5.x1, _local5.y1);
				this.cutlayer.graphics.lineTo(_local5.x2, _local5.y2);
				_local3--;
			}
			;
			this.cutBmdLayer.colorTransform(this.cutBmdLayer.rect, this.cutlayerCT);
			this.cutBmdLayer.draw(this.cutlayer);
			this.fBmdLayer.colorTransform(this.fBmdLayer.rect, this.flayerCT);
			this.fBmdLayer.applyFilter(this.fBmdLayer, this.fBmdLayer.rect, this.fBmdLayer.rect.topLeft, this.flayerFilter);
			this.fBmdLayer.draw(this.flayer);
			this.info.text = ((((("lost:"   this.lost)   " score:")   this.score)   " time:")   int((this.time / stage.frameRate)));
			this.time  ;
			if (Math.random() < Math.atan((0.02   (this.time / 100000)))) {
				this.addFruit();
			}
			;
		}

		private function addFruit():void {
			var _local1:Particle = new Particle();
			_local1.x = (stage.stageWidth * (0.3   (0.4 * Math.random())));
			_local1.y = stage.stageHeight;
			_local1.vx = (5 * (Math.random() - 0.5));
			_local1.vy = -((20   (20 * Math.random())));
			_local1.r = (15   (25 * Math.random()));
			_local1.a = ((Math.PI * 2) * Math.random());
			_local1.av = (0.1 * (Math.random() - 0.5));
			this.particles.push(_local1);
		}

		private function rubbish(_arg1:Number, _arg2:Number, _arg3:uint):void {
			var _local5:Particle;
			var _local6:Number;
			var _local4:int = (100 * Math.random());
			while (_local4-- > 0) {
				_local5 = new Particle();
				_local5.color = _arg3;
				_local5.lineColor = _arg3;
				_local5.x = _arg1;
				_local5.y = _arg2;
				_local5.r = (0   (1 * Math.random()));
				_local5.a = ((Math.PI * 2) * Math.random());
				_local5.av = (0.1 * (Math.random() - 0.5));
				_local6 = (10 * Math.random());
				_local5.vx = (_local6 * Math.cos(_local5.a));
				_local5.vy = (_local6 * Math.sin(_local5.a));
				this.rubbishs.push(_local5);
			}
		}

		private function intersection(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Object {
			var _local12:Number;
			var _local13:Number;
			var _local14:Number;
			var _local15:Number;
			var _local16:Number;
			var _local17:Number;
			var _local18:Number;
			var _local19:Object;
			var _local8:Number = (((_arg3 - _arg1) * (_arg3 - _arg1))   ((_arg4 - _arg2) * (_arg4 - _arg2)));
			var _local9:Number = (2 * (((_arg3 - _arg1) * (_arg1 - _arg5))   ((_arg4 - _arg2) * (_arg2 - _arg6))));
			var _local10:Number = ((((((_arg5 * _arg5)   (_arg6 * _arg6))   (_arg1 * _arg1))   (_arg2 * _arg2)) - (2 * ((_arg5 * _arg1)   (_arg6 * _arg2)))) - (_arg7 * _arg7));
			var _local11:Number = ((_local9 * _local9) - ((4 * _local8) * _local10));
			if (_local11 > 0) {
				_local12 = Math.sqrt(_local11);
				_local13 = (((-(_local9)   _local12) / 2) / _local8);
				_local14 = (((-(_local9) - _local12) / 2) / _local8);
				_local15 = (_arg1   ((_arg3 - _arg1) * _local13));
				_local16 = (_arg2   ((_arg4 - _arg2) * _local13));
				_local17 = (_arg1   ((_arg3 - _arg1) * _local14));
				_local18 = (_arg2   ((_arg4 - _arg2) * _local14));
				_local19 = {x1:_local15, y1:_local16, x2:_local17, y2:_local18};
				if ((((_local13 > 0)) && ((_local13 < 1)))) {
					return (_local19);
				}
				;
				if ((((_local14 > 0)) && ((_local14 < 1)))) {
					return (_local19);
				}
				;
			}
			;
			return (null);
		}
		
		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);
			}
		}
	}
}
class Particle {

	public var x:Number
	public var y:Number
	public var g:Number = 0.5
	public var vx:Number
	public var vy:Number
	public var friction:Number = 0.95
	public var r:Number
	public var color:uint
	public var state:int = 0
	private var a1:Number
	private var a2:Number
	public var av:Number
	public var a:Number = 0
	public var lineColor:uint

	public function Particle() {
		this.color = 0xFFFFFF * Math.random();
		lineColor = 0xFFFFFF * Math.random();
		super();
	}

	public function update(_arg1:Graphics):void {
		this.vx = (this.vx * this.friction);
		this.x = (this.x   this.vx);
		this.vy = (this.vy   this.g);
		this.vy = (this.vy * this.friction);
		this.y = (this.y   this.vy);
		this.a = (this.a   this.av);
		_arg1.beginFill(this.color);
		//_arg1.lineStyle(3, this.lineColor, 1, false, "normal", CapsStyle.NONE);
		if (this.state == 0) {
			_arg1.moveTo((this.x   (this.r * Math.cos(this.a))), (this.y   (this.r * Math.sin(this.a))));
			_arg1.drawCircle(this.x, this.y, this.r);
		} else {
			this.a1 = (this.a1   this.av);
			this.a2 = (this.a2   this.av);
			this.drawArc(_arg1, this.x, this.y, this.r, (((this.a2 - this.a1) * 180) / Math.PI), ((this.a1 * 180) / Math.PI));
		}
		//_arg1.lineStyle();
	}

	public function cut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void {
		this.a1 = Math.atan2((_arg2 - this.y), (_arg1 - this.x));
		this.a2 = Math.atan2((_arg4 - this.y), (_arg3 - this.x));
		if (_arg1 > _arg3) {
			this.vx = (this.vx   3);
			this.av = (this.av   0.05);
		} else {
			this.vx = (this.vx - 3);
			this.av = (this.av - 0.05);
		}
	}

	public function drawArc(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number = 0):void {
		var _local10:Number;
		var _local11:Number;
		var _local12:Number;
		var _local13:Number;
		if (_arg5 < 0) {
			_arg5 = (_arg5   360);
		}
		;
		if (_arg5 > 360) {
			_arg5 = 360;
		}
		;
		_arg5 = ((Math.PI / 180) * _arg5);
		var _local7:Number = (_arg5 / 8);
		var _local8:Number = (_arg4 / Math.cos((_local7 / 2)));
		_arg6 = (_arg6 * (Math.PI / 180));
		var _local9:Number = _arg6;
		var _local14:Number = (_arg2   (Math.cos(_arg6) * _arg4));
		var _local15:Number = (_arg3   (Math.sin(_arg6) * _arg4));
		_arg1.moveTo(_local14, _local15);
		var _local16:Number = 0;
		while (_local16 < 8) {
			_local9 = (_local9   _local7);
			_local10 = (_arg2   (Math.cos((_local9 - (_local7 / 2))) * _local8));
			_local11 = (_arg3   (Math.sin((_local9 - (_local7 / 2))) * _local8));
			_local12 = (_arg2   (Math.cos(_local9) * _arg4));
			_local13 = (_arg3   (Math.sin(_local9) * _arg4));
			_arg1.curveTo(_local10, _local11, _local12, _local13);
			_local16  ;
		}
		;
	}

}

标签: flash

实例下载地址

flash切水果游戏源码下载

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

相关文章

网友评论

第 1 楼 曹操 发表于: 2016-08-08 16:37 17
加好友QQ251784648 求指教

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警