• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy jest jakiś wydajniejszy sposób na zaimplementowanie w OBJECT C++ ścian 2d???

Object Storage Arubacloud
0 głosów
117 wizyt
pytanie zadane 12 lutego 2017 w C i C++ przez Toran138 Nowicjusz (210 p.)

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;
        }
}

 

1 odpowiedź

+2 głosów
odpowiedź 12 lutego 2017 przez jankustosz1 Nałogowiec (35,880 p.)
wybrane 9 lipca 2019 przez Toran138
 
Najlepsza
Rozumiem że mówiąc wydajniejsze nie chodzi ci o wydajność programu tylko wydajność pisania.

Po 1 ściany powrzucaj do tablicy

Po 2 napisz funkcję która sprawdzi czy jest kolizja ze ścianą przesłaną parametrem.

po 3 wykonuj tą funkcję za każdym przesunięciem na wszystkich elementach tablicy

A wydajność możesz poprawić dzieląc np. ekran na mniejsze kawałki i trzymać te labirynty w 4 różnych tablicach. A potem nie sprawdzać wszystkich elementów tylko te z danej ćwiartki. Choć raczej nie jest ci to potrzebne. Możesz też nie sprawdzać kolizji tylko czy zgadzają się pixele wokół tego co się rusza.

Podobne pytania

0 głosów
1 odpowiedź 235 wizyt
pytanie zadane 23 kwietnia 2017 w Inne języki przez Mar-Ch Nowicjusz (150 p.)
+4 głosów
4 odpowiedzi 644 wizyt
0 głosów
1 odpowiedź 473 wizyt

92,550 zapytań

141,392 odpowiedzi

319,519 komentarzy

61,935 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...