Javascript 将零添加到int变量会导致奇怪的数字
我对Javascript中的简单加载项有一个问题 看看这个firebug输出: 我正在做的是画布上的2D平铺贴图,对于贴图中尺寸大于一个平铺的对象,它们的宽度和高度设置为负数,以告诉我它们在x/y方向上偏移了多少个平铺,以获得具有相关数据的平铺 这适用于所有情况,除非将零添加到数字中。这导致了奇怪的数字 在上图中,触发了两个单击事件,每个事件以“单击X X Y”开始,以“将X/Y修改为X Y”结束。如您所见,单击Y偏移量为-3的平铺效果良好,但单击Y偏移量为0的平铺结果为247!???我已经一遍又一遍地讨论这个问题,没有找到答案。所有数据似乎都很好,直到我尝试将0添加到变量y时为止。如果这还不够奇怪的话,那么将零添加到x变量就可以了 下面是输出调试消息并导致错误的代码片段。x和y是函数调用的参数,cityMap是全局3D数组Javascript 将零添加到int变量会导致奇怪的数字,javascript,Javascript,我对Javascript中的简单加载项有一个问题 看看这个firebug输出: 我正在做的是画布上的2D平铺贴图,对于贴图中尺寸大于一个平铺的对象,它们的宽度和高度设置为负数,以告诉我它们在x/y方向上偏移了多少个平铺,以获得具有相关数据的平铺 这适用于所有情况,除非将零添加到数字中。这导致了奇怪的数字 在上图中,触发了两个单击事件,每个事件以“单击X X Y”开始,以“将X/Y修改为X Y”结束。如您所见,单击Y偏移量为-3的平铺效果良好,但单击Y偏移量为0的平铺结果为247!???我已经一
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);
}
if(城市地图[x][y]['typeID']+1对于所有解决自己问题的开发人员!我得到了这个,但我读了你的评论,所以答案是你的,我不会写下来。有可能y在其他地方被修改了吗?在+=
指令之前添加一条调试消息来打印y的值,以确保…在这里似乎很有效:很好不太可能Javascript在这里做错了什么。您是否尝试过在Firebug中单步执行函数并查看涉及的变量?可能此变量存储为字符串?您是否可以尝试将变量“强制转换”为整数,“247”看起来像2^8-10(我不知道-10来自何处,但可能来自X?…其JS:))所以试着乘以1:y=y*1+…,或者使用parseint函数。。问题是这两行:x+=parseInt(cityMap[x][y][width'],10);y+=parseInt(城市地图[x][y][height'],10);调用第二行时,第一行将x修改为不同的值,导致第二行从不同的数组元素读取。哦!是时候用谷歌搜索一张50英尺高的脸谱图了。。。(不得不在回复中回答,因为显然新手不能在发帖后8小时内回答自己的问题。这是一个多么奇怪的规则啊)