Canvas - zbieranie przedmiotów przez gracza

0

Witam,
Mam następujący problem, a mianowicie:
Mam gracza, który jest reprezentowany przez kwadrat o wymiarach:

const playerHeight = 30;
const playerWidth = 30;

Mam przedmiot - pieniążek, którego wymiary to:

const coinHeight = 10;
const coinWidth = 10;

Teraz chciałbym zrobić tak: jak obiekt gracz "zderzy się" / dotknie przedmiotu pieniążek, to ten przedmiot znika i pojawia się kolejny, nie wiem jak poprawnie sprecyzować warunki, poki co zrobilem tak:

if(((playerX - coinX) <= 10 || (playerY - coinY) <= 10) && ((playerX - coinX) >= -10 && (playerY - coinY) >= -10)){
	coinX = Math.floor(Math.random()*(900 - 100 + 1 ) + 100);
	coinY = Math.floor(Math.random()*(400 - 100 + 1 ) + 100);
}

Ale to nie jest precyzyjne hmmm, próbowałem też zrobić: if'a, takiego, że playerX == coinX && playerY == coinY, ale taka sytuacja nie będzie miała miejsca nigdy.
Gra wygląda póki co tak:
title

1

Wystarczy sprawdzić czy którykolwiek z wierzchołków pieniążka znajduje się w polu zajmowanym przez gracza. Dla uproszczenia zrób na razie sprawdzanie czy środek pieniążka znajduje się w tym polu. Zastanów się jak napisać taki warunek, na pewno dasz radę.

0

@Haskell:
Ogólnie teraz wykminiłem i zrobiłem takie warunki:

if((coinX >= playerX && coinY >= playerY) && ((coinX + coinWidth) <= (playerX + playerWidth) && (coinY >= playerY)) && (coinX >= playerX && (coinY + coinHeight) <= (playerY + playerHeight)) && ((coinX + coinWidth) <= (playerX + playerWidth) && (coinY + coinHeight) <= (playerY + playerHeight))){
		coinX = Math.floor(Math.random()*(900 - 100 + 1 ) + 100);
		coinY = Math.floor(Math.random()*(400 - 100 + 1 ) + 100);
}

Sprawdzam czy pieniążek zawiera się / znajduje się w graczu, teraz testuje to śmiga spoko, ale np. gdy "zderzą się kawałkiem siebie" to troche kicha, dopiero jak pieniążek stanie się jakby w całości częścią gracza :P
Chodzi mi o taką sytuację:
title
Nowy pieniążek pojawi się dopiero, gdy całkowicie wejdę graczem na niego hmmm
@Edit
Dobra juz wykminiłem, ale sporo warunkow wyszło :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1