📄 player.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 + -