А зачем объявлять два совершенно одинаковых класса (TPlayerSprite1 и TPlayerSprite2)? Когда можно объявить один и сделать два (при необходимости, сколько угодно) экземпляра этого класса.
Код:
procedure TMainForm.FormCreate(Sender: TObject);
var
PS1, PS2 : TPlayerSprite;
begin
PS1 := TPlayerSprite.Create(Dxspriteengine.Engine);
PS2 := TPlayerSprite.Create(Dxspriteengine.Engine);
end;
Впрочем, я DelphiX не знаю (а тем более ваш проект), поэтому брякнул, что первое пришло в голову. Наверное в проекте так надо.
Если TPlayerSprite визуальный компонент тогда оправдано, но опять же, зачем тогда его создавать в FormCreate, если они автоматом создаются при запуске программы.