我正在尝试使用Phaser游戏引擎。我已经弄清如何给精灵上色,下一步是随机给它一个颜色。我该如何使用枚举来实现这个目标?
var colors = {
RED: 0xff0000,
GREEN: 0x00ff00,
BLUE: 0x0000ff
}
logo.tint = colors[Math.floor(Math.random() * colors.length)];
我正在尝试使用Phaser游戏引擎。我已经弄清如何给精灵上色,下一步是随机给它一个颜色。我该如何使用枚举来实现这个目标?
var colors = {
RED: 0xff0000,
GREEN: 0x00ff00,
BLUE: 0x0000ff
}
logo.tint = colors[Math.floor(Math.random() * colors.length)];
今天我遇到了这个问题,通过以下方式能够获取一个随机值:
var rand = Math.floor(Math.random() * Object.keys(colors).length);
var randColorValue = colors[Object.keys(colors)[rand]];
这是我用typescript编写的一个方法,如果你想在javascript中使用,请删除类型声明。
function getRandomEnumValue<T>(anEnum: T): T[keyof T] {
//save enums inside array
const enumValues = Object.keys(anEnum) as Array<keyof T>;
//Generate a random index (max is array length)
const randomIndex = Math.floor(Math.random() * enumValues.length);
// get the random enum value
const randomEnumKey = enumValues[randomIndex];
return anEnum[randomEnumKey];
// if you want to have the key than return randomEnumKey
}
var colors =[
{RED: 0xff0000},
{GREEN: 0x00ff00},
{BLUE: 0x0000ff}
];
colors[Math.floor(Math.random() * colors.length)];
logo.tint=colors[Math.floor(Math.random() * Object.keys(colors).length)]
- dandavis