import { Vec2 } from 'cc' export default class RandomUtil { // 随机minNum到maxNum的数字 (包含maxNum) public static nextInt(minNum: number, maxNum: number) { return Math.floor(Math.random() * (maxNum - minNum + 1) + minNum) } public static nextNumber(minNum: number, maxNum: number) { return Math.random() * (maxNum - minNum) + minNum } public static nextSign() { const temp = Math.random() if (temp < 0.5) return 1 return -1 } public static nextBoolean() { const temp = Math.random() return temp < 0.5 } public static randomArr(nowArr: Array, needNum: number) { const tempArr: Array = nowArr.concat() const resultArr: Array = [] for (let index = 0; index < needNum; index++) { if (tempArr.length <= 0) break const randomIndex: number = RandomUtil.nextInt(0, tempArr.length - 1) resultArr.push(tempArr.splice(randomIndex, 1)[0]) } return resultArr } public static randomItem(nowArr: Array) { return this.randomArr(nowArr, 1)[0] } public static randomP(left: number, right: number, up: number, down: number) { const randomX: number = RandomUtil.nextNumber(left, right) const randomY: number = RandomUtil.nextNumber(up, down) return new Vec2(randomX, randomY) } }