Commit 171b8b8c authored by wildfirecode's avatar wildfirecode

1

parent 43c9f300
This diff is collapsed.
...@@ -4,6 +4,7 @@ import { DataManager } from "../../tw/manager/DataManager"; ...@@ -4,6 +4,7 @@ import { DataManager } from "../../tw/manager/DataManager";
import PanelCtrl from "../ctrls/panelCtrl"; import PanelCtrl from "../ctrls/panelCtrl";
import { ModuleTypes } from "../types/sceneTypes"; import { ModuleTypes } from "../types/sceneTypes";
import Scene from "./Scene"; import Scene from "./Scene";
import { TwFun } from "../../tw/util/TwFun";
export default class StartSceneBase extends Scene { export default class StartSceneBase extends Scene {
ruleBtn: eui.Button; ruleBtn: eui.Button;
...@@ -77,6 +78,7 @@ export default class StartSceneBase extends Scene { ...@@ -77,6 +78,7 @@ export default class StartSceneBase extends Scene {
} }
onTap_recordBtn(e: egret.Event) { onTap_recordBtn(e: egret.Event) {
window.location.href = TwFun.getRecordUrl('00');
} }
onTap_rankBtn(e: egret.Event) { onTap_rankBtn(e: egret.Event) {
......
{"options":{"layoutMath":"2","sizeMode":"2n","useExtension":1,"layoutGap":1,"extend":0},"projectName":"preload","version":5,"files":["../assets/startScene/scorebg.png","../assets/startScene/progressbg.png","../assets/startScene/progressfront.png","../assets/startScene/progress_f3.png","../assets/startScene/progress_f2.png","../assets/startScene/progress_f1.png"]}
\ No newline at end of file
{"options":{"layoutMath":"2","sizeMode":"2n","useExtension":1,"layoutGap":1,"extend":0},"projectName":"start","version":5,"files":["../assets/startScene/basket_bottom.png","../assets/startScene/basket_top.png","../assets/startScene/bubble.png","../assets/startScene/glass.png","../assets/startScene/optionBtn.png","../assets/startScene/rankBtn.png","../assets/startScene/recordbtn.png","../assets/startScene/ruleBtn.png","../assets/startScene/start_btn_gray.png","../assets/startScene/start_btn.png"]} {"options":{"layoutMath":"2","sizeMode":"2n","useExtension":1,"layoutGap":1,"extend":0},"projectName":"start","version":5,"files":["../assets/startScene/start_btn.png","../assets/startScene/start_btn_gray.png","../assets/startScene/ruleBtn.png","../assets/startScene/recordbtn.png","../assets/startScene/rankBtn.png","../assets/startScene/optionBtn.png","../assets/startScene/glass.png","../assets/startScene/bubble.png","../assets/startScene/basket_top.png","../assets/startScene/basket_bottom.png"]}
\ No newline at end of file \ No newline at end of file
{"file":"egg.png","frames":{
"0":{"x":0,"y":0,"w":55,"h":74,"offX":22,"offY":13,"sourceW":100,"sourceH":100},
"1":{"x":57,"y":0,"w":55,"h":72,"offX":22,"offY":14,"sourceW":100,"sourceH":100},
"2":{"x":0,"y":136,"w":56,"h":60,"offX":22,"offY":20,"sourceW":100,"sourceH":100},
"3":{"x":58,"y":136,"w":57,"h":56,"offX":21,"offY":22,"sourceW":100,"sourceH":100},
"4":{"x":171,"y":72,"w":55,"h":69,"offX":22,"offY":15,"sourceW":100,"sourceH":100},
"5":{"x":114,"y":0,"w":55,"h":71,"offX":22,"offY":14,"sourceW":100,"sourceH":100},
"6":{"x":171,"y":0,"w":55,"h":70,"offX":22,"offY":15,"sourceW":100,"sourceH":100},
"7":{"x":176,"y":143,"w":56,"h":56,"offX":22,"offY":22,"sourceW":100,"sourceH":100},
"8":{"x":117,"y":143,"w":57,"h":56,"offX":21,"offY":22,"sourceW":100,"sourceH":100},
"9":{"x":57,"y":74,"w":56,"h":60,"offX":22,"offY":20,"sourceW":100,"sourceH":100}}}
\ No newline at end of file
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
}, },
{ {
"name": "preload", "name": "preload",
"keys": "scorebg_png" "keys": "scorebg_png,progressbg_png,progressfront_png,egg_json,progress_f3_png,progress_f2_png,progress_f1_png"
} }
], ],
"resources": [ "resources": [
...@@ -279,6 +279,37 @@ ...@@ -279,6 +279,37 @@
"name": "scorebg_png", "name": "scorebg_png",
"type": "image", "type": "image",
"url": "assets/startScene/scorebg.png" "url": "assets/startScene/scorebg.png"
},
{
"name": "progressbg_png",
"type": "image",
"url": "assets/startScene/progressbg.png"
},
{
"name": "progressfront_png",
"type": "image",
"url": "assets/startScene/progressfront.png"
},
{
"name": "egg_json",
"type": "sheet",
"url": "assets/startScene/egg.json",
"subkeys": "0,1,2,3,4,5,6,7,8,9"
},
{
"name": "progress_f3_png",
"type": "image",
"url": "assets/startScene/progress_f3.png"
},
{
"name": "progress_f2_png",
"type": "image",
"url": "assets/startScene/progress_f2.png"
},
{
"name": "progress_f1_png",
"type": "image",
"url": "assets/startScene/progress_f1.png"
} }
] ]
} }
\ No newline at end of file
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
<e:Skin class="StartSkin" width="750" height="1624" xmlns:e="http://ns.egret.com/eui" xmlns:w="http://ns.egret.com/wing"> <e:Skin class="StartSkin" width="750" height="1624" xmlns:e="http://ns.egret.com/eui" xmlns:w="http://ns.egret.com/wing">
<w:Config id="16705cb4eec"/> <w:Config id="16705cb4eec"/>
<e:Image source="startscenebg_jpg" x="0" y="0"/> <e:Image source="startscenebg_jpg" x="0" y="0"/>
<e:Image source="scorebg_png" horizontalCenter="0" top="0"/>
<e:Label id="scoreTxt" text="得分:0" height="48" width="750" horizontalCenter="0" top="0" textAlign="center" verticalAlign="middle" textColor="0xfcdf9b"/>
<e:Label id="exemptionTxt" text="*兑换项与活动均与设备制造商Apple Inc.公司无关*" width="100%" horizontalCenter="0" bottom="5" <e:Label id="exemptionTxt" text="*兑换项与活动均与设备制造商Apple Inc.公司无关*" width="100%" horizontalCenter="0" bottom="5"
verticalAlign="middle" textAlign="center" size="18" textColor="0xffffff"/> verticalAlign="middle" textAlign="center" size="18" textColor="0xffffff"/>
<e:Button id="recordBtn" label="" y="16" scaleX="1" scaleY="1" right="23"> <e:Button id="recordBtn" label="" y="16" scaleX="1" scaleY="1" right="23">
...@@ -22,7 +24,7 @@ ...@@ -22,7 +24,7 @@
</e:Skin> </e:Skin>
</e:skinName> </e:skinName>
</e:Button> </e:Button>
<e:Button id="ruleBtn" label="" y="16" scaleX="1" scaleY="1" left="30"> <e:Button id="ruleBtn" label="" y="16" scaleX="1" scaleY="1" left="28">
<e:skinName> <e:skinName>
<e:Skin states="up,down,disabled"> <e:Skin states="up,down,disabled">
<e:Image width="100%" height="100%" source="ruleBtn_png" source.down="ruleBtn_png" source.disabled="ruleBtn_png" /> <e:Image width="100%" height="100%" source="ruleBtn_png" source.down="ruleBtn_png" source.disabled="ruleBtn_png" />
...@@ -58,6 +60,11 @@ ...@@ -58,6 +60,11 @@
<e:Image id="basket_bottom" source="basket_bottom_png" x="291.5" y="163.88"/> <e:Image id="basket_bottom" source="basket_bottom_png" x="291.5" y="163.88"/>
<e:Image id="basket_top" source="basket_top_png" x="291.6" y="426.08"/> <e:Image id="basket_top" source="basket_top_png" x="291.6" y="426.08"/>
<e:Image source="bubble_png" x="268" y="1082" visible="false"/> <e:Image source="bubble_png" x="268" y="1082" visible="false"/>
<e:Image source="scorebg_png" horizontalCenter="0" top="0"/> <e:Group y="74" width="386" height="36" horizontalCenter="0">
<e:Label id="score" text="得分:1234" height="48" width="750" horizontalCenter="0" top="0" textAlign="center" verticalAlign="middle" textColor="0xfcdf9b"/> <e:Image source="progressbg_png" y="0" x="0" locked="true"/>
<e:Image id="progressfront" source="progressfront_png" scale9Grid="18,7,8,17" width="380" horizontalCenter="0" verticalCenter="-1"/>
<e:Image source="progress_f1_png" verticalCenter="0" x="43" anchorOffsetX="32.5"/>
<e:Image source="progress_f2_png" verticalCenter="0.5" anchorOffsetX="29.5" x="154.5"/>
<e:Image source="progress_f3_png" verticalCenter="0" x="325"/>
</e:Group>
</e:Skin> </e:Skin>
\ No newline at end of file
import { ExmlPlugin } from "built-in";
import { ExmlPlugin2 } from "./ExmlPlugin2"; import { ExmlPlugin2 } from "./ExmlPlugin2";
/** /**
...@@ -14,6 +13,7 @@ export class MyExmlPlugin extends ExmlPlugin2 implements plugins.Command { ...@@ -14,6 +13,7 @@ export class MyExmlPlugin extends ExmlPlugin2 implements plugins.Command {
'candy.png', 'candy.png',
'success.png', 'success.png',
'fail.png', 'fail.png',
'egg.png',
]; ];
if (excludes.indexOf(file.basename) != -1) { if (excludes.indexOf(file.basename) != -1) {
return file; return file;
......
import MovieClip from "./movieclip/MovieClip"; import MovieClip from "./movieclip/MovieClip";
import LabelType from "../startScene/items/LabelType";
export default class BaseItem extends egret.Sprite { export default class BaseItem extends egret.Sprite {
_mc: MovieClip; _mc: MovieClip;
type: string type: LabelType;
constructor(mc: MovieClip, type?: string) { constructor(mc: MovieClip, type?: LabelType) {
super(); super();
this.type = type; this.type = type;
this._mc = mc; this._mc = mc;
......
...@@ -9,10 +9,12 @@ export default class EgretRender { ...@@ -9,10 +9,12 @@ export default class EgretRender {
this._engine = engine; this._engine = engine;
} }
addBody(body: Matter.Body, display: egret.DisplayObject) { addBody(body: Matter.Body, display: egret.DisplayObject, x, y) {
if (display) { if (display) {
body['display'] = display; body['display'] = display;
this._root.addChildAt(display, 0); this._root.addChildAt(display, 0);
display.x = x;
display.y = y;
} }
return body; return body;
} }
...@@ -80,13 +82,13 @@ export default class EgretRender { ...@@ -80,13 +82,13 @@ export default class EgretRender {
private rectangleToRender(x: number, y: number, width: number, height: number, display: egret.DisplayObject, options?: Matter.IChamferableBodyDefinition) { private rectangleToRender(x: number, y: number, width: number, height: number, display: egret.DisplayObject, options?: Matter.IChamferableBodyDefinition) {
const body = Matter.Bodies.rectangle(x, y, width, height, options); const body = Matter.Bodies.rectangle(x, y, width, height, options);
this.addBody(body, display); this.addBody(body, display, x, y);
return body; return body;
} }
private circleToRender(x: number, y: number, radius: number, display: egret.DisplayObject, options?: Matter.IChamferableBodyDefinition) { private circleToRender(x: number, y: number, radius: number, display: egret.DisplayObject, options?: Matter.IChamferableBodyDefinition) {
const body = Matter.Bodies.circle(x, y, radius, options); const body = Matter.Bodies.circle(x, y, radius, options);
this.addBody(body, display); this.addBody(body, display, x, y);
return body; return body;
} }
} }
\ No newline at end of file
...@@ -16,6 +16,44 @@ export default class StartScene extends StartSceneBase { ...@@ -16,6 +16,44 @@ export default class StartScene extends StartSceneBase {
_startStandbyBubblesLeft: number; _startStandbyBubblesLeft: number;
_startStandbyBubblesRight: number; _startStandbyBubblesRight: number;
egretRenderContainer: egret.Sprite; egretRenderContainer: egret.Sprite;
score =0;
MAX_SCORE = 50;
private scoreTxt: eui.Label;
updateProgress() {
const percent = this.score / this.MAX_SCORE;
const maxwidth = this.progressfront.width;
egret.Tween.removeTweens(this.progressfront.mask);
egret.Tween.get(this.progressfront.mask).to({ width: percent * maxwidth }, 200);
}
onBoom(): any {
this.score = 0;
this.updateProgress();
this.updateScoreTxt();
}
// onBoom(): any {
// this.score--;
// if (this.score < 0) this.score = 0;
// this.updateProgress();
// this.updateScoreTxt();
// }
addScore(): any {
this.score++;
const old = this.score;
if (old == this.MAX_SCORE) {
this.score = 0;
}
this.updateScoreTxt();
this.updateProgress();
return old;
}
updateScoreTxt() {
this.scoreTxt.text = `得分:${this.score}`;
}
async start(data?) { async start(data?) {
super.start(); super.start();
egret.lifecycle.onPause = () => { egret.lifecycle.onPause = () => {
...@@ -71,7 +109,11 @@ export default class StartScene extends StartSceneBase { ...@@ -71,7 +109,11 @@ export default class StartScene extends StartSceneBase {
async runGame() { async runGame() {
createBox(this); createBox(this);
const reslist = ['boom', 'gift', 'candy', 'coin'] const rect = new egret.Rectangle(0, 0, 380, 28);
rect.width = 0;
this.progressfront.mask = rect;
const reslist = ['boom', 'gift', 'candy', 'coin', 'egg']
await Promise.all( await Promise.all(
reslist.map(res => RES.getResAsync(`${res}_json`)) reslist.map(res => RES.getResAsync(`${res}_json`))
); );
...@@ -132,6 +174,7 @@ export default class StartScene extends StartSceneBase { ...@@ -132,6 +174,7 @@ export default class StartScene extends StartSceneBase {
[this['leftBtn'], this['rightBtn']].forEach(btn => { [this['leftBtn'], this['rightBtn']].forEach(btn => {
btn.addEventListener(egret.TouchEvent.TOUCH_TAP, (e: egret.TouchEvent) => { btn.addEventListener(egret.TouchEvent.TOUCH_TAP, (e: egret.TouchEvent) => {
// createNewBubble(this,LabelType.candy)
this.addForce = true; this.addForce = true;
this.stageX = e.stageX; this.stageX = e.stageX;
if (this.stageX < 375) { if (this.stageX < 375) {
...@@ -165,7 +208,10 @@ export default class StartScene extends StartSceneBase { ...@@ -165,7 +208,10 @@ export default class StartScene extends StartSceneBase {
const knockout = false; /// 指定对象是否具有挖空效果,暂未实现 const knockout = false; /// 指定对象是否具有挖空效果,暂未实现
const glowFilter: egret.GlowFilter = new egret.GlowFilter(color, alpha, blurX, blurY, const glowFilter: egret.GlowFilter = new egret.GlowFilter(color, alpha, blurX, blurY,
strength, quality, inner, knockout); strength, quality, inner, knockout);
this['score'].filters = [glowFilter]; this['scoreTxt'].filters = [glowFilter];
this.updateScoreTxt();
this.updateProgress();
} }
runEngine() { runEngine() {
...@@ -188,6 +234,8 @@ export default class StartScene extends StartSceneBase { ...@@ -188,6 +234,8 @@ export default class StartScene extends StartSceneBase {
return false; return false;
} }
progressfront: egret.DisplayObject;
destroy() { destroy() {
super.destroy(); super.destroy();
} }
......
...@@ -2,6 +2,8 @@ import { award } from "./collisionConfig"; ...@@ -2,6 +2,8 @@ import { award } from "./collisionConfig";
import StartScene from "./StartScene"; import StartScene from "./StartScene";
import { playBoom, playSuccess, playScoreAni } from "./playMovieClip"; import { playBoom, playSuccess, playScoreAni } from "./playMovieClip";
import vibrate from "./vibrate"; import vibrate from "./vibrate";
import LabelType from "./items/LabelType";
import { createNewBubble } from "./createItems";
const check = (_this: StartScene) => { const check = (_this: StartScene) => {
const center = 382; const center = 382;
...@@ -21,7 +23,7 @@ const check = (_this: StartScene) => { ...@@ -21,7 +23,7 @@ const check = (_this: StartScene) => {
if (t0 > 3000)//3s之内不可再用 if (t0 > 3000)//3s之内不可再用
{ {
delete i['timer']; delete i['timer'];
console.log('重新可用', Date.now() / 1000) // console.log('重新可用', Date.now() / 1000)
} }
} }
const { x, y } = i.position; const { x, y } = i.position;
...@@ -29,21 +31,39 @@ const check = (_this: StartScene) => { ...@@ -29,21 +31,39 @@ const check = (_this: StartScene) => {
const yResult = y > ypos && y < (ypos + h); const yResult = y > ypos && y < (ypos + h);
if (xResult && yResult && i.velocity.y > 0 && !i['timer']) { if (xResult && yResult && i.velocity.y > 0 && !i['timer']) {
i['timer'] = Date.now(); i['timer'] = Date.now();
if (i.label == 'boom') { if (i.label == LabelType.boom) {
console.log('boom'); // console.log('boom');
_this._egretRender.remove(i); _this._egretRender.remove(i);
vibrate(_this, 2); vibrate(_this, 2);
playBoom(_this.egretRenderContainer); playBoom(_this.egretRenderContainer);
playScoreAni(_this.egretRenderContainer, -1); // playScoreAni(_this.egretRenderContainer, -1);
_this.onBoom();
} }
// else if(i.label ==LabelType.gift){
// }
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);
const oldscore = _this.addScore();
checkAdd(_this, oldscore);
} }
// _this.onGetAward(); // _this.onGetAward();
} }
}) })
} }
const checkAdd = (that: StartScene, oldscore) => {
if (oldscore === 5) {
createNewBubble(that, LabelType.candy);
}
else if (oldscore === 20) {
createNewBubble(that, LabelType.egg);
}
else if (oldscore === that.MAX_SCORE) {
createNewBubble(that, LabelType.gift);
}
}
export default check export default check
\ No newline at end of file
...@@ -2,30 +2,41 @@ import StartScene from "./StartScene"; ...@@ -2,30 +2,41 @@ import StartScene from "./StartScene";
import createItem from "./items/createItem"; 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";
export const createNewBubble = (_this: StartScene,type:LabelType) => {
createBubble(_this, type, Math.random() > 0.5 ? 180 : 750 - 180, 220);
}
const createBubble = (_this: StartScene, type: LabelType, x: number, y: number) => {
let scale;
const size = random(70, 100);
const maxsize = 100;
scale = size / maxsize;
const baseItem = createItem(scale, type);
let angle;
angle = 0;
//气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果)
//刚体和贴图尺寸比为1:1.12
_this._egretRender.circle(x, y, (size - 17) / 2, baseItem,
{
frictionAir: 0,
collisionFilter: { group: award, category: award, mask: awardMask },
angle: angle,
label: baseItem.type,
friction: 0
});
}
export default (_this: StartScene) => { export default (_this: StartScene) => {
let count = 0; let count = 0;
const coinsFall = setInterval(() => { const coinsFall = setInterval(() => {
if (count < 14) { if (count < 14) {
let scale; const types = [ LabelType.candy, LabelType.coin, LabelType.gift,LabelType.egg]
// scale = random(0.7,1); // const types = [LabelType.boom, LabelType.candy, LabelType.coin, LabelType.gift,LabelType.egg]
// scale=1; const i = Math.floor(Math.random() * types.length);
const size = random(70, 100); const type = types[i];
const maxsize = 100; createBubble(_this, type, 375 + Math.random() * 200 - 100, 400 + 200 + 100)
scale = size / maxsize;
const baseItem = createItem(scale);
let angle;
angle = 0;
//气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果)
//刚体和贴图尺寸比为1:1.12
_this._egretRender.circle(375 + Math.random() * 200 - 100, 400 + 200 + 100, (size - 17) / 2, baseItem,
{
frictionAir: 0,
collisionFilter: { group: award, category: award, mask: awardMask },
angle: angle,
label: baseItem.type,
friction: 0
});
count++; count++;
} else { } else {
//结束 //结束
......
enum LabelType {
boom='boom',candy='candy',coin='coin',gift='gift',egg='egg'
}
export default LabelType
\ No newline at end of file
import BaseItem from "../../physics/BaseItem"; import BaseItem from "../../physics/BaseItem";
import MovieClip from "../../physics/movieclip/MovieClip"; import MovieClip from "../../physics/movieclip/MovieClip";
import LabelType from "./LabelType";
const createBoom = (scale) => { const createBoom = (scale) => {
//气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果) //气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果)
...@@ -7,7 +8,7 @@ const createBoom = (scale) => { ...@@ -7,7 +8,7 @@ const createBoom = (scale) => {
//炸弹纹理种炸弹的尺寸默认58,不进行缩放 //炸弹纹理种炸弹的尺寸默认58,不进行缩放
//气泡和炸弹的比例为100/58 //气泡和炸弹的比例为100/58
const animation = createBoomMovieClip(boomTexture); const animation = createBoomMovieClip(boomTexture);
const baseItem = new BaseItem(animation, 'boom'); const baseItem = new BaseItem(animation, LabelType.boom);
baseItem.scaleX = baseItem.scaleY = scale; baseItem.scaleX = baseItem.scaleY = scale;
return baseItem return baseItem
} }
......
import BaseItem from "../../physics/BaseItem"; import BaseItem from "../../physics/BaseItem";
import MovieClip from "../../physics/movieclip/MovieClip"; import MovieClip from "../../physics/movieclip/MovieClip";
import LabelType from "./LabelType";
const createCandy = (scale) => { const createCandy = (scale) => {
//气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果) //气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果)
const texture = RES.getRes('candy_json') as egret.SpriteSheet; const texture = RES.getRes('candy_json') as egret.SpriteSheet;
const animation = createMovieClip(texture, 0.6); const animation = createMovieClip(texture, 0.6);
const baseItem = new BaseItem(animation); const baseItem = new BaseItem(animation,LabelType.candy);
baseItem.scaleX = baseItem.scaleY = scale; baseItem.scaleX = baseItem.scaleY = scale;
return baseItem return baseItem
} }
......
import BaseItem from "../../physics/BaseItem"; import BaseItem from "../../physics/BaseItem";
import MovieClip from "../../physics/movieclip/MovieClip"; import MovieClip from "../../physics/movieclip/MovieClip";
import LabelType from "./LabelType";
const createCoin = (scale) => { const createCoin = (scale) => {
//气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果) //气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果)
const texture = RES.getRes('coin_json') as egret.SpriteSheet; const texture = RES.getRes('coin_json') as egret.SpriteSheet;
const animation = createMovieClip(texture, 0.6); const animation = createMovieClip(texture, 0.6);
const baseItem = new BaseItem(animation); const baseItem = new BaseItem(animation,LabelType.candy);
baseItem.scaleX = baseItem.scaleY = scale; baseItem.scaleX = baseItem.scaleY = scale;
return baseItem return baseItem
} }
......
import BaseItem from "../../physics/BaseItem";
import MovieClip from "../../physics/movieclip/MovieClip";
import LabelType from "./LabelType";
const createEgg = (scale) => {
//气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果)
const texture = RES.getRes('egg_json');
const animation = createMovieClip(texture, 1);//礼物纹理大概130
const baseItem = new BaseItem(animation, LabelType.egg);
baseItem.scaleX = baseItem.scaleY = scale;
return baseItem
}
const createMovieClip = (spritesheet, scale) => {
const list = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
const movieclip = new MovieClip({
spritesheet: spritesheet,
frameInterval: 5,
frames: list,
position: [0, 0],
scale: scale,
anchor: [.5, .5]
});
return movieclip
}
export default createEgg
\ No newline at end of file
import BaseItem from "../../physics/BaseItem"; import BaseItem from "../../physics/BaseItem";
import MovieClip from "../../physics/movieclip/MovieClip"; import MovieClip from "../../physics/movieclip/MovieClip";
import LabelType from "./LabelType";
const createGift = (scale) =>{ const createGift = (scale) =>{
//气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果) //气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果)
const texture = RES.getRes('gift_json'); const texture = RES.getRes('gift_json');
const animation = createGiftMovieClip(texture, 0.5);//礼物纹理大概130 const animation = createGiftMovieClip(texture, 0.5);//礼物纹理大概130
const baseItem = new BaseItem(animation, 'gift'); const baseItem = new BaseItem(animation,LabelType.gift);
baseItem.scaleX = baseItem.scaleY = scale; baseItem.scaleX = baseItem.scaleY = scale;
return baseItem return baseItem
} }
......
import createBoom from "./createBoom"; import createBoom from "./createBoom";
import createGift from "./createGift";
import createCandy from "./createCandy"; import createCandy from "./createCandy";
import createCoin from "./createCoin"; import createCoin from "./createCoin";
import createEgg from "./createEgg";
import createGift from "./createGift";
import LabelType from "./LabelType";
const createItem = (scale) => { const createItem = (scale, type: LabelType) => {
const funcs = [createBoom, createGift,createCandy,createCoin]; const funcs = {
const i = Math.floor(Math.random() * funcs.length); 'boom': createBoom,
const func = funcs[i]; 'gift': createGift,
'candy': createCandy,
'egg': createEgg,
'coin': createCoin
};
const func = funcs[type];
return func(scale); return func(scale);
} }
export default createItem export default createItem
\ No newline at end of file
//56fff9
\ 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