An idea: transform the object/player coordinates to polar (you know: <angle, distance>) relative to the origin of your beam. In pseudocode:
Code:IF vector_length (object.position - beam.position) < beam.radius THEN new_object.position := object.position - beam.position; polar_object := polar (new_object.position); IF polar_object.angle BETWEEN beam.angle1 AND beam.angle2 THEN object.hit (); END IF; END IF;
Bookmarks