Javascript掷骰子动画

时间:2016-07-06 10:34:28

标签: javascript

你好我用一个小动画做了掷骰子功能,但最后我有一个问题因为cuz动画doent到最后:

function read_stdinSync() {
    var b = new Buffer(1024)
    var data = ''

    while (true) {
        var n = fs.readSync(process.stdin.fd, b, 0, b.length)
        if (!n) break
        data += b.toString(null, 0, n)
    }
    return data
}

所以我死了(1-6).png女巫用来表示女巫号码已经生成,我有动画(1-8).png女巫用于动画。

所以在内部区间我生成1-8之间的随机数然后将diece1和diece2 src属性更改为动画生成一切顺利,但在动画结束时#34; num"达到60我想将diece1和diece2 src设置为d1或d2中的一个随机生成到1-6然后调用结果图像

但最后我得到了最后一个动漫形象,而不是结果图像更清晰我有动漫(1-8).png而不是死(1-6).png和我之前被提及动漫pngs是为animate和die pngs是结果,我得到最后生成的动漫png一个间隔停止我试图在区间之外改变src但结果是相同的

3 个答案:

答案 0 :(得分:3)

虽然您已经清除了间隔,但它仍会完成最后一次运行,这将导致您的骰子再次出现动画图像。

您唯一需要做的就是在else语句中添加if,如下所示:

if(num == 60){
    diece1.src = "die" + d1 + ".png";
    diece2.src = "die" + d2 + ".png";
    clearInterval(interval);
}else{
    diece1.src = "anim" + num1 + ".png";
    diece2.src = "anim" + num2 + ".png";
}

希望这有帮助

答案 1 :(得分:2)

更改

if(num == 60){
    diece1.src = "die" + d1 + ".png";
    diece2.src = "die" + d2 + ".png";
    clearInterval(interval);
}
    diece1.src = "anim" + num1 + ".png";
    diece2.src = "anim" + num2 + ".png";

if(num == 60){
    diece1.src = "die" + d1 + ".png";
    diece2.src = "die" + d2 + ".png";
    clearInterval(interval);
} else {
    diece1.src = "anim" + num1 + ".png";
    diece2.src = "anim" + num2 + ".png";
}

目前最后两行覆盖最终输出阶段。

答案 2 :(得分:0)

if(num < 60){//Rolling dice
    diece1.src = "anim" + num1 + ".png";
    diece2.src = "anim" + num2 + ".png";
} else {  //Results pair up?
    diece1.src = "die" + d1 + ".png";
    diece2.src = "die" + d2 + ".png";
    diece1.src = "anim" + num1 + ".png";
    diece2.src = "anim" + num2 + ".png";
    clearInterval(interval);
}

那怎么样?