使用随机数学选择&放置图像

时间:2014-01-26 22:05:33

标签: javascript math random

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');
    }

我做错了什么,如何解决?

2 个答案:

答案 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");
    }
}