1. У афтора и есть 2 разных типа
Лично моё имхо
Я делал чяастицы так
У меня 1 всего тип
И есть параметры массы, вектор скорости, время жизни и т.п. Оперируя этими параметрами можно получить пыль, искры, светлячки и много чего ещё. Лучше делать побольше параметров чтобы можно было настроить поведение частиц, а на все типы частиц всё равно типов не напасёсся (максимум 5 типов сделаешь потом задолбает)
В коде не фкуриваю как у тебя функция типа spark возвращает объект типа TSpark, это имхо работать не будет, да ещё у тебя две функции CreateSpark продекларированы, сч одинаковым именем. Проверь, ты правильно сюда код скопировал?
Function CreateSpark.spark(x#,y#,z#,n)
For i=1 to n
s2.TSpark= new TSpark
.....
Return s2
next
End Function
2. ИМХО квадраты состоящие из 2 полигонов
Хотя может я не совсем понял шо те надо.
3. Вообще делается класс Item, от него наследуются классы Weapon, Medkit,Eqip от Weapon наследуются Meele и Distance, от Distance наследуются Pistol, Gun, AutomatKalashnikova и всем трём задаются свои дополнительные переменные и свойства. Но это увы только там где есть ООП. В блитзе я бы сделал один тип Thing и прямо в ём бы и писал все параметры которые понадобятся как пистолету, так и ружью, плюс к этому - тип оружия, 0 - пистолет 1 - ружжё. В обоих случяаях будет юзаццо филд Power#, но в случае с пистолетом будет ещё юзацо филд TypePula а Freq# будет просто болтаться без дела, а если это ружьё, то наоборот. И обрабатывать естественнов зависимости от типа оружия.