我正在尝试创建一个基于瓷砖的游戏,并想给每种类型的瓷砖一个随机的颜色,例如:
Game.Glyph = function(properties) {
properties = properties || {};
this._char = properties['character'] || ' ';
this._foreground = properties['foreground'] || 'white';
};
Game.Tile.floorTile = new Game.Tile({
character: '.',
});
然后假设我已经用Game.Tile.floorTile
(以及其他)填充了一个map
数组
for (let x = 0; x < this._width; x++) {
for (let y = 0; y < this._height; y++) {
if (map[x][y] == Game.Tile.floorTile) {
map[x][y]._foreground = ['red','yellow'].random();
}
}
}
这导致每个地砖要么是红色,要么是黄色,而不是随机分布。我如何给每个瓷砖一个随机的颜色,就像我在上面尝试的那样?
发布于 2018-12-04 03:58:37
如果您只想在两个值之间进行选择,则ternary可以很容易地与Math.random()
相结合,后者会生成一个介于0和1之间的值:
map[x][y]._foreground = Math.random() > 0.5 ? 'red': 'yellow'
例如,使用代码的简化版本:
let map = [[{}, {}],[{}, {}]]
for (let x = 0; x < 2; x++) {
for (let y = 0; y < 2; y++) {
map[x][y]._foreground = Math.random() > 0.5 ? 'red': 'yellow'
}
}
console.log(map)
https://stackoverflow.com/questions/53600938
复制相似问题