Düşmanımın oyuncumu görebildiğini nasıl anlarım?


15

Bir oyuncu ve pozisyonu olan bir düşman ve her birinin yön vektörü göz önüne alındığında, birinin diğerini "görüp göremeyeceğini" nasıl anlayabilirim?

Başka bir deyişle, yönü olan bir konumun yönü olan başka bir konumun önünde veya arkasında olup olmadığını nasıl test edebilirim?

Benim amacım için, 'önünde', doğrudan önünde veya her iki taraf için 90 derece anlamına gelir.


11
Açıkçası çözüm, başka bir kamera oluşturmak ve sahneyi düşmanın bakış açısından yeniden oluşturmak, ardından oyuncu karakteri için sonuç üzerinde görüntü tanıma yapmaktır.
Riking

en basit cevap ödülü ...
OganM

3
Riking'in yorumu muhtemelen bir şaka olarak düşünülse de, bunu yapmanın gerçek adil yolu - NPC'lere , oyunun iç durumuna erişmesine izin vermektense, oyun devletine aynı erişim hakkı verir.
R .. GitHub BUZA YARDIMCI DURDUR

5
@R .. Evet, ama çizgiyi nerede çiziyorsun? Bu mantığı mantıklı son noktasına getirerek, NPC'ler sonunda bir insan gibi oynama ve düşünme yeteneği ile duyarlı hale gelir ... muhtemelen bu noktada rasyonel bir şekilde yine de duvar çalmaya başlamaya karar verirler: p
Thomas

@Thomas: Pratikte, oyuncu olarak sahip olacakları bilgi düzeyine yaklaşarak, bu şekilde uygulama zahmetine girmeden bir çeşit uzlaşma sağlayabileceğinizi düşünüyorum. Görüş hattı için doğru test, belirli bir mesafenin ötesinde bir nesneyi tanımlama yeteneğini sınırlama vb. Gibi basit önlemler uzun bir yol kat edebilir.
R .. GitHub BUZA YARDIMCI DURDUR

Yanıtlar:


17

İki vektörün nokta çarpımı, birbirlerine bakıp bakmadıklarını söyleyebilir. Birinci vektör muhtemelen düşmanların bakış yönü olabilir, ikincisi oyuncunun konumundan düşman konumuna işaret eden bir vektör olmalıdır.

https://www.youtube.com/watch?v=Q9FZllr6-wY


Ah evet, çok düşünmüştüm. 4 vektör hokkabazlık yapıyordum, ama gerçekten vektörü bir oyuncudan diğerine istiyorum. Video çok yardımcı oldu, teşekkürler.
izb

Bu cevap eklenmelidir düşünüyorum Bir önemli ayrıntı oyun da onlar aslında (duvarlar vb tarafından engellenmez) oyuncu görebilirsiniz emin olmak için bir raycast falan yapmalıyım
T. Kiley

1
@ T.Kiley: Riking tarafından soruya yapılan yorumda önerilmişti. Hayır, bunun bir şaka olduğunu düşünmüyorum. Eğer oyununuz 3D ise, reklâm yapmak aslında bunu yapmanın adil bir yoludur. Sadece oyuncuları ve diğer önemli nesneler başka renklerde işlenmelidir dışında, siyah dokudaki tüm nesnelerle, düşmanın bakış açısından sahneyi yeniden oluşturun. Aydınlatmayı ve gölgelendirmeyi devre dışı bıraktığınızdan emin olun. Ortaya çıkan arabellek tamamen siyah değilse, birisinin düşmanın görüş alanında olduğunu bilirsiniz ve rengi, hangi nesneleri olduklarını tanımlamak için kullanabilirsiniz.
Yalan Ryan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.