Commit ded5259a authored by wildfirecode's avatar wildfirecode

1

parent 6acae238
...@@ -45,6 +45,9 @@ ...@@ -45,6 +45,9 @@
<script src="libs/security.js"></script> <script src="libs/security.js"></script>
<script src="libs/downloadApp.js"></script> <script src="libs/downloadApp.js"></script>
<script> <script>
// localStorage.clear();
// localStorage.setItem('currentLevel','1');
// localStorage.setItem('currentScore','0');
window['development'] = true; window['development'] = true;
var gameId = 1; var gameId = 1;
var CFG = { var CFG = {
......
import { ModuleTypes } from "../types/sceneTypes";
import getSkinPath from "../utils/getSkinPath"; import getSkinPath from "../utils/getSkinPath";
export default class ComponentBase extends eui.Component { export default class ComponentBase extends eui.Component {
protected data: any; protected data: any;
type:ModuleTypes
constructor() { constructor() {
super(); super();
this.data = {}; this.data = {};
......
...@@ -19,6 +19,7 @@ export default class PanelCtrl extends egret.EventDispatcher { ...@@ -19,6 +19,7 @@ export default class PanelCtrl extends egret.EventDispatcher {
} }
const cls = this._panelClassMap[type]; const cls = this._panelClassMap[type];
const panel: Panel = new cls(data); const panel: Panel = new cls(data);
panel.type=type;
this.addMask(); this.addMask();
if (!window['development']) { if (!window['development']) {
Loading.instace.show(); Loading.instace.show();
...@@ -73,14 +74,14 @@ export default class PanelCtrl extends egret.EventDispatcher { ...@@ -73,14 +74,14 @@ export default class PanelCtrl extends egret.EventDispatcher {
if (!useTween) { if (!useTween) {
this._parent.removeChild(panel); this._parent.removeChild(panel);
this.removeMask(useTween); this.removeMask(useTween);
this.dispatchEvent(new egret.Event('onPanelRemoved')) this.dispatchEvent(new egret.Event('onPanelRemoved',false,false,panel))
} else { } else {
const tw = egret.Tween.get(panel); const tw = egret.Tween.get(panel);
tw.to({ y: panel.stage.stageHeight }, 300, egret.Ease.quartIn) tw.to({ y: panel.stage.stageHeight }, 300, egret.Ease.quartIn)
.call(() => { .call(() => {
this._parent.removeChild(panel); this._parent.removeChild(panel);
this.removeMask(useTween); this.removeMask(useTween);
this.dispatchEvent(new egret.Event('onPanelRemoved')) this.dispatchEvent(new egret.Event('onPanelRemoved',false,false,panel))
}, this); }, this);
} }
this._current=null; this._current=null;
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
<e:Image source="bubble_png" x="268" y="1082" visible="false"/> <e:Image source="bubble_png" x="268" y="1082" visible="false"/>
<e:Image id="progressbg" source="progressbg_png" y="74" x="182.5"/> <e:Image id="progressbg" source="progressbg_png" y="74" x="182.5"/>
<e:Image id="progressfront" source="progressfront_png" width="380" y="77" x="185"/> <e:Image id="progressfront" source="progressfront_png" width="380" y="77" x="185"/>
<e:Group id="progress1" y="74" width="386" height="36" horizontalCenter="0"> <e:Group id="progress1" y="74" width="386" height="36" horizontalCenter="0" visible="false">
<e:Image verticalCenter="0" x="325" source="progress_f1_png"/> <e:Image verticalCenter="0" x="325" source="progress_f1_png"/>
<e:Image source="5_png" x="350.5" y="23.02"/> <e:Image source="5_png" x="350.5" y="23.02"/>
</e:Group> </e:Group>
......
...@@ -4,15 +4,17 @@ import { ABNetManager } from "../../libs/tc/manager/ABNetManager"; ...@@ -4,15 +4,17 @@ import { ABNetManager } from "../../libs/tc/manager/ABNetManager";
import { GDispatcher } from "../../libs/tc/util/GDispatcher"; import { GDispatcher } from "../../libs/tc/util/GDispatcher";
import EgretRender from "../physics/EgretRender"; import EgretRender from "../physics/EgretRender";
import check from "./check"; import check from "./check";
import { bubble, bubbleGroup, bubbleMask } from "./collisionConfig"; import { bubble, bubbleGroup, bubbleMask, award } from "./collisionConfig";
import createBox from "./createBox"; import createBox from "./createBox";
import createBtns from "./createBtns"; import createBtns from "./createBtns";
import createBubblePic from "./createBubblePic"; import createBubblePic from "./createBubblePic";
import createItems from "./createItems"; import createItems, { rollbackIcon } from "./createItems";
import { getCurrentPercent, onLvBoom, getCurrentLevel, getLevelAniTag, setLevelAniTag, addCurrentScore } from "./levels"; import { getCurrentPercent, onLvBoom, getCurrentLevel, getLevelAniTag, setLevelAniTag, addCurrentScore, toNextLevel, getLevelData, getCurrentScore } from "./levels";
import random from "./random"; import random from "./random";
import { startStandbyBubblesLeft, startStandbyBubblesRight, stopStandbyBubblesLeft, stopStandbyBubblesRight } from "./standbyBubbles"; import { startStandbyBubblesLeft, startStandbyBubblesRight, stopStandbyBubblesLeft, stopStandbyBubblesRight } from "./standbyBubbles";
import updateLVProgress from "./updateLVProgress"; import updateLVProgress from "./updateLVProgress";
import Panel from "../../libs/new_wx/components/Panel";
import { ModuleTypes } from "../../libs/new_wx/types/sceneTypes";
export default class StartScene extends StartSceneBase { export default class StartScene extends StartSceneBase {
_engine: Matter.Engine; _engine: Matter.Engine;
...@@ -22,8 +24,23 @@ export default class StartScene extends StartSceneBase { ...@@ -22,8 +24,23 @@ export default class StartScene extends StartSceneBase {
_startStandbyBubblesRight: number; _startStandbyBubblesRight: number;
egretRenderContainer: egret.Sprite; egretRenderContainer: egret.Sprite;
onPanelRemoved() { onPanelRemoved(e: egret.Event) {
const panel: Panel = e.data;
if (panel.type != ModuleTypes.PRIZE_PANEL) return;
if (toNextLevel()) {
this.initLevelView();
this.playLevelAni();
this.clearAwardBody();
createItems(this);
}
}
clearAwardBody() {
const bodies = Matter.Composite.allBodies(this._engine.world);
const isAward = (i: Matter.Body) => { return i.collisionFilter.group == award }
bodies.forEach(i => {
if (isAward(i)) this._egretRender.remove(i);
})
} }
onNetError() { onNetError() {
...@@ -34,11 +51,7 @@ export default class StartScene extends StartSceneBase { ...@@ -34,11 +51,7 @@ export default class StartScene extends StartSceneBase {
} }
toNextLevel() { initLevelView() {
}
initLevel() {
const lv = getCurrentLevel(); const lv = getCurrentLevel();
updateLVProgress(this, lv); updateLVProgress(this, lv);
this.updateProgress(); this.updateProgress();
...@@ -68,6 +81,7 @@ export default class StartScene extends StartSceneBase { ...@@ -68,6 +81,7 @@ export default class StartScene extends StartSceneBase {
} }
onBoom(): any { onBoom(): any {
rollbackIcon(getCurrentScore(),this);
onLvBoom(); onLvBoom();
this.updateProgress(); this.updateProgress();
} }
...@@ -140,7 +154,7 @@ export default class StartScene extends StartSceneBase { ...@@ -140,7 +154,7 @@ export default class StartScene extends StartSceneBase {
rect.width = 0; rect.width = 0;
this.progressfront.mask = rect; this.progressfront.mask = rect;
this.initLevel(); this.initLevelView();
this.playLevelAni(); this.playLevelAni();
const reslist = ['boom', 'gift', 'candy', 'coin', 'egg'] const reslist = ['boom', 'gift', 'candy', 'coin', 'egg']
......
import { award } from "./collisionConfig"; import { award } from "./collisionConfig";
import StartScene from "./StartScene"; import StartScene from "./StartScene";
import { playBoom, playSuccess, playScoreAni } from "./playMovieClip"; import { playBoom, playSuccess } from "./playMovieClip";
import vibrate from "./vibrate"; import vibrate from "./vibrate";
import LabelType from "./items/LabelType"; import LabelType from "./items/LabelType";
import { createNewBubble } from "./createItems"; import { createNewBubble } from "./createItems";
...@@ -42,6 +42,7 @@ const check = (_this: StartScene) => { ...@@ -42,6 +42,7 @@ const check = (_this: StartScene) => {
} }
else if (i.label == LabelType.egg) { else if (i.label == LabelType.egg) {
_this._egretRender.remove(i); _this._egretRender.remove(i);
PanelCtrl.instance.show(ModuleTypes.TREASURE_PANEL);
} }
else if (i.label == LabelType.candy) { else if (i.label == LabelType.candy) {
_this._egretRender.remove(i); _this._egretRender.remove(i);
...@@ -49,10 +50,12 @@ const check = (_this: StartScene) => { ...@@ -49,10 +50,12 @@ const check = (_this: StartScene) => {
} }
else if (i.label == LabelType.gift) { else if (i.label == LabelType.gift) {
_this._egretRender.remove(i); _this._egretRender.remove(i);
PanelCtrl.instance.show(ModuleTypes.TREASURE_PANEL);
} else { } else {
// console.log('不是boom,重用', Date.now() / 1000); // console.log('不是boom,重用', Date.now() / 1000);
playScoreAni(_this.egretRenderContainer, 1) // playScoreAni(_this.egretRenderContainer, 1)
playSuccess(_this.egretRenderContainer); playSuccess(_this.egretRenderContainer);
_this._egretRender.remove(i);
_this.addScore(); _this.addScore();
checkAdd(_this); checkAdd(_this);
} }
......
...@@ -3,15 +3,15 @@ import createItem from "./items/createItem"; ...@@ -3,15 +3,15 @@ import createItem from "./items/createItem";
import { award, awardMask } from "./collisionConfig"; import { award, awardMask } from "./collisionConfig";
import random from "./random"; import random from "./random";
import LabelType from "./items/LabelType"; import LabelType from "./items/LabelType";
import { getCurrentItems } from "./levels"; import { getCurrentItems, getCurrentScore } from "./levels";
export const createNewBubble = (_this: StartScene, type: LabelType) => { export const createNewBubble = (_this: StartScene, type: LabelType) => {
createBubble(_this, type, 750/2, 220,0.001*100); createBubble(_this, type, 750 / 2, 220, { x: 0, y: 0.1 });
} }
const createBubble = (_this: StartScene, type: LabelType, x: number, y: number,density=0.001) => { const createBubble = (_this: StartScene, type: LabelType, x: number, y: number, force = { x: 0, y: 0 }) => {
let scale; let scale;
const size = random(70, 100); const size = random(85, 100);
const maxsize = 100; const maxsize = 100;
scale = size / maxsize; scale = size / maxsize;
const baseItem = createItem(scale, type); const baseItem = createItem(scale, type);
...@@ -26,16 +26,38 @@ const createBubble = (_this: StartScene, type: LabelType, x: number, y: number,d ...@@ -26,16 +26,38 @@ const createBubble = (_this: StartScene, type: LabelType, x: number, y: number,d
angle: angle, angle: angle,
label: baseItem.type, label: baseItem.type,
friction: 0, friction: 0,
density:density force: force
}); });
} }
export const rollbackIcon = (nums: number, _this: StartScene) => {
const startY = 200;
const startX = Math.random() > .5 ? 150 : 750 - 150;
createBubble(_this, LabelType.boom, startX, startY);
let count = 0;
const coinsFall = setInterval(() => {
if (count <= nums - 1) {
const startX = Math.random() > .5 ? 150 : 750 - 150;
createBubble(_this, LabelType.coin, startX, startY)
count++;
} else {
//结束
}
}, 100);
}
export default (_this: StartScene) => { export default (_this: StartScene) => {
const score = getCurrentScore();
const items = getCurrentItems();//[[LabelType.boom, 1], [LabelType.coin, 5]] const items = getCurrentItems();//[[LabelType.boom, 1], [LabelType.coin, 5]]
const list = []; const list = [];
for (const item of items) { for (const item of items) {
for (let i = 0; i < item[1]; i++) { const type = item[0];
list.push(item[0]); let nums = item[1];
if(type==LabelType.coin)
nums = nums - score;
for (let i = 0; i < nums; i++) {
list.push(type);
} }
} }
let count = 0; let count = 0;
......
import LabelType from "./items/LabelType"; import LabelType from "./items/LabelType";
const levels = { const levels = {
'1': { max: 5, items: [[LabelType.boom, 1], [LabelType.coin, 5]], awards: [[5, LabelType.candy]] } '1': { max: 5, items: [[LabelType.boom, 1], [LabelType.coin, 5+4]], awards: [[5, LabelType.candy]] },
'2': { max: 10, items: [[LabelType.boom, 2], [LabelType.coin, 10+4]], awards: [[5, LabelType.candy],[10, LabelType.egg]] },
'3': { max: 15, items: [[LabelType.boom, 3], [LabelType.coin, 15+4]], awards: [[5, LabelType.candy],[10, LabelType.egg],[15, LabelType.gift]] },
'4': { max: 20, items: [[LabelType.boom, 4], [LabelType.coin, 20+4]], awards: [[5, LabelType.candy],[10, LabelType.egg],[20, LabelType.gift]] },
'5': { max: 15, items: [[LabelType.boom, 3], [LabelType.coin, 15+4]], awards: [[5, LabelType.candy],[10, LabelType.egg],[15, LabelType.gift]] },
} }
const MAX_LEVELS = 4; export const MAX_LEVELS = 5;
export const toNextLevel = ()=>{
if(getCurrentScore() < getLevelData().max) return false
addCurrentLevel();
clearCurrentScore();
return true;
}
export const getCurrentItems = () => { export const getCurrentItems = () => {
return getLevelData().items return getLevelData().items
......
...@@ -50,19 +50,19 @@ export const playBoom = (parent) => { ...@@ -50,19 +50,19 @@ export const playBoom = (parent) => {
return playMovieClip(parent, 'fail_json', ['1', '2', '3', '4', '5', '6', '7', '8'], 5); return playMovieClip(parent, 'fail_json', ['1', '2', '3', '4', '5', '6', '7', '8'], 5);
} }
export const playScoreAni = (parent, score: number) => { // export const playScoreAni = (parent, score: number) => {
const txt = createText(score); // const txt = createText(score);
txt.scaleX = txt.scaleY = 0; // txt.scaleX = txt.scaleY = 0;
parent.addChild(txt); // parent.addChild(txt);
txt.x = 375 + 100; // txt.x = 375 + 100;
txt.y = 375; // txt.y = 375;
txt.anchorOffsetX = txt.textWidth / 2; // txt.anchorOffsetX = txt.textWidth / 2;
txt.anchorOffsetY = txt.textHeight / 2; // txt.anchorOffsetY = txt.textHeight / 2;
egret.Tween.get(txt).to({ scaleX: 1, scaleY: 1 }, 300, egret.Ease.getBackOut(6)).wait(500) // egret.Tween.get(txt).to({ scaleX: 1, scaleY: 1 }, 300, egret.Ease.getBackOut(6)).wait(500)
.to({ y: txt.y - 100, alpha: 0 }, 700).call(() => { // .to({ y: txt.y - 100, alpha: 0 }, 700).call(() => {
}) // })
} // }
const createText = (score: number) => { const createText = (score: number) => {
const txt = new egret.TextField(); const txt = new egret.TextField();
......
import { MAX_LEVELS } from "./levels";
export default (that,lv)=>{ export default (that,lv)=>{
that.progress1.visible=false; that.progress1.visible=false;
that.progress2.visible=false; that.progress2.visible=false;
that.progress3.visible=false; that.progress3.visible=false;
that.progress4.visible=false; that.progress4.visible=false;
if(lv==MAX_LEVELS){
that.progress3.visible=true;
}else
that[`progress${lv}`].visible=true; that[`progress${lv}`].visible=true;
} }
\ No newline at end of file
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