Commit e435ad7e authored by wildfirecode's avatar wildfirecode

1

parent db4a5d0d
...@@ -62,7 +62,7 @@ export default class EgretRender { ...@@ -62,7 +62,7 @@ export default class EgretRender {
display.rotation = getRotation(body.angle); display.rotation = getRotation(body.angle);
} }
else else
display.rotation = getRotation(body.angle); display.rotation = getRotation(body.angle);
} }
} }
...@@ -79,6 +79,12 @@ export default class EgretRender { ...@@ -79,6 +79,12 @@ export default class EgretRender {
return body; return body;
} }
polygon(x: number, y: number, sides: number, radius: number, display: egret.DisplayObject, options?: Matter.IChamferableBodyDefinition) {
const body = this.polygonToRender(x, y, sides, radius, display, options);
this.addBodyToWorld(body);
return body;
}
//工具方法 //工具方法
private addBodyToWorld(body: Matter.Body) { private addBodyToWorld(body: Matter.Body) {
Matter.World.add(this._engine.world, body); Matter.World.add(this._engine.world, body);
...@@ -96,4 +102,11 @@ export default class EgretRender { ...@@ -96,4 +102,11 @@ export default class EgretRender {
this.addBody(body, display); this.addBody(body, display);
return body; return body;
} }
private polygonToRender(x: number, y: number, sides: number, radius: number, display: egret.DisplayObject, options?: Matter.IChamferableBodyDefinition) {
const body = Matter.Bodies.polygon(x, y, sides, radius, options);
this.addBody(body, display);
return body;
}
} }
\ No newline at end of file
...@@ -4,7 +4,11 @@ enum LabelType { ...@@ -4,7 +4,11 @@ enum LabelType {
Gift, Gift,
Candy, Candy,
Gift2, Gift2,
Gift3,
Candy2, Candy2,
IceCream,
Donut,
Egg,
} }
export default LabelType export default LabelType
\ No newline at end of file
...@@ -67,7 +67,10 @@ export default class StartScene extends StartSceneBase { ...@@ -67,7 +67,10 @@ export default class StartScene extends StartSceneBase {
const { seesaw } = createBox(this); const { seesaw } = createBox(this);
this._seesaw = seesaw; this._seesaw = seesaw;
const reslist = ['boom', 'gift', 'gift2', 'candy', 'candy2', 'coin','icecream'] const reslist = ['boom', 'gift', 'gift2', 'candy', 'candy2',
'coin',
'donut',
'icecream']
await Promise.all( await Promise.all(
reslist.map(res => RES.getResAsync(`${res}_json`)) reslist.map(res => RES.getResAsync(`${res}_json`))
); );
......
...@@ -5,20 +5,17 @@ import StartScene from "./StartScene"; ...@@ -5,20 +5,17 @@ import StartScene from "./StartScene";
export default (_this: StartScene) => { export default (_this: StartScene) => {
const startY = 984; const startY = 984;
const startX = 100; const startX = 100;
const forceScale = 5; const forceScale = 7;
const leftStart = { x: startX, y: startY, forceX: 0.01 * forceScale }; const leftStart = { x: startX, y: startY, forceX: 0.01 * forceScale };
const rightStart = { x: 750 - startX, y: startY, forceX: -0.01 * forceScale }; const rightStart = { x: 750 - startX, y: startY, forceX: -0.01 * forceScale };
setInterval(() => { setInterval(() => {
const start = Math.random() > 0.5 ? leftStart : rightStart; const start = Math.random() > 0.5 ? leftStart : rightStart;
const size = 49; const size = 49*1.3;
const maxsize = 49; const maxsize = 49;
const baseItem = createItem(size / maxsize); const baseItem = createItem(size / maxsize);
// const baseItem = createItem(size / maxsize);
let angle; let angle;
angle = 0; angle = 0;
//气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果)
//刚体和贴图尺寸比为1:1.12
const fallingCircle = _this._egretRender.circle(start.x, start.y, size / 2, baseItem, const fallingCircle = _this._egretRender.circle(start.x, start.y, size / 2, baseItem,
// _this._egretRender.circle(375 + Math.random() * 200 - 100, 400 + 200 + 100, (size - 17) / 2, baseItem, // _this._egretRender.circle(375 + Math.random() * 200 - 100, 400 + 200 + 100, (size - 17) / 2, baseItem,
{ {
......
...@@ -3,8 +3,8 @@ import LabelType from "../LabelType"; ...@@ -3,8 +3,8 @@ import LabelType from "../LabelType";
const createDonut = (scale) => { const createDonut = (scale) => {
//气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果) //气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果)
const texture = RES.getRes('gift2_json'); const texture = RES.getRes('donut_json');
const animation = createMovieClip(texture, 1 * scale);//中间物体尺寸140px const animation = createMovieClip(texture, 98/166 * scale);//中间物体尺寸140px
return animation return animation
} }
...@@ -17,9 +17,9 @@ const createMovieClip = (spritesheet, scale) => { ...@@ -17,9 +17,9 @@ const createMovieClip = (spritesheet, scale) => {
frames: list, frames: list,
position: [0, 0], position: [0, 0],
scale: scale, scale: scale,
anchor: [.444, .44] anchor: [217/500, 228/500]
}); });
movieclip.lable = LabelType.Gift2 movieclip.lable = LabelType.Donut
return movieclip return movieclip
} }
......
...@@ -19,7 +19,7 @@ const createGiftMovieClip = (spritesheet, scale) => { ...@@ -19,7 +19,7 @@ const createGiftMovieClip = (spritesheet, scale) => {
scale: scale, scale: scale,
anchor: [.444, .44] anchor: [.444, .44]
}); });
movieclip.lable = LabelType.Gift2 movieclip.lable = LabelType.Egg
return movieclip return movieclip
} }
......
...@@ -19,7 +19,7 @@ const createGiftMovieClip = (spritesheet, scale) => { ...@@ -19,7 +19,7 @@ const createGiftMovieClip = (spritesheet, scale) => {
scale: scale, scale: scale,
anchor: [.444, .44] anchor: [.444, .44]
}); });
movieclip.lable = LabelType.Gift2 movieclip.lable = LabelType.Gift3
return movieclip return movieclip
} }
......
...@@ -4,22 +4,22 @@ import LabelType from "../LabelType"; ...@@ -4,22 +4,22 @@ import LabelType from "../LabelType";
const createIceCream = (scale) => { const createIceCream = (scale) => {
//气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果) //气泡纹理种气泡的尺寸默认100(总体还包含气泡周围的阴影效果)
const texture = RES.getRes('icecream_json'); const texture = RES.getRes('icecream_json');
const animation = createMovieClip(texture, 98/118 * scale);//中间物体尺寸140px const animation = createMovieClip(texture, 98 / 118 * scale);//中间物体尺寸140px
return animation return animation
} }
const createMovieClip = (spritesheet, scale) => { const createMovieClip = (spritesheet, scale) => {
const list = ['礼盒0000', '礼盒0001', '礼盒0002', '礼盒0003', '礼盒0004', '礼盒0005', '礼盒0006', const list = ['礼盒0000', '礼盒0001', '礼盒0002', '礼盒0003', '礼盒0004', '礼盒0005', '礼盒0006',
'礼盒0007', '礼盒0008', '礼盒0009', '礼盒0010', '礼盒0011', '礼盒0012', '礼盒0013', '礼盒0014', '礼盒0015']; '礼盒0007', '礼盒0008', '礼盒0009', '礼盒0010', '礼盒0011', '礼盒0012', '礼盒0013', '礼盒0014', '礼盒0015'];
const movieclip = new MovieClip({ const movieclip = new MovieClip({
spritesheet: spritesheet, spritesheet: spritesheet,
frameInterval: 4, frameInterval: 8,
frames: list, frames: list,
position: [0, 0], position: [0, 0],
scale: scale, scale: scale,
anchor: [220/500, 202/500] anchor: [220 / 500, 202 / 500]
}); });
movieclip.lable = LabelType.Gift2 movieclip.lable = LabelType.IceCream
return movieclip return movieclip
} }
......
...@@ -7,7 +7,7 @@ import createIceCream from "./createIceCream"; ...@@ -7,7 +7,7 @@ import createIceCream from "./createIceCream";
import createGift3 from "./createGift3"; import createGift3 from "./createGift3";
const createItem = (scale) => { const createItem = (scale) => {
const funcs = [createIceCream]; const funcs = [createDonut,createBoom,createIceCream];
// const funcs = [createBoom, createIceCream, createDonut, createCandy2, createGift2, createGift3, createEgg]; // const funcs = [createBoom, createIceCream, createDonut, createCandy2, createGift2, createGift3, createEgg];
const i = Math.floor(Math.random() * funcs.length); const i = Math.floor(Math.random() * funcs.length);
const mc = funcs[i](scale); const mc = funcs[i](scale);
......
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