Commit c0317d76 authored by Master Q's avatar Master Q

luoji

parent 43a22912
......@@ -8,9 +8,17 @@
"keys": "0.png,1.png,2.png,3.png,4.png,5.png,6.png,7.png,8.png,9.png,back.png,countdownback.png,fkingCar.png,obstack1.png,obstack2.png,obstack3.png,scoreboardback.png,倒计时.svga,护盾.png,背景移动元素.svga,跑道.svga,路架子.svga",
"name": "GameScene"
},
{
"keys": "actTitle.png,awardBtn.png,indexSceneBack.jpg,ruleBtn.png,startBtn.png",
"name": "IndexScene"
},
{
"keys": "comCloseBtn.png,com_bg.jpg,toastBg.png,waitingBg.png,waitingRot.png",
"name": "common"
},
{
"keys": "loadBack.jpg,progress-back.png,progress-icon.png,progress-track.png",
"name": "loading"
}
],
"path": "./resource/"
......
......@@ -17,6 +17,7 @@ import getEnv = FYGE.getEnv;
import Texture = FYGE.Texture;
import { ParkourScene } from "./scenes/ParkourGameScene";
import { LoadingScene } from "./scenes/loadingScene/loadingScene";
/**
* 全局事件,为了和小程序交互
......@@ -105,29 +106,29 @@ export class Game {
await RES.loadGroup("common");
console.log("通用资源加载完成");
// 加载游戏资源
await RES.loadGroup('GameRes')
// 加载游戏资源 放到loadingScene里面
// await RES.loadGroup('GameRes')
// h5环境时,隐藏加载中
if (getEnv() == "web" && document.getElementById("__loading__")) {
document.getElementById("__loading__").style.display = "none";
}
await Tools.getGlobalData();
// await Tools.getGlobalData();
const baseSuccess = await Tools.getActivityBaseInfo();
const defaultImage = "https://yun.duiba.com.cn/aurora/assets/79e467e771f01e98fb1b6b7daa3cfeecb8584617.png";
// const baseSuccess = await Tools.getActivityBaseInfo();
// const defaultImage = "https://yun.duiba.com.cn/aurora/assets/79e467e771f01e98fb1b6b7daa3cfeecb8584617.png";
// await RES.getResAsync(Tools.activityBaseInfo.showImage || defaultImage);
if (!baseSuccess) {
showToast("获取活动信息失败");
return;
}
// if (!baseSuccess) {
// showToast("获取活动信息失败");
// return;
// }
const gameSuccess = await Tools.getGameInfo();
if (!gameSuccess) {
showToast("获取游戏信息失败");
return;
}
// const gameSuccess = await Tools.getGameInfo();
// if (!gameSuccess) {
// showToast("获取游戏信息失败");
// return;
// }
// await Promise.all([
// Texture.fromUrl("https://yun.duiba.com.cn/aurora/assets/923bcdee2d54f39797fb1cc5a79ab84da1bbe972.jpg"),
......@@ -136,7 +137,8 @@ export class Game {
// Texture.fromUrl("https://yun.duiba.com.cn/aurora/assets/a6903842083d8015e2e81d2dc652370574be6774.jpg"),
// ]);
changeScene(ParkourScene, { from: "main" });
// changeScene(ParkourScene, { from: "main" });
changeScene(LoadingScene)
}
initWebEvent(){
......
......@@ -8,9 +8,17 @@ export const ResJson = {
"keys": "0.png,1.png,2.png,3.png,4.png,5.png,6.png,7.png,8.png,9.png,back.png,countdownback.png,fkingCar.png,obstack1.png,obstack2.png,obstack3.png,scoreboardback.png,倒计时.svga,护盾.png,背景移动元素.svga,跑道.svga,路架子.svga",
"name": "GameScene"
},
{
"keys": "actTitle.png,awardBtn.png,indexSceneBack.jpg,ruleBtn.png,startBtn.png",
"name": "IndexScene"
},
{
"keys": "comCloseBtn.png,com_bg.jpg,toastBg.png,waitingBg.png,waitingRot.png",
"name": "common"
},
{
"keys": "loadBack.jpg,progress-back.png,progress-icon.png,progress-track.png",
"name": "loading"
}
],
"path": location.origin + "/resource/"
......
type direct = 'right' | 'bottom' | 'top'
/**
* 传入文案和进度条图片
* 进度条图片位移,固定遮罩
* 貌似这样就不需要继承显示类了
*/
import Sprite = FYGE.Sprite;
import TextField = FYGE.TextField;
import Graphics = FYGE.Graphics;
import FrameAni = FYGE.FrameAni;
export class ProgressBarS {
/**
* 0到1的进度
*/
private _value = 0;
private upImage: Sprite;
private progressTxt: TextField;
private upImage: FYGE.Sprite;
private progressTxt: FYGE.TextField;
private maxLength: number;
private oriX: number
constructor(upImage: Sprite, txt?: TextField) {
this.maxLength = upImage.width;//最大长度,直接取图片宽度
private oriY: number
private dire: direct
constructor(upImage: FYGE.Sprite, txt?: FYGE.TextField, dire?: direct) {
this.dire = dire || 'right'
this.maxLength = this.dire === 'right' ? upImage.width : upImage.height;//最大长度,直接取图片宽度
this.upImage = upImage;
this.progressTxt = txt;
this.oriX = upImage.x;
this.oriY = upImage.y
var delta = 0
//传入的也可能是帧动画,这样原点就有问题了
if (upImage instanceof FrameAni) delta = 0.5
if (upImage instanceof FYGE.FrameAni) delta = 0.5
//给图片加个矩形遮罩
this.upImage.mask = this.upImage.parent.addChild(new Graphics())
this.upImage.mask = this.upImage.parent.addChild(new FYGE.Graphics())
.beginFill(0xf8c862)
.drawRoundedRect(
upImage.x - upImage.width * delta,
......@@ -45,14 +42,27 @@ export class ProgressBarS {
this.value = 0;
}
/**
* 0到1的进度
*/
private _value = 0;
get value() {
return this._value;
}
set value(v) {
if (v < 0) v = 0;
if (v > 1) v = 1;
this._value = v;
if (this.progressTxt) this.progressTxt.text = ((v * 100) >> 0) + "%";
this.upImage.x = this.oriX - (1 - this._value) * this.maxLength
let xory = this.dire === 'right' ? 'x' : 'y'
let o = this.dire === 'right' ? this.oriX : this.oriY
if (this.dire === 'top') {
this.upImage[xory] = o + (1 - this._value) * this.maxLength
} else {
this.upImage[xory] = o - (1 - this._value) * this.maxLength
}
}
}
......@@ -78,9 +78,9 @@ export class BalalaScene extends Module {
this.onPause()
setTimeout(() => {
this.onGameRestart()
}, 1000)
// setTimeout(() => {
// this.onGameRestart()
// }, 1000)
}
initEvents(): void {
......
import { Scene } from "../../../module/views/Scene";
import UI from "../../tools/UI";
export class IndexScene extends Scene {
get groupNames(): string[] {
return ['IndexScene']
}
ruleBtn: FYGE.Sprite
awardBtn: FYGE.Sprite
protected initUi(): void {
UI.Sp(this, 'indexSceneBack.jpg')
this.ruleBtn = UI.Sp(this, 'ruleBtn.png', 0, 230)
this.awardBtn = UI.Sp(this, 'awardBtn.png', 750 - 136, 230)
}
onShowRulePanel() {
}
onJump2AwardPage() {
}
initEvents(): void {
this.ruleBtn.addEventListener(FYGE.MouseEvent.CLICK, this.onShowRulePanel, this)
this.awardBtn.addEventListener(FYGE.MouseEvent.CLICK, this.onJump2AwardPage, this)
}
removeEvents(): void {
this.ruleBtn.removeEventListener(FYGE.MouseEvent.CLICK, this.onShowRulePanel, this)
this.awardBtn.removeEventListener(FYGE.MouseEvent.CLICK, this.onJump2AwardPage, this)
}
}
\ No newline at end of file
import { changeScene } from './../../../module/ctrls/index';
import { RES } from "../../../module/RES";
import { Scene } from "../../../module/views/Scene";
import { ProgressBarS } from "../../common/ProgressBarS";
import UI from "../../tools/UI";
import { ParkourScene } from '../ParkourGameScene';
import { IndexScene } from '../IndexScene/IndexScene';
export class LoadingScene extends Scene {
ProgressFactory: ProgressBarS
get groupNames(): string[] {
return ['loading']
}
initUi(): void {
UI.Sp(this, 'loadBack.jpg')
const ProgressCont = UI.Ctn(this)
UI.Sp(ProgressCont, 'progress-back.png')
const tracker = UI.Sp(ProgressCont, 'progress-track.png')
UI.Sp(ProgressCont, 'progress-icon.png', -10, -20)
this.ProgressFactory = new ProgressBarS(tracker)
ProgressCont.position.set(220, 800)
}
async start(data?: any) {
super.start(data)
this.setProgressValue(0.3)
// 加载游戏资源
await RES.loadGroup('GameScene')
this.setProgressValue(0.5)
// 加载首页资源
await RES.loadGroup('IndexScene')
this.setProgressValue(1)
}
setProgressValue(value: number) {
FYGE.Tween.removeTweens(this.ProgressFactory)
FYGE.Tween.get(this.ProgressFactory)
.to({
value
}, 1000)
.call(() => {
if (value === 1) {
changeScene(IndexScene)
}
})
}
}
\ 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