ฉันจะบอกได้อย่างไรว่าศัตรูของฉันเห็นผู้เล่นของฉันหรือไม่


15

ให้ผู้เล่นและศัตรูที่อยู่ในตำแหน่งและให้เวกเตอร์ทิศทางของแต่ละคนฉันจะบอกได้อย่างไรว่าใครสามารถ "เห็น" อีกฝ่ายได้?

กล่าวอีกนัยหนึ่งฉันจะทดสอบว่าตำแหน่งหนึ่งที่มีทิศทางอยู่ด้านหน้าหรือด้านหลังตำแหน่งอื่นพร้อมทิศทางได้อย่างไร

สำหรับจุดประสงค์ของฉัน 'ด้านหน้า' หมายถึงด้านหน้าโดยตรงหรือ 90 องศาทั้งสองด้าน


11
เห็นได้ชัดว่าทางออกคือการสร้างกล้องอีกตัวและแสดงฉากจากมุมมองของศัตรูอีกครั้งจากนั้นทำการรับรู้ภาพเกี่ยวกับผลลัพธ์สำหรับตัวละครของผู้เล่น
Riking

รางวัลคำตอบที่ง่ายที่สุดไปที่ ...
OganM

3
ในขณะที่ความคิดเห็นของ Riking นั้นน่าจะเป็นเรื่องตลกนี่เป็นวิธีที่ยุติธรรมที่จะทำ - ให้ NPC เข้าถึงเกมแบบเดียวกันกับที่ผู้เล่นจะมีมากกว่าที่จะให้พวกเขาเข้าถึงสถานะภายในของเกม
. GitHub หยุดช่วยน้ำแข็ง

5
@R .. ใช่ แต่คุณจะวาดเส้นที่ไหน ด้วยเหตุผลนี้ถึงเหตุผลที่เป็นจุดสิ้นสุดของ NPC ในที่สุดกลายเป็นความรู้สึกที่มีความสามารถในการเล่นและคิดว่าเป็นมนุษย์ ... ณ จุดที่พวกเขาอาจจะมีเหตุผลตัดสินใจที่จะเริ่ม wallhacking อีกต่อไป: p
Thomas

@ โทมัส: ในทางปฏิบัติฉันคิดว่าคุณสามารถทำการประนีประนอมได้โดยประมาณระดับของข้อมูลที่พวกเขาจะได้รับในฐานะผู้เล่นโดยไม่ต้องมีปัญหาในการใช้มันในแบบนั้น มาตรการง่าย ๆ เช่นการทดสอบที่ถูกต้องสำหรับการมองเห็นการจำกัดความสามารถในการระบุวัตถุที่อยู่นอกระยะทางที่กำหนด ฯลฯ อาจไปได้ไกล
. GitHub หยุดช่วยน้ำแข็ง

คำตอบ:


17

ผลคูณของจุดของเวกเตอร์สองตัวสามารถบอกคุณได้ว่าพวกมันเผชิญหน้ากันหรือไม่ เวกเตอร์แรกอาจเป็นทิศทางที่ศัตรูมองได้เวกเตอร์ที่สองควรเป็นเวกเตอร์ที่ชี้จากตำแหน่งของผู้เล่นไปยังตำแหน่งศัตรู

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


ใช่ฉันคิดมากไป ฉันเล่นกลเวกเตอร์ 4 อัน แต่จริง ๆ แล้วฉันต้องการเวกเตอร์จากผู้เล่นคนหนึ่งถึงอีกคน วิดีโอมีประโยชน์มากขอบคุณ
izb

รายละเอียดที่สำคัญอย่างหนึ่งที่ฉันคิดว่าควรเพิ่มลงในคำตอบนี้คือเกมควรทำ raycast หรือบางสิ่งบางอย่างเพื่อให้แน่ใจว่าพวกเขาสามารถเห็นผู้เล่นได้ (โดยไม่ถูกบล็อกโดยกำแพง ฯลฯ )
T. Kiley

1
@ T.Kiley: จริง ๆ แล้วได้รับการแนะนำโดย Riking ในความคิดเห็นคำถาม ไม่ฉันไม่คิดว่ามันเป็นเรื่องตลก หากเกมของคุณเป็นแบบ 3 มิติการฉายรังสีเป็นวิธีที่ยุติธรรมที่จะทำ เพียงแค่แสดงฉากกับวัตถุทั้งหมดในพื้นผิวสีดำจากมุมมองของศัตรูยกเว้นผู้เล่นและวัตถุสำคัญอื่น ๆ ควรแสดงผลในสีอื่น ตรวจสอบให้แน่ใจว่าปิดใช้งานการให้แสงและเงา หากบัฟเฟอร์ที่ได้นั้นไม่ใช่สีดำทั้งหมดคุณก็รู้ว่ามีใครบางคนที่อยู่ในแนวสายตาของศัตรูและคุณสามารถใช้สีเพื่อระบุว่าพวกมันคืออะไร
Lie Ryan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.