Commit 76315174 authored by zjz1994's avatar zjz1994

人保财险消消乐

parent f0f9841e
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -21,43 +21,43 @@
"assets": [
{
"name": "底图",
"url": "//yun.duiba.com.cn/aurora/assets/109e30fa662276e0ee4f2e2c35b85bee6f300050.png",
"url": "//yun.duiba.com.cn/aurora/assets/d2b599cece087d5ab315cd1392f94139941280bb.png",
"uuid": "map",
"ext": ".png"
},
{
"name": "白虎",
"url": "//yun.duiba.com.cn/aurora/assets/b486b4a72c58850bbd1930b994e08802e34fb3e3.png",
"uuid": "btiger",
"name": "",
"url": "//yun.duiba.com.cn/aurora/assets/26780d2fb48d047e111857da9e82fe49b0d310a8.png",
"uuid": "gdog",
"ext": ".png"
},
{
"name": "雌虎",
"url": "//yun.duiba.com.cn/aurora/assets/c41afceb285432ed2c17c643df96efc20893adc8.png",
"uuid": "gtiger",
"name": "",
"url": "//yun.duiba.com.cn/aurora/assets/39a1a8865ca101d6fa29325bf1fc37c26190e382.png",
"uuid": "pbird",
"ext": ".png"
},
{
"name": "猴子",
"url": "//yun.duiba.com.cn/aurora/assets/ef7bc5d1fc38267adba71e07d517330f249d23ba.png",
"uuid": "monkey",
"name": "",
"url": "//yun.duiba.com.cn/aurora/assets/2e74dd7faab031f71e644dad340b4c83791b8bf0.png",
"uuid": "hniu",
"ext": ".png"
},
{
"name": "",
"url": "//yun.duiba.com.cn/aurora/assets/9ad18dfa34e1729e9893ac362975f9e062263f70.png",
"uuid": "bird",
"name": "兔子",
"url": "//yun.duiba.com.cn/aurora/assets/6c4033a865bc6c73b680bc31d29de55ac347d397.png",
"uuid": "bribbit",
"ext": ".png"
},
{
"name": "树熊",
"url": "//yun.duiba.com.cn/aurora/assets/277aa43d9f1bf3dd7a18e627335a166f0509684c.png",
"uuid": "koala",
"name": "",
"url": "//yun.duiba.com.cn/aurora/assets/c14e003bb3847bd7ab30eb6ba0915124f207bc31.png",
"uuid": "rpig",
"ext": ".png"
},
{
"name": "选中框",
"url": "//yun.duiba.com.cn/aurora/assets/a3ce52a41ed53ccfa7ce404dbc10102961c4a805.png",
"url": "//yun.duiba.com.cn/aurora/assets/c6ed5f3f94958e74fcbfc1da56e99795056fd75a.png",
"uuid": "selected",
"ext": ".png"
},
......
......@@ -31,10 +31,12 @@ export default class GameView extends engine.Container {
//选中
selectArr = [];
selectimg:engine.Image;
selectw:number;
selecth:number;
//屋子
homeimgday;
homeimgnight;
// homeimgday;
// homeimgnight;
conty = 140;
homex = 562;
......@@ -73,6 +75,8 @@ export default class GameView extends engine.Container {
level = 0;
inrecord = false;
requestGameOver = false;
elitype = 1;//1原地消失,2飞到目标位置
set gamestat(stat){//1游戏中,2,游戏外
this._gamestat = stat;
if(stat==2){
......@@ -92,12 +96,18 @@ export default class GameView extends engine.Container {
sptime = Date.now();
eptime;
seqscore;
//使用炸弹
useBoom:boolean = false;
setup() {
MapData.initPoolEle();
this.selectimg = new engine.Image(getTextureByName("选中框"));
this.selectimg.mouseEnabled = false;
this.selectw = this.selectimg.texture.width;
this.selecth = this.selectimg.texture.height;
this.selectimg.anchorX = this.selectw/2;
this.selectimg.anchorY = this.selecth/2;
//箭头cont
this.jiantou1 = new engine.Image(getTextureByName("交换箭头"));
......@@ -143,21 +153,21 @@ export default class GameView extends engine.Container {
let row = MapData.row;
let col = MapData.col;
this.homeimgday = createSvga("房子动画");
this.homeimgday.x = this.homex;
this.homeimgday.y = this.homey;
this.homeimgday.stop();
this.homeimgday.visible = false;
this.addChild(this.homeimgday);
// this.homeimgday = createSvga("房子动画");
// this.homeimgday.x = this.homex;
// this.homeimgday.y = this.homey;
// this.homeimgday.stop();
// this.homeimgday.visible = false;
// this.addChild(this.homeimgday);
this.homeimgnight = createSvga("夜晚房子");
this.homeimgnight.x = this.homex;
this.homeimgnight.y = this.homey;
this.homeimgnight.stop();
this.homeimgnight.visible = false;
this.addChild(this.homeimgnight);
// this.homeimgnight = createSvga("夜晚房子");
// this.homeimgnight.x = this.homex;
// this.homeimgnight.y = this.homey;
// this.homeimgnight.stop();
// this.homeimgnight.visible = false;
// this.addChild(this.homeimgnight);
......@@ -214,13 +224,45 @@ export default class GameView extends engine.Container {
// testbtn.y = 900;
// testbtn.fillColor = "red";
// testbtn.addEventListener(engine.MouseEvent.CLICK,this.reset,this);
//炸弹道具
let zhadanbtn = new engine.Label();
zhadanbtn.text = "炸弹";
zhadanbtn.size = 56;
zhadanbtn.width = 200;
zhadanbtn.height = 100;
this.addChild(zhadanbtn);
zhadanbtn.y = 900;
zhadanbtn.fillColor = "red";
zhadanbtn.addEventListener(engine.MouseEvent.CLICK,this.zhadanFunc,this);
//加时间道具
let timebtn = new engine.Label();
timebtn.text = "加时";
timebtn.size = 56;
timebtn.width = 200;
timebtn.height = 100;
this.addChild(timebtn);
timebtn.y = 900;
timebtn.x = 500;
timebtn.fillColor = "red";
timebtn.addEventListener(engine.MouseEvent.CLICK,this.addTimeFunc,this);
}
//炸弹
zhadanFunc(){
this.useBoom = true;
}
//加时间
addTimeFunc(){
console.log("加时间");
}
changeAni(){
this.changeHomeShow("night");
}
playComp(){
this.homeimgday.stop(1);
this.homeimgnight.stop(1);
// this.homeimgday.stop(1);
// this.homeimgnight.stop(1);
}
init(time,level,mode){
......@@ -352,18 +394,18 @@ export default class GameView extends engine.Container {
this.gametime = ngtime;
}
}
if(this.homeimgday&&this.homeimgday.visible){
let curframe = this.homeimgday.currentFrame;
if(curframe==this.homeimgday.totalFrames){
this.homeimgday.gotoAndStop(1);
}
}
if(this.homeimgnight&&this.homeimgnight.visible){
let curframe = this.homeimgnight.currentFrame;
if(curframe==this.homeimgnight.totalFrames){
this.homeimgnight.gotoAndStop(1);
}
}
// if(this.homeimgday&&this.homeimgday.visible){
// let curframe = this.homeimgday.currentFrame;
// if(curframe==this.homeimgday.totalFrames){
// this.homeimgday.gotoAndStop(1);
// }
// }
// if(this.homeimgnight&&this.homeimgnight.visible){
// let curframe = this.homeimgnight.currentFrame;
// if(curframe==this.homeimgnight.totalFrames){
// this.homeimgnight.gotoAndStop(1);
// }
// }
this.lastframeTime = ntime;
}
......@@ -487,6 +529,14 @@ export default class GameView extends engine.Container {
let sc = data.c;
let type = data.type;
let sname = sr+"_"+sc;
//使用炸弹
if(this.useBoom){
if(type=="mouse_down"){
this.unShowEleAttion();
this.boomeEle(sr,sc);
}
return;
}
//新增滑动操作
let lnewSelect = this.newSelect;
......@@ -557,11 +607,25 @@ export default class GameView extends engine.Container {
let r = rcname.split("_")[0];
let c = rcname.split("_")[1];
let rcpos = MapData.getRCPos(r,c);
engine.Tween.removeTweens(this.selectimg);
this.anicontainer.addChild(this.selectimg);
this.selectimg.x = rcpos[0];
this.selectimg.y = rcpos[1]+this.conty;
this.selectimg.x = rcpos[0]-3;
this.selectimg.y = rcpos[1]+this.conty-3;
this.startTweenSelectImg()
}
startTweenSelectImg(){
this.selectimg.scaleX = 1;
this.selectimg.scaleY = 1;
engine.Tween.get(this.selectimg,{loop:true})
.to({
scaleX:0.9,
scaleY:0.9
},500)
.to({
scaleX:1,
scaleY:1
},500);
}
changeElePos(){
......@@ -655,7 +719,7 @@ export default class GameView extends engine.Container {
let ielidata1 = this.eliminateArr[i];
let ielileng = ielidata1.length;
let addscore = 0;
if(ielileng==3){
if(ielileng<=3){
addscore = props.threeEscore;
}else if(ielileng==4){
addscore = props.fourEscore;
......@@ -679,6 +743,12 @@ export default class GameView extends engine.Container {
let ielix = ielinode.x;
let ieliy = ielinode.y;
let ietype = ielinode.type;
if(this.elitype==1){//原地消失
this.lattices[ielidxname] = "empty";
this.addScoreAni(ielix,ieliy,ietype,addscore);
this.goDisplayAni1(ielinode,ietype,ielix,ieliy);
}else{//飞到目标位置
this.container.removeChild(ielinode);
MapData.recoverEle(ielinode,ietype);
this.addScoreAni(ielix,ieliy,ietype,addscore);
......@@ -688,6 +758,7 @@ export default class GameView extends engine.Container {
this.goHomeAni(ielitype,ielix,ieliy);
}
}
}
await new Promise(res=>{
setTimeout(function(){
......@@ -701,8 +772,8 @@ export default class GameView extends engine.Container {
res1();
},500)
})
this.homeimgday.play(1,1);
this.homeimgnight.play(1,1);
// this.homeimgday.play(1,1);
// this.homeimgnight.play(1,1);
}
//掉落
async fall(type="normal"){
......@@ -833,7 +904,7 @@ export default class GameView extends engine.Container {
}
//原地消失
goDisplayAni(ielitype,ielix,ieliy){
console.log("老原地消失");
// console.log("老原地消失");
let aniele = MapData.getOneEle(ielitype);
aniele.alpha = 0;
......@@ -1513,22 +1584,21 @@ export default class GameView extends engine.Container {
let txtcolor = "#bd882f";
switch(ietype){
case ElementType.btiger:
txtcolor = "#ffffff";
case ElementType.gdog:
txtcolor = "#d3ff6d";
break;
case ElementType.gtiger:
txtcolor = "#f5a900";
case ElementType.pbird:
txtcolor = "#ff51d4";
break;
case ElementType.monkey:
txtcolor = "#bd882f";
case ElementType.hniu:
txtcolor = "#ffab55";
break;
case ElementType.bird:
txtcolor = "#54c1ef";
case ElementType.bribbit:
txtcolor = "#b3d4ff";
break;
case ElementType.koala:
txtcolor = "#c7c8c9";
case ElementType.rpig:
txtcolor = "#f2453b";
break;
default:
console.error("未定义类型,检查");
break;
......@@ -1574,7 +1644,52 @@ export default class GameView extends engine.Container {
}else{
_v = false;
}
this.homeimgday.visible = _v;
this.homeimgnight.visible = !_v;
// this.homeimgday.visible = _v;
// this.homeimgnight.visible = !_v;
}
//使用炸弹
boomeEle(row,col){
this.useBoom = false;
this.anicontainer.removeChild(this.selectimg);
this.changeEnable(false);
this.selectArr = new Array();
// console.log("使用炸弹rc",row,col);
this.eliminateArr = new Array();
for(let r=0;r<MapData.row;r++){
let irc = r+"_"+col;
let ielename = this.lattices[irc];
let iele:Element = this.container.getChildByName(ielename);
if(iele){
let eletype = iele.type;
this.eliminateArr.push([
{
idxname:irc,
type:eletype
}
])
}
}
for(let c=0;c<MapData.col;c++){
if(c!=col){
let irc = row+"_"+c;
let ielename = this.lattices[irc];
let iele:Element = this.container.getChildByName(ielename);
if(iele){
let eletype = iele.type;
this.eliminateArr.push([
{
idxname:irc,
type:eletype
}
])
}
}
}
// console.log("使用炸弹消除的元素",this.eliminateArr);
this.eliminate();
}
}
import Element from "./ele/Element";
import { getTextureByName } from "./utils";
export enum ElementType{
btiger = 1,
gtiger,
monkey,
bird,
koala
gdog = 1,
pbird,
hniu,
bribbit,
rpig
}
export enum GameEvent{
SelectEle = "SelectEle",
}
export default class MapData{
//单格大小
static itemsize = 129;
static itemsize = 116;
//
static paddingb = 10;
static paddingi = 5;
static paddingw = 7;
static paddingh = 7;
static paddingwi = 4;
static paddinghi = 2;
//
static row = 5;
static col = 5;
......@@ -28,11 +30,11 @@ export default class MapData{
static anispeed = 1000;
static btigerTex:engine.Texture;
static gtigerTex:engine.Texture;
static monkeyTex:engine.Texture;
static birdTex:engine.Texture;
static koalaTex:engine.Texture;
static gdotTex:engine.Texture;
static pbirdTex:engine.Texture;
static hniuTex:engine.Texture;
static bribbitTex:engine.Texture;
static rpigTex:engine.Texture;
static levelData:Array<Array<Array<number>>> = [
[
......@@ -73,10 +75,10 @@ export default class MapData{
]
static getRy(r){
return this.paddingb+r*(this.itemsize+this.paddingi);
return this.paddingh+r*(this.itemsize+this.paddinghi);
}
static getCx(c){
return this.paddingb+c*(this.itemsize+this.paddingi);
return this.paddingw+c*(this.itemsize+this.paddingwi);
}
static getRCPos(r,c){
let x = this.getCx(c);
......@@ -92,20 +94,20 @@ export default class MapData{
static getEtypeImgName(type:ElementType){
let ename:string;
switch(type){
case ElementType.btiger:
ename = "白虎";
case ElementType.gdog:
ename = "";
break;
case ElementType.gtiger:
ename = "雌虎";
case ElementType.pbird:
ename = "";
break;
case ElementType.monkey:
ename = "猴子";
case ElementType.hniu:
ename = "";
break;
case ElementType.bird:
ename = "";
case ElementType.bribbit:
ename = "兔子";
break;
case ElementType.koala:
ename = "树熊";
case ElementType.rpig:
ename = "";
break;
default:
console.error("未定义元素类型");
......@@ -116,40 +118,40 @@ export default class MapData{
static getEtypeImgTex(type:ElementType){
let etex:engine.Texture;
switch(type){
case ElementType.btiger:
if(!this.btigerTex){
this.btigerTex = getTextureByName("白虎");
console.log("新素材加载---白虎");
case ElementType.gdog:
if(!this.gdotTex){
this.gdotTex = getTextureByName("狗");
console.log("新素材加载---");
}
etex = this.btigerTex;
etex = this.gdotTex;
break;
case ElementType.gtiger:
if(!this.gtigerTex){
this.gtigerTex = getTextureByName("雌虎");
console.log("新素材加载---雌虎");
case ElementType.pbird:
if(!this.pbirdTex){
this.pbirdTex = getTextureByName("鸟");
console.log("新素材加载---");
}
etex = this.gtigerTex;
etex = this.pbirdTex;
break;
case ElementType.monkey:
if(!this.monkeyTex){
this.monkeyTex = getTextureByName("猴子");
console.log("新素材加载---猴子");
case ElementType.hniu:
if(!this.hniuTex){
this.hniuTex = getTextureByName("牛");
console.log("新素材加载---");
}
etex = this.monkeyTex;
etex = this.hniuTex;
break;
case ElementType.bird:
if(!this.birdTex){
this.birdTex = getTextureByName("鸟");
console.log("新素材加载---");
case ElementType.bribbit:
if(!this.bribbitTex){
this.bribbitTex = getTextureByName("兔子");
console.log("新素材加载---兔子");
}
etex = this.birdTex;
etex = this.bribbitTex;
break;
case ElementType.koala:
if(!this.koalaTex){
this.koalaTex = getTextureByName("树熊");
console.log("新素材加载---树熊");
case ElementType.rpig:
if(!this.rpigTex){
this.rpigTex = getTextureByName("猪");
console.log("新素材加载---");
}
etex = this.koalaTex;
etex = this.rpigTex;
break;
default:
console.error("未定义元素类型");
......@@ -159,22 +161,22 @@ export default class MapData{
}
static getRandEtype(){
let eletypeArr = [ElementType.btiger,ElementType.gtiger,ElementType.monkey,ElementType.bird,ElementType.koala];
let eletypeArr = [ElementType.gdog,ElementType.pbird,ElementType.hniu,ElementType.bribbit,ElementType.rpig];
let etype = eletypeArr[Math.floor(Math.random()*eletypeArr.length)];
return etype;
}
static initPoolEle(){
// console.error("初始化元素池");
this.btigerTex = getTextureByName("白虎");
this.gtigerTex = getTextureByName("雌虎");
this.monkeyTex = getTextureByName("猴子");
this.birdTex = getTextureByName("鸟");
this.koalaTex = getTextureByName("树熊");
this.gdotTex = getTextureByName("狗");
this.pbirdTex = getTextureByName("鸟");
this.hniuTex = getTextureByName("牛");
this.bribbitTex = getTextureByName("兔子");
this.rpigTex = getTextureByName("猪");
let eletypes = [ElementType.btiger,ElementType.gtiger,ElementType.monkey,ElementType.bird,ElementType.koala];
let eletypes = [ElementType.gdog,ElementType.pbird,ElementType.hniu,ElementType.bribbit,ElementType.rpig];
this.elePool["ele"] = new Array();
//初始5*5个元素备用;
for(let i=0;i<eletypes.length;i++){
......
......@@ -40,8 +40,6 @@ export default class Element extends engine.Container{
// console.log("大小",imgwid,imghei);
this.eimage.x = (this.width - imgwid)/2;
this.eimage.y = (this.height-imghei)/2;
}
setrc(r,c){
this.inrow = r;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment