דרך פשוטה למציאת האובייקט הקרוב ביותר לאובייקט אחר על ציר העומק (ציר Z) היא ע”י שימוש ב Ray casting שזאת מעין קרן אור דמיונית בלתי נראית שאנו יורים קדימה והיא מדווחת לנו מהוא האובייקט הקרוב ביותר בו היא פגעה לדוגמא בתכנית שלפנינו:
m1 is a dragon having pos=(3,-2,0) m1 belongs to the enemies group m2 is a sinbad having pos=(-3,0,0) m2 belongs to the enemies group s1 is a sight sprite function rotate_picked_entity(m) = do m.turn left 30 in 1 second end do when key left is pressed do s1.move left 1 in 0.1 seconds end do when key right is pressed do s1.move right 1 in 0.1 seconds end do // perform ray casting here when key space is pressed once do if enemies.ray check from (s1) then do run rotate_picked_entity(enemies.hit) end do end do
במקרה הזה הצגנו שני אובייקטים, אחד דרקון m1 השני סינבאד m2 ואובייקט נוסף של כוונת s1. ואז כאשר המשתמש לוחץ על מקש הריווח אנו בודקים באיזה אובייקט פגעה הקרן שיצאה מהכוונת. האובייקט שבו פגעה הקרן מסתובב 30 מעלות שמאלה.
נשים לב לפרט חשוב – שני האובייקטים, הדרקון והסינבאד שוייכו לקבוצה בשם enemies זאת מאחר שאת בדיקת ה ray casting אנו עושים מול קבוצה של אובייקטים ולא מול אובייקט בודד.
פקודת ה:
if enemies.ray check from (s1) then do
מבצעת את בדיקת הקרן ואם הבדיקה מצליחה אזי האובייקט הקרוב ביותר שנתפס בקרן נמצא במשתנה hit במקרה שלנו enemies.hit