79 lines
2.6 KiB
TypeScript
Raw Normal View History

2022-07-15 18:23:35 +08:00
import { _decorator, Component, Node } from 'cc';
import * as cc from 'cc';
2022-07-16 03:37:18 +08:00
import { RollingLottery } from './RollingLottery';
2022-07-16 20:33:24 +08:00
import { RotatingLottery } from './RotatingLottery';
2022-07-15 18:23:35 +08:00
const { ccclass, property } = _decorator;
@ccclass('main')
export class main extends Component {
2022-07-16 20:33:24 +08:00
/** 横向滚动 */
@property({ displayName: '横向滚动', type: RollingLottery })
horizontalScroll: RollingLottery = null;
/** 竖向滚动 */
@property({ displayName: '竖向滚动', type: RollingLottery })
verticalScroll: RollingLottery = null;
/** 旋转转盘 */
@property({ displayName: '旋转转盘', type: RotatingLottery })
rotateTurntable: RotatingLottery = null;
/** 旋转指针 */
@property({ displayName: '旋转指针', type: RotatingLottery })
rotateArrow: RotatingLottery = null;
2022-07-15 18:23:35 +08:00
/* ------------------------------- segmentation ------------------------------- */
start() {
2022-07-16 20:33:24 +08:00
let scrollF = async () => {
let targetIndexN = Math.floor(Math.random() * 100 - 50);
// cc.log('滚动目标', targetIndexN);
let task = new Promise<void>((resolveF) => {
this.horizontalScroll.scroll(targetIndexN, {
endCBF: resolveF
});
});
let task2 = new Promise<void>((resolveF) => {
this.verticalScroll.scroll(targetIndexN, {
endCBF: resolveF
});
});
await Promise.all([task, task2]);
setTimeout(() => {
scrollF();
}, 1000);
};
scrollF();
2022-07-16 01:54:43 +08:00
2022-07-16 20:37:15 +08:00
let rotateF = async () => {
let targetIndexN = Math.floor(Math.random() * 12);
cc.log('旋转目标', targetIndexN);
let task = new Promise<void>((resolveF) => {
this.rotateTurntable.scroll(targetIndexN, {
endCBF: resolveF
});
});
let task2 = new Promise<void>((resolveF) => {
this.rotateArrow.scroll(targetIndexN, {
endCBF: resolveF
});
});
await Promise.all([task, task2]);
setTimeout(() => {
rotateF();
}, 1000);
};
rotateF();
2022-07-15 18:23:35 +08:00
}
/* ------------------------------- segmentation ------------------------------- */
eventItemUpdate(node_: cc.Node, indexN_: number): void {
node_.getComponentInChildren(cc.Label).string = indexN_ + '';
}
2022-07-16 01:54:43 +08:00
2022-07-16 04:02:04 +08:00
eventCenterNode(indexN_: number): void {
2022-07-16 20:33:24 +08:00
// cc.log('当前下标', indexN_);
2022-07-16 01:54:43 +08:00
}
2022-07-16 04:02:04 +08:00
eventScrollEnd(): void {
2022-07-16 20:33:24 +08:00
// cc.log('滚动结束');
2022-07-16 01:54:43 +08:00
}
2022-07-15 18:23:35 +08:00
}