public void update() {
speedY = bg.getSpeedY()/2;
tileY += speedY;
r.set(tileX, tileY, 50, 48);
// Collision with cycle here:
if (tileY > 480) {
r = null;
}
if (tileY < 480) {
checkCollision();
}
}
private void checkCollision() {
if (type != 0) {
boolean val = Rect.intersects(Cycle.rect, r);
if (val) {
test = true;
}
}
}
使用我确定所有的矩形被正确地更新调试器和Cycle.rect返回正确的矩形地点工作。如果矩形在第一次检查时相交,则工作正常。但是,更新运行时,交集永远不会返回true。为什么会发生这种情况?我只用布尔值来帮助调试。检查是否矩形intercect只有当它们相交于第一检查
我已记录两个值,其中相信矩形应当相交,但并不:
R:02-24 23:32:50.762:V /矩形(16624):矩形(50,314 - 50, 48) Cycle.rect:02-24 23:32:50.762:V/Rect(16624):Rect(49,329-100,100)
这是一个有点硬,只有这些信息来回答。也许'type'是0?也许'Cycle.rect'确实不会与'r'相交?检查'Cycle.rect'和'r'的每个位置。另外,记录值'tileY'可能会有所帮助。 –
而不是记录tileY我记录了两个矩形以确保它们相交。我登录的类型检查,所以我知道类型不是0. 02-24 23:32:50.762:V/Rect(16624):Rect(50,314 - 50,48) 02-24 23: 32:50.762:V/Rect(16624):Rect(49,329-100,100) 这两个矩形应该相交? – seanEP
检查我的答案。经过一番试验后,如果我交换你的最高价值,我会得到你的'Rect'相交。 –