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'相交。 –