Ray-Casting Between An Entity And Another Group Of Entities

Ray-Casting Between An Entity And Another Group Of Entities

You are here:
← All Topics

Ray casting is a technique for finding (or “picking”) the closest entity from a group of entities on the screen by sending a linear “Ray” from some entity (3D model or mouse pointer) towards that group of entities for example:

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

Notice that the enemies.hit object is the closest entity which collides with the ray sent from the s1 entity