Optymalizacja kodu Gry i kilka porad

0

Otóż z c++ przygodę zacząłem 4 dni temu i jak dotąd napisałem owe coś co nazywam pseudo grą. Tylko z racji tego ze wszystkie proste rzeczy juz nabazgroliłem zaczynają sie problemy.

Mianowicie:

  1. Jakie są opcje optymalizacji tego kodu (starałem się bawić klasami ale nie rozkminiam tego za bardzo)
  2. Menu (proste jakieś) szukałem opcji gui (osobna boblioteka) nie wiem jak to zrobić czy allegro mi w tym pomoże
  3. Kule czy da się je jakoś załatwić sprytnym arrayem i po zderzeniu usuwaniu rekordu czy muszę walczyć z vectorem?
  4. No i zmiana broni aktualnie wygląda ona 1, 2 ale jakoś mi to nie pasuje.

Czekam na sugestie i z góry dzięki za porady. KryQ

0

Jakie są opcje optymalizacji tego kodu (starałem się bawić klasami ale nie rozkminiam tego za bardzo)

Nie mogę specjalnie potestować jako że nie udostępniłeś pliku .exe.
Jeśli chcesz poprawiać wydajność - nie rób nic zanim nie przeanalizujesz tego pod profilerem (http://stackoverflow.com/questions/67554/whats-the-best-free-c-profiler-for-windows-if-there-are)

Menu (proste jakieś) szukałem opcji gui (osobna boblioteka) nie wiem jak to zrobić czy allegro mi w tym pomoże

Menu można załatwić prostym rysowaniem buttonów i przełączaniem przy naciśnięciu klawisza - coś w rodzaju:

def onKeyInput(key):
    if key == DOWN:
        activeButton = (activeButton+1)%buttonCount;
    else if key == UP:
        activeButton = (activeButton-1+buttonCount)%buttonCount;
    else if key == ENTER:
        buttons[activeButton].executeAction();

def onPaint():
    for button in buttons:
        button.draw()

Kule czy da się je jakoś załatwić sprytnym arrayem i po zderzeniu usuwaniu rekordu czy muszę walczyć z vectorem?

Vector ma metodę jak erase - http://www.cplusplus.com/reference/stl/vector/erase/ - jej nie radzę używać w tym przypadku...
Zamiast tego jeśli chcesz usunąć kulę na pozycji n, po prostu zamień ją z kulą na pozycji vec.size()-1 (czyli ostatnią) - i wtedy dopiero usuń ten element, teraz już będący na ostatniej pozycji.

No i zmiana broni aktualnie wygląda ona 1, 2 ale jakoś mi to nie pasuje.

Nie wiem o co chodzi, bo nie mogę uruchomić kodu...

1 użytkowników online, w tym zalogowanych: 0, gości: 1