Commit 999fd2d6 authored by Master Q's avatar Master Q

1

parent 11e1b71d
......@@ -157,6 +157,10 @@ data.path = `https://yun.duiba.com.cn/db_games/${config.type}/${config.name}/${v
//写入目标文件夹,可配置,每个项目必须修改,或者直接和project的保持一致(淘宝项目文件固定后)
var endPath = './src/';
var endFile = `export const ResJson = ${JSON.stringify(data, "", "\t")}`
endFile = endFile.replace(
`"path": "${data.path}"`,
`// eslint-disable-next-line\n\t"path": "${data.path}"`
);
fs.writeFileSync(endPath + "ResJson.ts", endFile);
......
......@@ -24,6 +24,12 @@ export class Main {
private _pause: boolean;
private canvas: HTMLCanvasElement
changeGamePageConfig(PAGE) {
PAGE && (Tools.PAGE = PAGE);
}
gameSceneInitPromise: Promise<any>;
constructor(canvas: HTMLCanvasElement, PAGE) {
PAGE && (Tools.PAGE = PAGE);
var sysInfo;
......@@ -156,17 +162,12 @@ export class Main {
// 皮肤配置加载
RES.loadSkinConfig(SkinJson);
console.log("初始化皮肤配置完成")
// 加载完美 icon 资源
await RES.loadGroup('excellent_icon')
// 加载通用资源
await RES.loadGroup("common");
console.log("通用资源加载完成")
// h5环境时,隐藏加载中
if (FYGE.getEnv() == "web" && document.getElementById("__loading__")) document.getElementById("__loading__").style.display = "none";
console.log('getGlobalData')
await Tools.getGlobalData()
// const baseSuccess = await Tools.getActivityBaseInfo();
// if (!baseSuccess) {
// showToast("获取活动信息失败");
......@@ -178,9 +179,15 @@ export class Main {
// showToast("获取游戏信息失败");
// return;
// }
// vtodo 是否是新手
changeScene(IndexScene);
let gameSceneInitResolve: any;
this.gameSceneInitPromise = new Promise(r => {
gameSceneInitResolve = r
})
changeScene(IndexScene, {
sceneData: 11,
gameSceneInitResolve: gameSceneInitResolve
});
}
}
......
......@@ -376,5 +376,6 @@ export const ResJson = {
}
}
],
"path": "https://yun.duiba.com.cn/db_games/activity/template/1646360490/resource/"
// eslint-disable-next-line
"path": "https://yun.duiba.com.cn/db_games/activity/template/1646963505/resource/"
}
\ No newline at end of file
......@@ -40,7 +40,8 @@ export class Tools {
public static PAGE = {
isNewGuy: false,
countDownNum: 30
countDownNum: 30,
musicStatus: false
};
/**
......
......@@ -16,6 +16,7 @@ function randomNum(m: number, n: number) {
const GameEvent = {
GAME_START: 'GAME_START',
GAME_OVER: 'GAME_OVER',
GAME_BGM: 'GAME_BGM',
}
class CountDownBoard extends FYGE.Container {
......@@ -331,7 +332,7 @@ const GameEles: GameEleInfer[] = [
{
resource: 'boomSprit.png',
probability: 10,
score: -1,
score: 0,
}
]
......@@ -354,9 +355,10 @@ export default class IndexScene extends Scene {
}
set musicStatus(v) {
if (this._musicStatus === v) return
// if (this._musicStatus === v) return
this._musicStatus = v
this.musicBtn.texture = RES.getRes(v ? 'music-on.png' : 'music-off.png')
GDispatcher.dispatchEvent(GameEvent.GAME_BGM, v)
}
get score() {
......@@ -387,12 +389,14 @@ export default class IndexScene extends Scene {
this.initCountDown()
this.initScoreBoard()
this.onInitGamer()
this.initMusicBtn(true)
this.initMusicBtn(Tools.PAGE.musicStatus)
// this.onInitFallGameEle()
}
async start(data?: any) {
super.start()
// 完成scene的初始化
data.gameSceneInitResolve()
}
/**
......@@ -424,7 +428,6 @@ export default class IndexScene extends Scene {
this.musicBtn = UI.Btn(this, isOn ? 'music-on.png' : 'music-off.png', () => {
this.musicStatus = !this.musicStatus
}, this, 660, layers.stageOffsetY + 200)
this.musicStatus = isOn
}
/**
......@@ -476,12 +479,12 @@ export default class IndexScene extends Scene {
const stepSprite = UI.Sp(NewGuyCont, 'step1.png')
let step = 1
function showStepImg() {
stepSprite.texture = RES.getRes(`step${step}.png`)
step ++
if (step > 4) {
NewGuyCont.destroy()
r()
}
stepSprite.texture = RES.getRes(`step${step}.png`)
step ++
}
showStepImg()
NewGuyCont.addEventListener(FYGE.MouseEvent.CLICK, () => {
......@@ -490,16 +493,24 @@ export default class IndexScene extends Scene {
})
}
/**
* 游戏初始化
*/
onGameInit() {
this.score = 0
this.musicStatus = Tools.PAGE.musicStatus
this.recoverGameEles()
this.onInitGamer()
}
/**
* 游戏开始
*/
async onGameStart() {
this.score = 0
this.onGameInit()
if (Tools.PAGE.isNewGuy) {
await this.onShowNewGuySteps()
}
this.recoverGameEles()
this.onInitGamer()
await this.onShowPreCountDown()
this.GameStatus = 1
this.CountDownCont.restart()
......@@ -522,7 +533,7 @@ export default class IndexScene extends Scene {
onInitGamer() {
if (!this.RobotGameEle) {
this.RobotGameEle = this.addChild(new GameEleSprit('robotGamer.png'))
this.RobotGameEle.addPythicCont(new RectPythicCont(50, 190, 100, 60), true)
this.RobotGameEle.addPythicCont(new RectPythicCont(50, 190, 100, 60), false)
}
this.RobotGameEle.position.set(375 - this.RobotGameEle.width / 2, 1100)
}
......@@ -531,7 +542,7 @@ export default class IndexScene extends Scene {
* 初始化游戏掉落元素
*/
onInitFallGameEle() {
this.spl = randomNum(40, 300)
this.spl = randomNum(80, 300)
const curr = this.currGameEleResource
const currResource: GameEleResource = curr.resource
const currGameELe = GPool.takeOut<GameEleSprit>(currResource) || this.addChild(new GameEleSprit(currResource, curr.score))
......@@ -539,7 +550,7 @@ export default class IndexScene extends Scene {
this.gameElesList.push(currGameELe)
currGameELe.position.set(randomNum(this.axisX[0], this.axisX[1]), layers.stageOffsetY)
if (!currGameELe.pythicCont) {
const debug = true
const debug = false
if (currResource === 'bellSprit.png') {
currGameELe.addPythicCont(new CirclePythicCont(36, 40, 40), debug)
} else if (currResource === 'orangeSprit.png') {
......@@ -606,10 +617,27 @@ export default class IndexScene extends Scene {
this.gameElesList.length = 0
}
playGameEleSounds(resource: string) {
if (!this.musicStatus && resource !== 'boomSprit.png') {
return
}
const kv = {
'bellSprit.png': 'bell',
'orangeSprit.png': 'orange',
'boomSprit.png': 'boom'
}
GDispatcher.dispatchEvent(GameEvent.GAME_BGM, {
isOn: true,
key: kv[resource],
loop: false
})
}
_cacheLen:number = 0
frameUpdate() {
if (!this.GameStatus) return
const delta = this.clock.getDelta()
if (delta > 100) return
const sdt = this.speed * delta
this._cacheLen += sdt
if (this._cacheLen > this.spl) {
......@@ -628,9 +656,11 @@ export default class IndexScene extends Scene {
if (onCollsionJudge(item.pythicCont.commonPythicPos, this.RobotGameEle.pythicCont.commonPythicPos)) {
item.visible = false
GPool.takeIn(item.resource, item)
// 播放音效
this.playGameEleSounds(item.resource)
this.gameElesList.splice(i, 1)
// console.log(item)
if (item.score == -1) {
if (item.score == 0) {
console.log('boom', item)
this.onGameOver()
}
......
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