הצלחתי...
מה שעשיתי בסוף היה לשרטט קו בין הרכב ליעד שלו (רוחב הקו שווה לרוחב הרכב), ולבדוק אם יש collision בין הקו לבין פריטים אחרים. אם יש, המשחק מחשב את רוחב האובייקט שמסתיר, בוחר בנתיב הקצר ביותר ומשרטט מהנקודה הזו קו חדש אל היעד, ושוב בודק אם יש התנגשות. כל התהליך הוא רקורסיבי, כמובן, עד שמתקבל נתיב ליעד. יכולתי לייעל את זה עוד יותר, אבל באמת שלא ראיתי שום צורך כרגע להוסיף אלגוריתם מתוחכם יותר (שבודק את כל הנתיבים האפשריים, למשל - כרגע הוא תמיד יבחר במקטעים הקצרים ביותר, ולא בהכרח בדרך הכוללת הקצרה ביותר). זה מספיק טוב כרגע.