⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 player.as

📁 小鱼历险记游戏
💻 AS
字号:
import game.Hero;
import game.fish.*;
import mx.utils.Delegate;
class game.Player {
	//放置游戏的路径
	private var _target:MovieClip;
	//游戏主角
	private var _hero:Hero;
	//游戏难度
	private var _level:Number;
	//游戏分数
	private var _score:Number = 0;
	private var _life = 100;
	private var _fish:Array;
	private var _index:Number = 0;
	private var _toolFish:Fish;
	private var _toolFish1:Fish;
	function Player(tar) {
		_target = tar;
		_fish = new Array(new FirstFish(), new SecondFish(), new ThirdFish(), new FourthFish(), new FifthFish());
		_toolFish = new SixthFish();
		_toolFish1 = new ToolFish();
		initHero();
		initFish(_index, "food");
		initFish(_index+1, "enemy");
		mapRoll();
		initToolFish();
		initToolFish1();
	}
	function initToolFish1() {
		var t = _toolFish1;
		t.connectToHero(_hero);
		t._path = _target;
		for (var i = 0; i<t._total; i++) {
			t.create();
		}
		t.addEventListener("onHit", Delegate.create(this, die));
		function die(obj) {
			_target.life_fish._xscale = 0;
			//game over
			_target.gotoAndStop(20);
		}
	}
	function initToolFish() {
		var t = _toolFish;
		t.connectToHero(_hero);
		t._path = _target;
		t._update = "food";
		for (var i = 0; i<t._total; i++) {
			t.create();
		}
		t.addEventListener("onHit", Delegate.create(this, addLife));
		function addLife(obj) {
			if (_life<90) {
				_life += 10;
			}
			_target.life_fish._xscale = _life;
			createScore("score_1", obj.fish, "+", 10);
			obj.fish.removeMovieClip();
		}
	}
	//创建主角
	function initHero() {
		_hero = new Hero();
		//对数:路径,链接名,深度
		_hero.create(_target, "hero", 1000);
	}
	//各种鱼
	function initFish(i, up) {
		var t = _fish[i];
		t.connectToHero(_hero);
		t._path = _target;
		t._update = up;
		for (var i = 0; i<t._total; i++) {
			t.create();
		}
		t.addEventListener("onHit", Delegate.create(this, func));
	}
	function func(obj) {
		var t = obj.target;
		update();
		if (t._update == "food") {
			var my_sound:Sound = new Sound();
			my_sound.attachSound("eat");
			my_sound.start();
			setScore();
			//分数递加
			createScore("score_0", obj.fish, "+", t._score);
			obj.fish.removeMovieClip();
			//只有当前级别的fish(food)不会出现
			if (t == _fish[_index]) {
				t.create();
			}
		} else if (t._update == "enemy") {
			setLife();
			var my_sound:Sound = new Sound();
			my_sound.attachSound("tach");
			my_sound.start();
			//生命减5
			createScore("score_1", obj.fish, "-", 2);
		}
	}
	function setScore() {
		this._score += 50;
		_target._showScore.text = String(this._score);
	}
	function setLife() {
		if (_life>0) {
			_life -= 2;
			_target.life_fish._xscale = _life;
		} else {
			//game over
			_target.gotoAndStop(20);
		}
	}
	function update() {
		//2000分升一级测试
		if (_score%1000 == 0 && _score != 0) {
			if (_index<(_fish.length-1)) {
				_index++;
				//fish变大
				_target.hero.gotoAndStop(_index+1);
				_target["misson"+_index]._visible = true;
				_fish[_index]._update = "food";
				initFish(_index+1, "enemy");
			} else {
				//通关
				_target.gotoAndStop(30);
			}
		}
	}
	function createScore(id, mc, str, val) {
		var depth = _target.getNextHighestDepth();
		var s = _target.attachMovie(id, id+depth, depth);
		s._x = mc._x;
		s._y = mc._y;
		s.score.text = str+val;
		s.onEnterFrame = function() {
			var d = random(5)-2;
			this._y -= 4;
			this._x += d;
			if (this._y<50) {
				this.removeMovieClip();
			}
		};
	}
	function mapRoll() {
		var obj = _target.fishmap;
		//不取整数,与fish的速度不同
		var spd = 1.5;
		var dir = 0;
		var w = (obj._width-550)/2;
		var left = 275-w;
		var right = 275+w;
		var ins = _target;
		obj.onEnterFrame = function() {
			if (_xmouse>450) {
				dir = -1;
			} else if (_xmouse<100) {
				dir = 1;
			} else {
				dir = 0;
			}
			if (this._x<=left) {
				this._x = left;
			} else if (this._x>right) {
				this._x = right;
			} else {
				for (var i in ins) {
					if ((ins[i]._name.slice(0, 4)) == "fish") {
						ins[i]._x += spd*dir;
					}
				}
			}
		};
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -