我正在学习javascript而且我正在开发一个小骰子游戏。在游戏中你点击鼠标,骰子“滚动”,你得到了骰子的新面。我只是改变模具的表面以匹配滚动的数字。我似乎无法让它发挥作用。当我点击鼠标时,会输入一次随机数,但它始终是其他的。它等于6或更高,我不能让它再次滚动。当您单击鼠标时,它应该创建一个介于0 5之间的随机数,然后对应的if语句应该显示骰子的那一侧。我已经绞尽脑汁待了一个多小时,似乎无法理解为什么它不起作用。有人可以看看我的代码并告诉我我做错了什么。请!
var dice = 0;
function setup() {
createCanvas(600, 400)
}
function draw() {
background(0);
if (dice == 0) {
rectMode(CENTER);
fill(255);
rect(300, 200, 50, 50);
rectMode(CENTER);
fill(0);
ellipse(300, 200, 5, 5)
} else if (dice == 1) {
rectMode(CENTER);
fill(255);
rect(300, 200, 50, 50);
fill(150);
ellipse(290, 190, 5, 5);
fill(150);
ellipse(310, 210, 5, 5);
} else if (dice == 2) {
rectMode(CENTER);
fill(255);
rect(300, 200, 50, 50);
fill(150);
ellipse(290, 190, 5, 5);
fill(150);
ellipse(310, 210, 5, 5);
fill(150)
ellipse(290, 210, 5, 5)
} else if (dice == 3) {
rectMode(CENTER);
fill(255);
rect(300, 200, 50, 50);
fill(150);
ellipse(290, 190, 5, 5);
fill(150);
ellipse(310, 210, 5, 5);
fill(150)
ellipse(290, 210, 5, 5);
fill(150);
ellipse(310, 190, 5, 5)
} else if (dice == 4) {
rectMode(CENTER);
fill(255);
rect(300, 200, 50, 50);
fill(150);
ellipse(290, 190, 5, 5);
fill(150);
ellipse(310, 210, 5, 5);
fill(150)
ellipse(290, 210, 5, 5);
fill(150);
ellipse(310, 190, 5, 5);
fill(150);
ellipse(300, 200, 5, 5)
} else {
rectMode(CENTER);
fill(255);
rect(300, 200, 50, 50);
fill(150);
ellipse(290, 190, 5, 5);
fill(150);
ellipse(310, 210, 5, 5);
fill(150)
ellipse(290, 210, 5, 5);
fill(150);
ellipse(310, 190, 5, 5);
fill(150);
ellipse(300, 210, 5, 5);
fill(150);
ellipse(300, 190, 5, 5)
}
}
function mousePressed() {
dice = random(5);
}
答案 0 :(得分:1)
使用此代替dice = random(5)
dice = Math.floor(Math.random() * 6);
Math.random()返回0到1之间的浮点数 我们将它加倍6然后我们有一个介于0到6之间的数字 但它像5.22554545一样漂浮 我们使用Math.floor将其四舍五入到楼层编号,因此它是0到5之间的整数(和5本身)。 ===> 5.22324234 = 5