123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908 |
- var 苦数据列表;
- var 苦舞台层;
- var 苦舞台索引 = 0;
- var 常移步 = 8;
- var 常移步慢 = 8;
- var 常移步快 = 12;
- var 苦值 = 3;
- var 苦停止标志;
- var 苦游戏主体;
- var 苦运行地图;
- var 苦运行角色;
- var 苦名人层;
- var 苦项目层;
- var 苦星控制;
- var bgmusic=new MusicObject("audio/bgmusic.mp3",true);
- var 苦加载数据 = [
- {name : "num_0",path : "images/num_0.png"},
- {name : "num_1",path : "images/num_1.png"},
- {name : "num_2",path : "images/num_2.png"},
- {name : "num_3",path : "images/num_3.png"},
- {name : "num_4",path : "images/num_4.png"},
- {name : "num_5",path : "images/num_5.png"},
- {name : "num_6",path : "images/num_6.png"},
- {name : "num_7",path : "images/num_7.png"},
- {name : "num_8",path : "images/num_8.png"},
- {name : "num_9",path : "images/num_9.png"},
- {name : "effect",path : "images/effect.png"},
- {name : "logo",path : "kaishi.jpg"},
- {name : "inputbox",path : "images/inputbox.png"},
- {name : "spiritEffect",path : "images/spiritEffect.png"},
- {name : "b_background",path : "beijing.jpg"},
- {name : "m_background",path : "images/m_background.png"},
- {name : "stage",path : "images/stage.png"},
- {name : "chara",path : "images/chara.png"},
- {name : "bird",path : "images/bird.png"},
- {name : "gui",path : "images/gui.png"},
- {name : "window",path : "shibai.jpg"},
- {name : "HP_bg",path : "images/hp_bg.png"},
- {name : "HP_value",path : "images/hp_value.png"},
- ];
- init(1000/30, "legend", 640, 1136, 主);
- function 主() {
- var protocol = location.protocol;
- if(LGlobal.mobile){
- LGlobal.stageScale = LStageScaleMode.NO_BORDER;
- LSystem.screen(LStage.FULL_SCREEN);
- }
- LGlobal.setDebug(true);
- LMouseEventContainer.set(LMouseEvent.MOUSE_DOWN,true);
- LMouseEventContainer.set(LMouseEvent.MOUSE_UP,true);
- LMouseEventContainer.set(LMouseEvent.MOUSE_MOVE,true);
- loadingLayer = new LoadingSample4();
- addChild(loadingLayer);
- LLoadManage.load(苦加载数据, function(progress) {
- loadingLayer.setProgress(progress);
- }, 当图片加载完);
- }
- function 当图片加载完(result){
- 苦数据列表 = result;
- removeChild(loadingLayer);
- loadingLayer = null;
- 苦舞台层 = new LSprite();
- addChild(苦舞台层);
- // 游戏开始();
- var logo = new 商标();
- 苦舞台层.addChild(logo);
- return;
- var fps = new FPS();
- addChild(fps);
- }
- function 游戏开始(){
- 苦舞台层.die();
- 苦舞台层.removeAllChild();
- LTweenLite.removeAll();
- 常移步 = 常移步慢;
- 苦停止标志 = false;
- 苦游戏主体 = new 游戏主体();
- 苦舞台层.addChild(苦游戏主体);
- return;
- //debug
-
- var sprite = new LSprite();
- addChild(sprite);
- sprite.graphics.加(function (){
- var c = LGlobal.canvas;
- var w = 32,h = 32;
- var l1 = LGlobal.width/w;
- var l2 = LGlobal.height/h;
- c.beginPath();
- c.strokeStyle = "#000000";
- for(var i=1;i<l1;i++){
- c.moveTo(w*i,0);
- c.lineTo(w*i,LGlobal.height);
- }
- for(var i=1;i<l2;i++){
- c.moveTo(0,h*i);
- c.lineTo(LGlobal.width,h*i);
- }
- c.stroke();
- });
-
-
- }
- ///////////////////////////////////////
- function 背景(){
- base(this,LSprite,[]);
- this.初始();
- }
- 背景.prototype.初始 = function(){
- var 俺 = this;
- 俺.back = new LBitmap(new LBitmapData(苦数据列表["b_background"],0,0,640,1136));//800,480
- 俺.backX = 0;
- 俺.addChild(俺.back);
- 俺.grass = new LBitmap(new LBitmapData(苦数据列表["m_background"]));
- 俺.grass.y = LGlobal.height - 俺.grass.getHeight();
- 俺.addChild(俺.grass);
- 俺.addEventListener(LEvent.ENTER_FRAME,俺.心跳);
- };
- 背景.prototype.心跳 = function(event){
- var 俺 = event.target;
- if(苦游戏主体.为停止())return;
- 俺.backX += 常移步*0.1;
- if(俺.backX > LGlobal.width){
- 俺.backX -= LGlobal.width;
- }
- 俺.back.bitmapData.setCoordinate(俺.backX,0);
- 俺.grass.x -= 常移步*0.5;
- if(俺.grass.x + 960 < 0){
- 俺.grass.x = LGlobal.width;
- }
- };
- ///////////////////////////////////////
- function 我(hp){
- base(this,LSprite,[]);
- this.初始(hp);
- }
- 我.走 = "走";
- 我.飞 = "飞";
- 我.伤 = "伤";
- 我.跳 = "跳";
- 我.prototype.初始 = function(hp){
- var 俺 = this;
- 俺.hp = hp;
- var effect = new LBitmap(new LBitmapData(苦数据列表["effect"]));
- effect.x = -180;
- effect.y = -70;
- 俺.addChild(effect);
- 俺.effect = effect;
- 俺.effect.visible = false;
- var data = new LBitmapData(苦数据列表["chara"],0,0,100,130);
- var list = LGlobal.divideCoordinate(400,520,4,4);
- 俺.action = 我.走;
- 俺.heroShadows = [new LBitmap(data),new LBitmap(data)];
- 俺.heroShadows[0].alpha = 0.7;
- 俺.heroShadows[1].alpha = 0.3;
- 俺.heroShadows[0].visible = false;
- 俺.heroShadows[1].visible = false;
- 俺.addChild(俺.heroShadows[0]);
- 俺.addChild(俺.heroShadows[1]);
- 俺.hero = new LAnimationTimeline(data,list);
- 俺.hero.setLabel(我.走,0,0);
- 俺.hero.setLabel(我.飞,1,0);
- 俺.hero.setLabel(我.伤,2,0);
- 俺.hero.setLabel(我.跳,3,0);
- 俺.hero.x = -48;
- 俺.hero.y = -120;
- 俺.hero.speed = 6;
- 俺.addChild(俺.hero);
- 俺.heroShadows[0].x = 俺.hero.x - 20;
- 俺.heroShadows[0].y = 俺.hero.y;
- 俺.heroShadows[1].x = 俺.hero.x - 40;
- 俺.heroShadows[1].y = 俺.hero.y;
- 俺.vy = 0;
- 俺.jumpCount = 0;
- 俺.distance = 0;
- 俺.spiritCount = 0;
- 俺.countValue = 常移步*5;
- 俺.addEventListener(LEvent.ENTER_FRAME,俺.心跳);
- };
- 我.prototype.阴影改变 = function(value){
- var 俺 = this;
- 俺.heroShadows[0].visible = value;
- 俺.heroShadows[1].visible = value;
- };
- 我.prototype.心灵结束 = function(){
- var 俺 = 苦运行角色;
- 俺.spiritCount = 0;
- 俺.hero.play();
- 俺.hero.onframe();
- 俺.阴影改变(true);
- };
- 我.prototype.心灵开始 = function(){
- var 俺 = this;
- if(俺.spiritCount <= 1){
- 苦运行角色.effect.alpha = 0;
- 苦运行角色.effect.visible = true;
- 常移步 = 常移步快;
- LTweenLite.to(苦运行角色.effect,1,{alpha:1,ease:LEasing.None,onComplete:俺.心灵结束});
- return;
- }
- 俺.spiritCount--;
- var spirit = new LSprite();
- var spiritBitmap = new LBitmap(new LBitmapData(苦数据列表["spiritEffect"]));
- spiritBitmap.x = -spiritBitmap.getWidth()*0.5;
- spiritBitmap.y = -spiritBitmap.getHeight()*0.5;
- spirit.addChild(spiritBitmap);
- spirit.scaleX = spirit.scaleY = 5;
- 俺.spirit = spirit;
- 俺.addChild(spirit);
- LTweenLite.to(spirit,0.5,{scaleX:0.1,scaleY:0.1,rotate:360,ease:LEasing.None,onComplete:function(){
- 俺.spirit.remove();
- 俺.心灵开始();
- }});
- };
- 我.prototype.置矩形 = function(){
- var 俺 = this;
- 俺.rect = new LRectangle(50 + 俺.hero.x,22 + 俺.hero.y,50,86);
- };
- 我.prototype.无敌 = function(){
- return this.effect.visible;
- };
- 我.prototype.心跳 = function(event){
- var 俺 = event.target;
- if(苦游戏主体.为停止()){
- if(俺.hero.mode != 0){
- 俺.hero.stop();
- }
- return;
- }else if(俺.hero.mode == 0){
- 俺.hero.play();
- }
- 俺.y += 俺.vy;
- 俺.vy += 苦值;
- if(俺.无敌()){
- 苦星控制.改值(-0.1);
- if(苦星控制.value <= 0){
- 俺.effect.visible = false;
- 俺.阴影改变(false);
- }
- }
- if(俺.vy > 32)俺.vy = 32;
- if(俺.y > LGlobal.height + 100){
- 俺.die();
- // MySoundPlayer.playSound("gameover");
- 俺.parent.游戏结束();
- return;
- }
- 俺.distance += 常移步;
- var countValue = 俺.distance / 俺.countValue >>> 0;
- if(俺.distanceObj && 俺.distanceObj.value < countValue){
- 俺.distanceObj.置值(countValue);
- }
- if(俺.action == 我.飞){
- 俺.hp.改值(-0.5);
- if(俺.hp.value <= 1){
- 俺.跳起来();
- }else{
- // MySoundPlayer.playSound("飞");
- 俺.vy = 0;
- 俺.y -= 4;
- if(俺.y < 64)俺.y = 64;
- }
- return;
- }else if(俺.action == 我.伤){
- if(俺.hertCount-- < 0){
- 俺.运行起来();
- }
- }else{
- 俺.hp.改值(0.05);
- }
- if(俺.vy < 0)return;
- var checkList = 苦运行地图.childList,child;
- for(var i=0,l=checkList.length;i<l;i++){
- child = checkList[i];
- if(child.检查碰撞点(俺.x,俺.y)){
- 俺.y = child.y;
- 俺.vy = 0;
- 俺.jumpCount = 0;
- 俺.运行起来();
- break;
- }
- }
- };
- 我.prototype.跳 = function(){
- var 俺 = this;
- if(俺.action == 我.伤)return;
- if(俺.jumpCount < 2){
- // MySoundPlayer.playSound("跳");
- 俺.vy = -30;
- 俺.jumpCount++;
- 俺.跳起来();
- }else if(俺.hp.value > 1){
- 俺.飞();
- }
- };
- 我.prototype.跳完 = function(){
- var 俺 = this;
- if(俺.action == 我.伤)return;
- 俺.跳起来();
- };
- 我.prototype.跳起来 = function(){
- var 俺 = this;
- if(俺.action == 我.跳)return;
- 俺.action = 我.跳;
- 俺.hero.gotoAndPlay(我.跳);
- };
- 我.prototype.飞 = function(){
- var 俺 = this;
- if(俺.action == 我.飞)return;
- 俺.action = 我.飞;
- 俺.hero.gotoAndPlay(我.飞);
- 俺.hero.onframe();
- };
- 我.prototype.运行起来 = function(){
- var 俺 = this;
- if(俺.action == 我.走)return;
- if(俺.action == 我.伤 && 俺.hertCount>=0)return;
- 俺.action = 我.走;
- 俺.hero.gotoAndPlay(我.走);
- 俺.hero.onframe();
- };
- 我.prototype.伤 = function(){
- var 俺 = this;
- if(俺.action == 我.伤)return;
- 俺.action = 我.伤;
- 俺.hero.gotoAndPlay(我.伤);
- 俺.hertCount = 10;
- 俺.hp.改值(-20);
- };
- ///////////////////////////////////////
- function 商标(){
- base(this,LSprite,[]);
- this.初始();
- }
- 商标.prototype.初始 = function(){
- var 俺 = this,labelText;
- var bitmap = new LBitmap(new LBitmapData(苦数据列表["logo"]));
- 俺.addChild(bitmap);
- 俺.addEventListener(LMouseEvent.MOUSE_UP, 俺.开始);
- };
- 商标.prototype.开始 = function(event){
- var 俺 = event.clickTarget;
- 游戏开始();
- bgmusic.replay();
- };
- ///////////////////////////////////////
- function 地图(){
- base(this,LSprite,[]);
- this.初始();
- }
- 地图.prototype.初始 = function(){
- var 俺 = this;
- 俺.dieFloorList = [];
- 俺.加底部(2);
- 俺.floor.x = 0;
- 俺.addEventListener(LEvent.ENTER_FRAME,俺.心跳);
- };
- 地图.prototype.心跳 = function(event){
- var 俺 = event.target;
- if(苦游戏主体.为停止())return;
- while(俺.dieFloorList.length > 0){
- var child = 俺.dieFloorList.shift();
- 俺.removeChild(child);
- }
- };
- 地图.prototype.加底部 = function(index){
- var 俺 = this;
- 俺.floor = StageData.取底部(index);
- 俺.addChild(俺.floor);
- 俺.floor.addEventListener(底部.OUT_COMPLETE,俺.取底部);
- 俺.floor.addEventListener(底部.OUT_DIE,俺.加死亡底部);
- };
- 地图.prototype.取底部 = function(event){
- var 俺 = event.target.parent;
- 俺.floor.removeEventListener(底部.OUT_COMPLETE,俺.取底部);
- 俺.加底部(1);
- };
- 地图.prototype.加死亡底部 = function(event){
- var 俺 = event.target.parent;
- 俺.dieFloorList.push(event.target);
- };
- ///////////////////////////////////////
- var StageData = {
- 取底部:function(index){
- var floor;
- floor = new 底部(index);
- return floor;
- }
- };
- ///////////////////////////////////////
- function 游戏主体(){
- base(this,LSprite,[]);
- this.初始();
- }
- 游戏主体.prototype.初始 = function(){
- var 俺 = this;
- 俺.moveStepCount = 0;
- 俺.gameover = false;
- var background = new 背景();
- 俺.addChild(background);
- 俺.speedBitmap = new LBitmap(new LBitmapData(苦数据列表["stage"],32*14,32*3,40,48));
- 俺.speedBitmap.x = 32;
- 俺.speedBitmap.y = 30;
- 俺.speedBitmap.visible = false;
- 俺.addChild(俺.speedBitmap);
- 苦项目层 = new LSprite();
- 苦名人层 = new LSprite();
- 苦运行地图 = new 地图();
- 俺.addChild(苦运行地图);
- 俺.addChild(苦项目层);
- 俺.addChild(苦名人层);
- var hp = new 血();
- hp.x = 16;
- hp.y = 10;
- 苦星控制 = new 星();
- 苦星控制.x = 32 + hp.getWidth();
- 苦星控制.y = 2;
- 苦运行角色 = new 我(hp);
- 苦运行角色.x = 32 * 8;
- 苦运行角色.y = 32 * 4;
- 苦运行角色.置矩形();
- 俺.addChild(苦运行角色);
- 俺.character = 苦运行角色;
- 俺.addChild(hp);
- 俺.addChild(苦星控制);
- var num = new 数值(数值.LEFT);
- num.x = LGlobal.width/2 ;
- num.y = 42;
- 俺.addChild(num);
- 苦运行角色.distanceObj = num;
- 俺.stopBitmapData = new LBitmapData(苦数据列表["stage"],32*23,32*3,64,64);
- 俺.playBitmapData = new LBitmapData(苦数据列表["stage"],32*25,32*3,64,64);
- 俺.stopBitmap = new LBitmap(俺.stopBitmapData);
- 俺.stopBitmap.x = 416;
- 俺.stopBitmap.y = 16;
- 俺.addChild(俺.stopBitmap);
- 俺.addEventListener(LMouseEvent.MOUSE_UP, 俺.mouseup);
- 俺.addEventListener(LMouseEvent.MOUSE_DOWN, 俺.mousedown);
- 俺.addEventListener(LEvent.ENTER_FRAME,俺.心跳);
- };
- 游戏主体.prototype.为停止 = function(){
- if(苦停止标志 || 苦运行角色.spiritCount > 0){
- return true;
- }
- return false;
- };
- 游戏主体.prototype.心跳 = function(event){
- var 俺 = event.target,child,i,l;
- if(苦游戏主体.为停止())return;
- if(常移步 == 常移步快){
- if(俺.moveStepCount-- <= 0 && !苦运行角色.无敌()){
- 常移步 = 常移步慢;
- 俺.speedBitmap.visible = false;
- }
- }
- for(i=0,l=苦名人层.childList.length;i<l;i++){
- child = 苦名人层.childList[i];
- if(child.x < -96){
- child.remove();
- i--;
- l--;
- }
- }
- for(i=0,l=苦项目层.childList.length;i<l;i++){
- child = 苦项目层.childList[i];
- if(child.x < -96){
- child.remove();
- i--;
- l--;
- }
- }
- };
- 游戏主体.prototype.mousedown = function(event){
- var 俺 = event.clickTarget;
- if(event.selfX > 俺.stopBitmap.x && event.selfX < 俺.stopBitmap.x + 俺.stopBitmap.getWidth() &&
- event.selfY > 俺.stopBitmap.y && event.selfY < 俺.stopBitmap.y + 俺.stopBitmap.getHeight()){
- if(苦停止标志){
- 俺.stopBitmap.bitmapData = 俺.stopBitmapData;
- // MySoundPlayer.background.play();
- }else{
- 俺.stopBitmap.bitmapData = 俺.playBitmapData;
- // MySoundPlayer.background.stop();
- }
- 苦停止标志 = !苦停止标志;
- return;
- }
- if(苦游戏主体.为停止())return;
- // MySoundPlayer.loadSound();
- 俺.character.跳();
- };
- 游戏主体.prototype.mouseup = function(event){
- var 俺 = event.clickTarget;
- if(苦游戏主体.为停止())return;
- 俺.character.跳完();
- };
- 游戏主体.prototype.游戏结束 = function(event){
- 苦停止标志 = true;
- var 俺 = this;
- 俺.removeEventListener(LMouseEvent.MOUSE_UP, 俺.mouseup);
- 俺.removeEventListener(LMouseEvent.MOUSE_DOWN, 俺.mousedown);
- var overLayer = new 游戏结束();
- 俺.addChild(overLayer);
- };
- ///////////////////////////////////////
- function 底部(index){
- base(this,LSprite,[]);
- this.初始(index);
- }
- 底部.OUT_COMPLETE = "floor_out_complete";
- 底部.OUT_DIE = "floor_out_die";
- 底部.prototype.初始 = function(index){
- var 俺 = this;
- 俺.isOutComplete = false;
- 俺.x = LGlobal.width;
- 俺.y = 32*6 + 32*(8*Math.random() >>> 0);
- 俺.isStart = false;
- var bitmap,rightBitmap;
- switch(index){
- case 1:
- bitmap = new LBitmap(new LBitmapData(苦数据列表["stage"],0,0,32*(3 + (19*Math.random() >>> 0)),96));
- bitmap.y = -32;
- 俺.addChild(bitmap);
- break;
- default:
- 俺.isStart = true;
- bitmap = new LBitmap(new LBitmapData(苦数据列表["stage"],0,0,960,96));
- bitmap.y = -32;
- 俺.addChild(bitmap);
- rightBitmap = true;
- break;
- }
- if(!rightBitmap){
- rightBitmap = new LBitmap(new LBitmapData(苦数据列表["stage"],32*29,0,32,96));
- rightBitmap.x = bitmap.getWidth();
- rightBitmap.y = -32;
- 俺.addChild(rightBitmap);
- }
- 俺.maxRight = LGlobal.width - 32*2 - 32*(10*Math.random() >>> 0);
- 俺.right = 俺.getWidth();
- 俺.bottom = 32*2;
- 名人.加(俺);
- 俺.addEventListener(LEvent.ENTER_FRAME,俺.心跳);
- };
- 底部.prototype.心跳 = function(event){
- var 俺 = event.target;
- if(苦游戏主体.为停止())return;
- 俺.x -= 常移步;
- if(!俺.isOutComplete && 俺.x + 俺.getWidth() < 俺.maxRight){
- 俺.isOutComplete = true;
- 俺.dispatchEvent(底部.OUT_COMPLETE);
- }else if(俺.x + 俺.getWidth() < 0){
- 俺.dispatchEvent(底部.OUT_DIE);
- 俺.die();
- }
- };
- 底部.prototype.检查碰撞点 = function(x,y){
- var 俺 = this;
- if(x > 俺.x && x < 俺.x + 俺.right && y > 俺.y && y< 俺.y + 俺.bottom){
- return true;
- }
- return false;
- };
- ///////////////////////////////////////
- function 血(){
- base(this,LSprite,[]);
- this.初始();
- }
- 血.prototype.初始 = function(){
- var 俺 = this;
- var HP_bg = new LBitmap(new LBitmapData(苦数据列表["HP_bg"]));
- HP_bg.x = 445; //-15
- HP_bg.y = 100; //-2
- 俺.addChild(HP_bg);
- 俺.value = 俺.maxValue = 100;
- 俺.HP_value = new LBitmap(new LBitmapData(苦数据列表["HP_value"]));
- 俺.HP_value.x = 453; //-15
- 俺.HP_value.y = 102; //-2
- 俺.addChild(俺.HP_value);
- };
- 血.prototype.改值 = function(value){
- var 俺 = this;
- 俺.value += value;
- if(俺.value < 1){
- 俺.value = 1;
- }else if(俺.value > 100){
- 俺.value = 100;
- }
- 俺.HP_value.scaleX = 俺.value/俺.maxValue;
- };
- ///////////////////////////////////////
- function 数值(direction){
- base(this,LSprite,[]);
- this.初始(direction);
- }
- 数值.LEFT = "num_left";
- 数值.RIGHT = "num_right";
- 数值.prototype.初始 = function(direction){
- var 俺 = this;
- 俺.direction = direction;
- 俺.苦数据列表 = [
- new LBitmapData(苦数据列表["num_0"]),
- new LBitmapData(苦数据列表["num_1"]),
- new LBitmapData(苦数据列表["num_2"]),
- new LBitmapData(苦数据列表["num_3"]),
- new LBitmapData(苦数据列表["num_4"]),
- new LBitmapData(苦数据列表["num_5"]),
- new LBitmapData(苦数据列表["num_6"]),
- new LBitmapData(苦数据列表["num_7"]),
- new LBitmapData(苦数据列表["num_8"]),
- new LBitmapData(苦数据列表["num_9"])
- ];
- 俺.list = [];
- 俺.置值(0);
- };
- 数值.prototype.置值 = function(value){
- var 俺 = this;
- 俺.value = value;
- var strValue = 俺.value.toString(),numBitmap,sx;
- if(俺.childList.length != strValue.length){
- 俺.置列表(strValue.length);
- }
- for(var i=0,l=strValue.length;i<l;i++){
- numBitmap = 俺.childList[i];
- numBitmap.bitmapData = 俺.苦数据列表[parseInt(strValue.charAt(i))];
- }
- };
- 数值.prototype.置列表 = function(length){
- var 俺 = this;
- if(俺.childList.length > length){
- 俺.childList.splice(length - 1,俺.childList.length - length);
- return;
- }
- var sx,numBitmap;
- if(俺.direction == 数值.LEFT){
- sx = -length*20;
- }else{
- sx = -20;
- }
- for(var i=0,l=length;i<l;i++){
- if(i >= 俺.childList.length){
- numBitmap = new LBitmap(俺.苦数据列表[0]);
- 俺.addChild(numBitmap);
- }
- numBitmap = 俺.childList[i];
- sx += 20;
- numBitmap.x = sx;
- }
- };
- ///////////////////////////////////////
- function 名人(name){
- base(this,LSprite,[]);
- this.初始(name);
- }
- 名人.prototype.初始 = function(name){
- var 俺 = this;
- 俺.name = name;
- var data = new LBitmapData(苦数据列表[name],0,0,96,96);
- var list = LGlobal.divideCoordinate(384,96,1,4);
- 俺.hero = new LAnimationTimeline(data,list);
- 俺.hero.x = -48;
- 俺.hero.y = -90;
- 俺.hero.speed = 16; //6
- 俺.addChild(俺.hero);
- 俺.vy = 0;
- 俺.苦值 = 0;
- 俺.speedx = 0;
- if(俺.name == "gui"){
- 俺.苦值 = 苦值;
- 俺.hero.y = -96;
- 俺.rect = new LRectangle(-48,-70,96,70);
- }else if(俺.name == "bird"){
- 俺.hero.y = -64;
- 俺.speedx = 14; //4
- 俺.rect = new LRectangle(-32,-32,64,32);
- }
- //俺.graphics.drawRect(2,"#ff0000",[俺.rect.x,俺.rect.y,俺.rect.width,俺.rect.height],true,"#880088");
- 俺.addEventListener(LEvent.ENTER_FRAME,俺.心跳);
- };
- 名人.prototype.心跳 = function(event){
- var 俺 = event.target;
- if(苦游戏主体.为停止()){
- if(俺.hero.mode != 0){
- 俺.hero.stop();
- }
- return;
- }else if(俺.hero.mode == 0){
- 俺.hero.play();
- }
- 俺.检查碰撞();
- 俺.y += 俺.vy;
- 俺.vy += 俺.苦值;
- 俺.x -= (常移步 + 俺.speedx);
- if(俺.vy <= 0)return;
- var checkList = 苦运行地图.childList,child;
- for(var i=0,l=checkList.length;i<l;i++){
- child = checkList[i];
- if(child.检查碰撞点(俺.x,俺.y)){
- 俺.y = child.y;
- 俺.vy = 0;
- break;
- }
- }
- };
- 名人.prototype.检查碰撞 = function(){
- var 俺 = this;
- if(俺.x < -96)return;
- if(苦运行角色.rect.action != 我.伤){
- var ix = (俺.x + 俺.rect.x) > (苦运行角色.x + 苦运行角色.rect.x) ? (俺.x + 俺.rect.x) : (苦运行角色.x + 苦运行角色.rect.x);
- var iy = (俺.y + 俺.rect.y) > (苦运行角色.y + 苦运行角色.rect.y) ? (俺.y + 俺.rect.y) : (苦运行角色.y + 苦运行角色.rect.y);
- var ax = (俺.x + 俺.rect.x + 俺.rect.width) > (苦运行角色.x + 苦运行角色.rect.x + 苦运行角色.rect.width) ? (苦运行角色.x + 苦运行角色.rect.x + 苦运行角色.rect.width) : (俺.x + 俺.rect.x + 俺.rect.width);
- var ay = (俺.y + 俺.rect.y + 俺.rect.height) > (苦运行角色.y + 苦运行角色.rect.y + 苦运行角色.rect.height) ? (苦运行角色.y + 苦运行角色.rect.y + 苦运行角色.rect.height) : (俺.y + 俺.rect.y + 俺.rect.height);
- if(ix <= ax && iy <= ay){
- if(苦运行角色.无敌()){
- 俺.removeEventListener(LEvent.ENTER_FRAME,俺.心跳);
- LTweenLite.to(俺,4,{y:Math.random()>0.5?-LGlobal.height:LGlobal.height*2,x:-200,ease:Elastic.easeOut});
- }else{
- 苦运行角色.伤();
- }
- }
- }
- };
- 名人.加 = function(floor){
- if(floor.isStart)return;
- var npc;
- var randNum = Math.random();
- if(randNum > 0.8){
- npc = new 名人("gui");
- npc.y = floor.y - 32;
- }else if(randNum > 0.6){
- npc = new 名人("bird");
- npc.y = floor.y - npc.getHeight();
- }else{
- 项.加(floor);
- }
- if(npc){
- npc.x = 48 + floor.x + (floor.getWidth() - 96)*Math.random();
- 苦名人层.addChild(npc);
- }
- };
- ///////////////////////////////////////
- function 项(name){
- base(this,LSprite,[]);
- this.初始(name);
- }
- 项.MODE_LIVE = "live";
- 项.MODE_GET = "get";
- 项.MODE_DELETE = "delete";
- 项.prototype.初始 = function(name){
- var 俺 = this;
- 俺.name = name;
- if(俺.name == "star"){
- 俺.bitmap = new LBitmap(new LBitmapData(苦数据列表["stage"],32*9,32*3,32,32));
- }else if(俺.name == "speed"){
- 俺.bitmap = new LBitmap(new LBitmapData(苦数据列表["stage"],32*14,32*3,40,48));
- 俺.bitmap.x = -1;
- 俺.bitmap.y = -8;
- }else if(俺.name == "solution"){
- 俺.bitmap = new LBitmap(new LBitmapData(苦数据列表["stage"],32*16,32*3,40,48));
- 俺.bitmap.x = -4;
- 俺.bitmap.y = -8;
- }
- 俺.mode = 项.MODE_LIVE;
- 俺.addChild(俺.bitmap);
- 俺.addEventListener(LEvent.ENTER_FRAME,俺.心跳);
- };
- 项.prototype.心跳 = function(event){
- var 俺 = event.target;
- if(苦游戏主体.为停止())return;
- if(俺.mode == 项.MODE_LIVE){
- 俺.检查碰撞();
- }
- 俺.x -= 常移步;
- };
- 项.prototype.检查碰撞 = function(){
- var 俺 = this;
- if(俺.x < -130)return;
- if(苦运行角色.rect.action != 我.伤){
- var ix = 俺.x > (苦运行角色.x + 苦运行角色.rect.x) ? 俺.x : (苦运行角色.x + 苦运行角色.rect.x);
- var iy = 俺.y > (苦运行角色.y + 苦运行角色.rect.y) ? 俺.y : (苦运行角色.y + 苦运行角色.rect.y);
- var ax = (俺.x + 32) > (苦运行角色.x + 苦运行角色.rect.x + 苦运行角色.rect.width) ? (苦运行角色.x + 苦运行角色.rect.x + 苦运行角色.rect.width) : (俺.x + 32);
- var ay = (俺.y + 32) > (苦运行角色.y + 苦运行角色.rect.y + 苦运行角色.rect.height) ? (苦运行角色.y + 苦运行角色.rect.y + 苦运行角色.rect.height) : (俺.y + 32);
- if(ix <= ax && iy <= ay){
- if(俺.name == "star"){
- 苦星控制.改值(1);
- }else if(俺.name == "speed"){
- 苦游戏主体.moveStepCount = 200;
- 苦游戏主体.speedBitmap.visible = true;
- 常移步 = 常移步快;
- }else if(俺.name == "solution"){
- 苦运行角色.hp.改值(20);
- }
- // MySoundPlayer.playSound("get");
- 俺.mode = 项.MODE_GET;
- LTweenLite.to(俺.bitmap,0.2,{y:-10,scaleX:0.1,alpha:0.75,ease:LEasing.None})
- .to(俺.bitmap,0.2,{y:-20,scaleX:1,alpha:0.5,ease:LEasing.None})
- .to(俺.bitmap,0.2,{y:-30,scaleX:0.1,alpha:0.25,ease:LEasing.None})
- .to(俺.bitmap,0.2,{y:-40,scaleX:1,alpha:0,ease:LEasing.None});
- }
- }
- };
- 项.加 = function(floor){
- var item,i;
- var randNum = Math.random();
- if(randNum > 0.7){
- return;
- }
- var maxnum = floor.getWidth()/32 >>> 0,addnum;
- if(maxnum > 5){
- addnum = 5 + ((maxnum - 5)*Math.random() >>> 0);
- }else{
- addnum = maxnum;
- }
- var sx = floor.x + (floor.getWidth() - addnum*32)*0.5;//路上出来的“心”★
- var specialItem = false;
- for(i=0;i<addnum;i++){
- if(i % 2 == 0)continue;
- randNum = Math.random();
- if(randNum > 0.95 && !specialItem){
- specialItem = true;
- item = new 项("speed");
- }else if(randNum > 0.9 && !specialItem){
- specialItem = true;
- item = new 项("solution");
- }else{
- item = new 项("star");
- }
- item.x = sx + i*32;
- item.y = floor.y - 32;
- 苦项目层.addChild(item);
- }
- };
- function 星(){
- base(this,LSprite,[]);
- this.初始();
- }
- 星.prototype.初始 = function(){
- var 俺 = this;
- var Star_bg = new LBitmap(new LBitmapData(苦数据列表["stage"],32*9,32*4,32*5,32));
- 俺.addChild(Star_bg);
- 俺.value = 0;
- 俺.maxValue = 50;
- 俺.Star_value = new LBitmap(new LBitmapData(苦数据列表["stage"],32*9,32*3,32*5,32));
- 俺.addChild(俺.Star_value);
- 俺.改值(49);
- };
- 星.prototype.改值 = function(value){
- var 俺 = this;
- 俺.value += value;
- 俺.Star_value.visible = true;
- if(俺.value < 0){
- 俺.value = 0;
- 俺.Star_value.visible = false;
- return;
- }else if(俺.value > 俺.maxValue){
- 俺.value = 俺.maxValue;
- }
- 俺.Star_value.bitmapData.setProperties(32*9,32*3,32*5*俺.value/俺.maxValue,32);
- if(俺.value == 俺.maxValue && !苦运行角色.无敌()){
- 苦运行角色.spiritCount = 4;
- 苦运行角色.hero.stop();
- 苦运行角色.心灵开始();
- }
- };
- ///////////////////////////////////////
- function 游戏结束(){
- base(this,LSprite,[]);
- this.初始();
- }
- 游戏结束.prototype.初始 = function(){
- var 俺 = this;
- 俺.overLayer = new LSprite();
- 俺.addChild(俺.overLayer);
- var windowBitmap = new LBitmap(new LBitmapData(苦数据列表["window"]));
- 俺.overLayer.addChild(windowBitmap);
- 俺.overLayer.x = (LGlobal.width - 俺.overLayer.getWidth())*0.5;
- 俺.overLayer.y = (LGlobal.height - 俺.overLayer.getHeight())*0.5;
- var 蚊游戏分 = new LTextField();
- 蚊游戏分.text = "勇气 : " + 苦运行角色.distanceObj.value;
- 蚊游戏分.color = "#FFFFFF";
- 蚊游戏分.size = 45;
- 蚊游戏分.weight = "bolder";
- 蚊游戏分.x = 210;
- 蚊游戏分.y = 120;
- 俺.overLayer.addChild(蚊游戏分);
- // updateShare(苦运行角色.distanceObj.value);
- // Play68.setRankingScoreDesc(苦运行角色.distanceObj.value);
- bgmusic.pause();
- var 豹再来 = new LButtonSample1("再来一次");
- 豹再来.x = 150;
- 豹再来.y = 650;
- 豹再来.width = 150;
- 豹再来.height = 60;
- 俺.overLayer.addChild(豹再来);
- 豹再来.addEventListener(LMouseEvent.MOUSE_UP, function(){
- 游戏开始();
- bgmusic.replay();
- });
- var more = new LButtonSample1("更多游戏");
- more.x = 350;
- more.y = 650;
- more.width = 150;
- more.height = 60;
- 俺.overLayer.addChild(more);
- more.addEventListener(LMouseEvent.MOUSE_UP, function(){
- clickMore();
- });
- };
|