/ / Jak korzystać z metody Rect.intersect. - Android, płótno, przecinają się

Jak korzystać z metody Rect.intersect. - Android, płótno, przecinają się

Stworzyłem grę, w której poruszasz prostokątem i unikasz innych spadających prostokątów z nieba. Chociaż za każdym razem prostokąty przecinają się, nic się nie dzieje.

if(mSquare.intersect(jSquare)){ canvas.drawColor(Color.BLACK);
lub

collision = mSquare.intersect(jSquare);
if(collision==true){  canvas.drawColor(Color.RED);
}  this always returns false no matter where the rectangles are.......

Odpowiedzi:

4 dla odpowiedzi № 1

Można to zrobić na wiele sposobów, najprostszym byłoby uzyskanie ograniczenia Rect dla każdego Bitmap i za każdym razem, aby sprawdzić kolizję za pomocą Rect.intersect() metoda.

Coś takiego:

boolean collision = player.getRect().intersect(fallingObject.getRect());

Ponadto istnieje wiele innych (lepszych) sposobów, aby to zrobić, szczególnie w przypadku obiektów, które nie są prostokątami i gdy na ekranie jest wiele obiektów. ten post za dobrą dyskusję

Również książka „Rozpoczęcie gier na Androida” zawiera świetny rozdział na temat wykrywania kolizji, a książka jest warta przeczytania, jeśli rozważasz napisanie gry.