Javascipt oyunumda oyuncu, mermi ve düşman arasında bir çarpışma yaşıyorum. Daha önce, mermi dikdörtgenlerdi, ama şimdi imgelerim var. Görüntüler dikdörtgen bir kutuya sıkıca sığar, 2D çarpışma çalışması bekleniyordu. İşte görüntü şu şekildedir: Mermi bir şekilde dikdörtgen şeklindedir. Çarpışma biraz çalışırBu 2B çarpışma neden görüntülerim için tam olarak çalışmıyor?
return rect1.x <= rect2.x+rect2.width
&& rect2.x<=rect1.x+rect1.width
&& rect1.y<=rect2.y+rect2.height//if all statements are true, they are colliding
&& rect2.y<=rect1.y+rect1.height;
Ancak mermi anlamlı oynatıcının altında olabilir ve yine çarpışma tetikleyebilir ve üstten oyuncu olmadan içeri önemli ölçüde üçüncü yol olabilir: Benim çarpışma sisteminde bu mantığı kullanmak çarpışmayı tetikliyor. Düzeltmek için yapabileceğim bir şey var mı? Çarpışma sistemi sadece dikdörtgensel olarak kusursuz çalıştı ve burada yeterince yakın olmalıydı, ama yeterince iyi değil. Kaynak kodunu ve kendiniz için sorunu görmek istiyorsanız, geliştirmemdeki gerçek oyunumun bağlantısı: JS Game
Kodunuzu kullanmayı denedim ve sonuç aynıydı. Bu dikdörtgenler ile çalışır, ancak bir nedenle, görüntü ile kaydırılır. Değerlerle oynamayı denedim. Eğer rect1y
Öyleyse, sorun, görüntünün yerleştirilmesinde, çarpışma algılayışınızdan çok olabilir. Resminizi (görünmez) dikdörtgeninize nasıl yerleştirirsiniz? – Jankapunkt
Haklısınız, bu bir yerleşim meselesiydi. Resimlerin sol üst köşesi x ve y idi, ancak çarpışmada bu koordinatların merkezde olması sağlandı. Bunu şimdi yaptım: drawImage (img, x-width/2, y-height/2, width, height). teşekkür ederim –