Tworzę właśnie grę, dwuwymiarowy labirynt i koduje ściany oraz różne pułapki. Podczas kodowania pierwszej ściany zauważyłem dość poważny ( według mnie ) problem, tworząc if blokujący ruch do góry zauważyłem że jest bardzo długi a takich if-ów może czasami być nawet 50. Czy jest jakieś wydajniejsze rozwiązanie?
void __fastcall TForm1::upTimer(TObject *Sender)
{
if((player->Top<=Image1->Top+Image1->Height+2)&&
(player->Left<=Image1->Left+Image1->Width)&&
(player->Left+player->Width>=Image1->Left)&&
(player->Top+player->Height>Image1->Top+Image1->Height))
{
player->Top-=0;
}
else
{
player->Top-=4;
}
}