将零添加到int变量会导致奇怪的数字

时间:2012-02-04 18:44:41

标签: javascript

我在Javascript中应该使用简单的additon时遇到问题。

看看这个firebug输出:

Firebug output screenie

我正在制作的是画布中的2D平铺地图,并且对于地图中大于一个平铺大小的对象,它们的宽度和高度设置为负数,告诉我有多少平铺偏移x / y他们将使用相关数据到达磁贴。

这适用于所有情况,除非向数字添加零。这导致了奇怪的数字。

在上图中,有两个点击事件被触发,每个点击事件以“点击X x Y”开头,以“修改x / y到X Y”结束。正如你所看到的,点击一个带有-3的瓷砖作为Y偏移的工作正常,但点击一个0为Y偏移的瓷砖结果为247!我一直在一遍又一遍,没有得到更接近答案。所有数据似乎都很好,直到我尝试将0添加到变量y时。如果这不够奇怪,向x变量添加零可以正常工作!

这是输出调试消息并导致错误的代码片段。 x和y是函数调用的参数,cityMap是全局3D数组。

if (cityMap[x][y]['typeID']<0)
{
    // get deffered tile pos
    console.debug("Offset x = "+cityMap[x][y]['width']);
    console.debug("Offset y = "+cityMap[x][y]['height']);  
    x += parseInt(cityMap[x][y]['width'], 10);
    y += parseInt(cityMap[x][y]['height'], 10);
    console.debug("modified x/y into x:"+x+" y:"+y);
}

我完全迷失在这里的想法。有谁知道还有什么我可以尝试阻止Javascript这样做?

1 个答案:

答案 0 :(得分:0)

+1对于那些解决自己问题的开发人员!我得到了这个,但我读了你的评论,所以答案是你的,我不是把它写下来。