- Ekranla aynı boyutta bir tampon oluşturun (veya Şekillerinizin olduğu yüzey). Her pozisyonda sprite olup olmadığı boole içerir; daha sonra, konumlarındaki hareketli grafik olup olmadığını (bu boole değerini kontrol ederek) kullanıcı şeklinin tüm "piksellerini" kontrol edin. Alternatif olarak, boolean yerine kimliğini saklayarak daha fazla sprite oluşturabilirsiniz; ama bu 1 sprite örneğiydi.
- Kullanıcı tarafından oluşturulan şekil satır dizisiyle temsil edilebilirse, bu tür hatların her birinin hareketli grafik çizip geçmediğini kontrol edebilirsiniz. Sprite dikdörtgen şekle sahip olduğundan ve kullanıcı şekli bir çizgi olduğundan "çizgi dikdörtgen kesişimi" arayın (bunu yapmak için tek bir eksen algoritması ayırın)
Yaklaşımlar, bitmap veya vektör olsun, hangi veri yapılarını seçtiğinize bağlıdır.
İlk yaklaşım keyfi karmaşık şekilleri işleyebilir, uygulanması kolaydır, ancak daha fazla bellek kullanır. Aslında sıkıştırma kullanarak bellek yükünü azaltabilir ve hiyerarşik veri strutures (octrees) kullanarak hızlandırabilirsiniz ...
İkinci yaklaşım, uygulanması o kadar basit değildir, ancak daha fazla işlem gücü kullanır.
Her durumda önemli olup olmadığını ölçün. İlkini yapmaya çalışacağım çünkü uygulaması daha basit. İyi şanslar. :)