JS,游戏制作和事物的新手。我不确定我是否真的这么做,但我正在使用Phaser制作HTML5 / JS游戏。在游戏开始时,我希望代码能够生成三个农业用地,在贫瘠,正常和良好的土壤之间进行选择。
现在应该生成1到10之间的数字,然后根据返回值将土壤分配到一个地方,1 =差,2 - 8 =正常,9或10 =好。但我不能让它发挥作用,我不确定我有什么不对。当我尝试运行它并且背景图像甚至无法工作时,没有任何反应。
到目前为止我的代码是这样的:
function create() {
game.add.sprite(0, 0, 'startbg');
plot1 = Math.floor((Math.random()*10)+1);
if ( plot1 === 1 ){
game.add.sprite(190, 250, 'poor');
}else if (plot1 >= 2 && plot1 <=8){
game.add.sprite(190, 250, 'norm');
}else (plot1 === 9 || plot1 === 10){
game.add.sprite(190, 250, 'good');
}
我做错了什么,如何解决?
答案 0 :(得分:2)
您的上一个else
有条件声明,但不是else if
。尝试删除它,看看是否有效:
else {
game.add.sprite(190, 250, 'good');
}
答案 1 :(得分:1)
你可以试试这个,虽然没有看到更多你的代码我怀疑它会起作用,但也许。
另外,190, 250
...是精灵背景位置的那些坐标?精灵最高坐标值为0, 0
。因此,如果它们是,它实际应该是-190, -250
,并且可能最后也是px,如-190px, -250px
。
function create() {
game.add.sprite(0, 0, 'startbg');
plot1 = Math.floor(Math.random()*10 + 1);
if ( plot1 === 1 ){
game.add.sprite(190, 250, 'poor');
}else if (plot1 >= 2 && plot1 <=8){
game.add.sprite(190, 250, 'norm');
}else if (plot1 === 9 || plot1 === 10){
game.add.sprite(190, 250, 'good');
}
else {
alert("some error");
}
}