RadekPL napisał(a)
- Czy da się jakoś ominąć wyświetlanie tego błędu?
Teoretycznie da się, bo wystarczy zastąpić wadliwy kod lepszym - bezbłędnym; Jeżeli nie jesteś w stanie rozpoznać dokładnie błędu (a raczej komunikatu debuger'a) - zastosuj blok try .. except .. end
i funkcją GetLastError
pobierz numer błedu, po czym sprawdź w dokumentacji czego się tyczy; Wyjątki to piękna sprawa i tak jak pisze @-123 zalecane jest skorzystanie z nich, jeśli nie znasz jeszcze obsługi debuger'a;
RadekPL napisał(a)
- Co to jest w ogóle za błąd?
Dosłownie - naruszenie zasad dostępu do pomięci; Może odnosić się do bardzo wielu przypadków, więc jeśli nie chcesz podać kodu, który go powoduje określenie przyczyny będzie awykonalne;
Co do samej konstrukcji gry:
RadekPL napisał(a)
Jest ona 5-cio poziomowa i każdy poziom ma oddzielny Unit.
((Dziwna) or (MałoUniwersalna and Problematyczna)) konstrukcja; Każdy poziom (level) gry powinieneś trzymać w osobnym pliku (module, pliku), a procedury sterujące mieć uniwersalne dla każdego; Gdybyś na początku zaprojektował poprawnie konstrukcję nie miałbyś problemu z tym, bo lepiej poprawić jedną procedurę, niż dublować ją dla każdego poziomu; Na pewno istnieje możliwość stworzenia jednej procedury resetującej dla wszystkich poziomów, a z kolei informacje o każdym przechowywać w specjalnie przygotowanych plikach o określonej strukturze;
Będąc jeszcze w szkole bawiłem się w TP (!!!) w pisanie gry, w której chodziło się znakiem X
po ekranie, na którym wyrysowany był labirynt; Można było wchodzić w "portale" i przenosić się do kolejnych "pomieszczeń", które były po prostu innym małym labiryntem; Każdy z nich był zapisany w osobnym pliku; Były tam nie tylko informacje o współrzędnych portali (drzwi), ale także graficzny układ ścian labiryntu i inne ciakwostki; Jednak procedury były uniwersalne dla każdego poziomu, czy to rysująca labirynt, czy sprawdzająca współrzędne ścian, portali, pieniążków i innych gówienek do zbierania; Dzięki temu mogłem dowolnie rozbudowywać grę w kolejne pomieszczenia nie ruszając w ogóle kodu programu; Gra sama pobierała ilość poziomów i rysowała ich mapę; Tyle, że trochę zaszalałem z ilością poziomów i po paru dniach zrobiło się ich ponad sto, tak że odnalezienie się w labiryncie zaczęło być tak trudne, że prawie niemożliwe... Zastanów się czy można poprawić kod gry tak, by było w niej jak najmniej powtarzających się bloków kodu (polecam: DRY & KISS);