Fastbar
Powrót do strony głównej
Trzymaj pliki na gmclan.org!
Game Maker w pytaniach i odpowiedziach!
Polska dokumentacja
Tabela wyników ligi 24
Pobierz GM
Akademia GMCLANu
Kategorie bazy artykułów
Artykuły -> Game Maker
Treść artykułu
O błędach i ich przyczynach
autor: Misiek999 (28.12.08)
Podczas pracy z Game Makerem, możemy natrafić na różnego rodzaju błędy. Niektóre możemy zignorować podczas wyświetlenia - jednak niektóre wymuszają wyłączenie gry. W tym artykule postaram się opisać wyskakujące błędy, ich przyczynę oraz jak je naprawiać.

Error Messages
W większości przypadków, okno z informacją o błędzie wskaże nam miejsce gdzie takowy wystąpił - przez co nie powinniśmy mieć problemów z wyszukaniem problemu.



1 - Numer akcji, w której wystąpił błąd ( "1" to ta na samej górze eventu ).
2 - Event ( wydarzenie ), w jakim wystąpił błąd. W tym wypadku jest to step.
3 - Informacja, w jakim obiekcie wystąpił błąd ( w tym wypadku object0 ).
4 - Linia w jakiej wykryto błąd. W tym wypadku jest to pierwsza linia kodu. Używając wbudowanego edytora, można bez problemu "skoczyć" do szukanej linii używając "Go to a particular line".
5 - Część kodu, w którym wykryto błąd.
6 - Opis błędu. W tym wypadku nieznana zmienna.
7 - Przerywamy działanie gry.
8 - Ignorujemy napotkany błąd - nie zawsze jest to jednak skuteczne.
9 - Kopiujemy cały raport do schowka.
10 - Czyścimy okno błędu.

Rodzaje Błędów
Każdemu, nawet najlepszemu mistrzowi nie raz wyskoczą różnego rodzaju błędy. W większości będą to problemy łatwe do naprawienia, drobne przeoczenia. Zdąża się też jednak i takie, nad którymi będziemy siedzieć i głowić się jak go rozwiązać.

Błąd: Unknown variable <nazwa>.
Tłumaczenie: Nieznana zmienna <nazwa>.
Opis: Musimy pamiętać, że przed jakąkolwiek operacją z użyciem zmiennej, musimy ją uprzednio zadeklarować. Zazwyczaj robimy to w create, lecz nie jest to konieczne. Zasada jest taka, że przed użyciem zmiennej musimy ją zadeklarować, nadać jakąś początkową wartość. Robimy to w taki sposób: nazwa = dowolna_wartość. Innym rozwiązaniem problemu jest zaznaczenie w ustawieniach Game Makera opcji "Treat uninitialized variables as value 0". Znajdziemy ją w Global Game Settings > Errors.
Możliwość zignorowania: Istnieje. Ale w tym wypadku ignorowanie błędu jest bez sensu - gdyż błąd będzie się wyświetlał tak długo, dopóki zmienna nie zostanie wykryta. Może to nastąpić po jakimś czasie, gdy mamy ustawiony np. alarm, gdzie została zadeklarowana zmienna.

Błąd: Division by 0.
Tłumaczenie: Dzielenie przez zero.
Opis: W jakieś operacji matematycznej, chcemy podzielić dowolną liczbę przez zero. W programowaniu nie jest to dopuszczalne. Pozostaje nam tylko zmiana dzielnika liczby.
Możliwość zignorowania: Nie istnieje.

Błąd: Unknown variable "nazwa" or array index out of bounds.
Tłumaczenie: Nieznana zmienna "nazwa", lub indeks tablicy poza jej granicami.
Opis: Tworząc tablice, ustalamy również jej granice. Możemy ją powiększać, dopisując kolejne wartości, ale nie możemy bezpośrednio odwoływać się do indeksu poza jej granicami. Przykładowo : Tablica o nazwie "array" ma rozmiar 8, więc nie możemy odwołać się do indeksu 9 : zmienna = array[9]. - przed wykonaniem tej operacji musi być dopisana tam jakaś wartość np. array[9] = 5. Aby powiększyć tablicę.
Możliwość zignorowania: Istnieje. Po zignorowaniu, Game Maker nie wykona po prostu obliczeń.

Błąd: Negative array index.
Tłumaczenie: Negatywny indeks tablicy.
Opis: Tablica nie może mieć ujemnego indeksu - przeszukaj kod. Często zdarza się w przypadku, gdy jakaś zmienna posiada wartość ujemną, a my próbujemy za jej pomocą odwołać się do jakiegoś indeksu tablicy ( tablica[zmienna] ).
Możliwość zignorowania: Istnieje. Po zignorowaniu, Game Maker nie wykona obliczeń.

Błąd: Error defining an external function.
Tłumaczenie: Błąd w definiowaniu zewnętrznej funkcji.
Opis: Błąd ten głownie występuje, gdy korzystamy z funkcji biblioteki dll, a nie umieściliśmy jej w tym samym folderze co gra. Większość bibliotek posiada również tzw. Funkcję inicjalizującą, którą musi być wykonana przed używaniem reszty funkcji. Możliwe, że o niej zapomniałeś. Błąd może występować również w innych wypadkach - ale jak nie jesteśmy twórcą danego dll'a nic więcej nie możemy zrobić.
Możliwość zignorowania: Istnieje. Tak jak w wypadku "Unknown variable <nazwa>", Game Maker nie będzie dawał nam spokoju póki problem nie będzie rozwiązany. Krótko mówiąc "Ignore" nic nam nie da.

Błąd: Wrong number of arguments to function or script.
Tłumaczenie: Zła liczba argumentów w funkcji bądź skrypcie.
Opis: Do większości funkcji możemy wpisać tylko określoną liczbę argumentów, niezbędną do wykonania obliczeń. Jeśli jest ona nieprawidłowa - zostaniemy o tym poinformowani.
Możliwość zignorowania: Nie istnieje.

Błąd: Cannot compare arguments.
Tłumaczenie: Nie można porównać argumentów.
Opis: Pamiętajmy, że porównywać można ze sobą zmienne tylko tego samego typu. W GML istnieją dwa typy : real ( liczby rzeczywiste ) oraz string ( ciąg znaków ), jeśli zmienna "a" będzie liczbą, a zmienna "b" ciągiem znaków, kod: if a == b { game_end(); } będzie nieprawidłowy.
Możliwość zignorowania: Nie istnieje.

Błąd: Unexpected symbol in expression.
Tłumaczenie: Niepożądany symbol w wyrażeniu.
Opis: Przyczyną ich występowania może być pomyłka bądź też niewystarczająca wiedza GML. Możliwości jest bardzo wiele więc nie będę ich wszystkich wymieniał. Unikniemy ich - jeśli dobrze poznamy składnie oraz zasady panujące w tym języku. Symbole takie jak !, ^, ^^, & itd. Używamy w konkretnych sytuacjach - nie możemy natomiast stawiać ich wszędzie gdzie nam się podoba. Odsyłam do kursów GML.
Możliwość zignorowania: Nie istnieje.

Błąd: Wrong type of arguments to <symbol>.
Tłumaczenie: Złe typy argumentów dla <symbolu>.
Opis: Przy operacjach takich dodawanie (+), odejmowanie ( - ), dzielenie (/), mnożenie ( * ), dzielenie całkowite ( div ) oraz reszta z dzielenia (mod ) - używać możemy tylko liczb rzeczywistych ( tzn. po lewej i po prawej stronie tego symbolu muszą znaleźć się zmienne typu real. Oprócz tego znakiem "+" możemy łączyć ciągi znaków.
Możliwość zignorowania: Nie istnieje.

Błąd: Symbol <symbol> expected.
Tłumaczenie: Wymagany symbol <symbol>.
Opis: Pojawia się, kiedy zapomnieliśmy dopisać jakiegoś znaku np. zamknąć nawiasu podczas pisania funkcji, Zamknąć blok klamrą.
Możliwość zignorowania: Nie istnieje.

Może też się zdarzyć, że twój kod będzie poprawnie napisany - a gra będzie się ciągle wyłączać. Powodem tego mogą być zbyt obciążające obliczenia bądź funkcje, z którymi Game Maker nie może sobie poradzić. Przykładem może być funkcja draw_getpixel(), którą należy stosować z umiarem.

Kontrola nad błędami
Istnieje kilka opcji, które mogą pomóc nam w kontrolowaniu błędów. Znajdziemy je wchodząc do "Global Game Settings" w zakładce "Errors".



1 - Jeśli to odznaczymy, nie będą wyświetlane okienka z błędami. Jeśli błąd nie może być zignorowany - gra zostaje wyłączona.
2 - Po zaznaczeniu, każdy błąd zostanie zapisany do pliku game_errors.log.
3 - Po wystąpieniu jakiegokolwiek błędu , Game Maker przerywa działanie gry.
4 - Wszystkim nieznanym zmiennym, które wystąpiły w kodzie - zostaje przypisana wartość 0 ( patrz tabelka - Unknown variable "nazwa" ).

Wersja PDF
głosów: 13 | ocena: 8.54 oceń zasób | dodał: PsichiX
Komentarze
stron: 21

2


av

PsichiX (12:55, 27.04.2010)

zeby tylko srednik - and tez wywal albo then wstaw chociaz

av

Misiek999 (15:17, 27.04.2010)

yyy, a czemu tak nie może być ? ;p sprawdza czy kakao false jest.

av

Assassin (16:28, 27.04.2010)

YXE miał na myśli, że kakao=false to skutek, a nie przyczyna, dlatego powiedział: wywalić and (a opcjonalnie dać then) .

av

Mentoss (17:57, 27.04.2010)

nie, nie kakao to warunek. wywalenie srednika pomogło

av

Ignifil (14:24, 1.08.2010)

Czemu jak mam w create name = Andrzej to mi wyskakuje taki błąd?:

ERROR in
action number 1
of Create Event
for object object0:

Error in code at line 1:
name = Andrzej

at position 8: Unknown variable Andrzej

av

PsichiX (14:54, 1.08.2010)

name = "Andrzej";
string wymaga cudzysłowia

av

wikku9 (14:54, 1.08.2010)

musisz Andrzej dać w cudzysłowiu.

av

Ignifil (16:00, 1.08.2010)

okej dzięki

av

TheMarcQ (19:32, 4.08.2010)

" Unknown variable Andrzej"
jak nie znasz angielskiego to odsyłam do
translate.google.pl

stron: 21

2



Dodaj komentarz:
Treść:
Menu
Panel użytkownika
Jesteś niezalogowany!

Nie masz konta? Zarejestruj się
Użytkownicy on-line
5 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 4, userów: 1, ukrytych: 0
I am vader
Użytkownicy na czacie discord
Wojo (19:16, 22.06.18):
A gothic 17 lat temu... Jest prawie tak samo stary jak gmclan
MaxGaming (23:11, 21.06.18):
okej restart pomógł xd
MaxGaming (22:50, 21.06.18):
Jak otworzyć ten Splash Screen w android studio? Ten co wyskauje od razu po instalacji?
MaxGaming (22:49, 21.06.18):
a VC 16 lat temu
MaxGaming (22:46, 21.06.18):
ej co jeśli zainstalowałem andoid studio i studio64.exe nie chce się otworzuć? Po prostu nic się nie dzieje chociaż w procesach jest uruchomione
Wojo (21:41, 21.06.18):
A GTA 5 5 lat temu
Wojo (21:40, 21.06.18):
GTA 4 wyszło 10 lat temu
exp (20:45, 21.06.18):
a vice city to według mnie słaba gra. chociaż spędziłem z nią mnóstwo czasu
exp (20:44, 21.06.18):
nie byłem nigdy wielkim fanem tej serii, według mnie najlepsze było gta4
MaxGaming (19:37, 21.06.18):
SA znowu ceniłem za ten klimat, Nie rozumiem czemu gangsterzy mająbyć biali przecież wiadomo że nie było nigdy prawdziwego gangu białych tylko mafie i innego typu grupy przestępcze. Ta historia o wydostawaniu się z getto idealnie zgrała się z modą na gangsta rap
MaxGaming (19:36, 21.06.18):
Wydaje mi się że VC i IV to inny profil po prostu niż SA i V
MaxGaming (19:36, 21.06.18):
nie podoba mi się na nowo uproszczenie GTA i wszystkiego co z nim związane w GTA V. Za to dostajemy ogromną mapę i dużo funkcji które w sumie nie koniecznie są ciekawe typoow dla gry ale już dla zabawy poza fabularnej takq
MaxGaming (19:35, 21.06.18):
No i fabuła była genialna. GTA IV to gra która pod względem fabuły, postaci i ogólnie wykreowanego świata jest w mojej osobistej topce jeśli chodzi o gry w które kiedykolwiek zagrałem
MaxGaming (19:34, 21.06.18):
w GTA IV wyrzucono zbędne funkcje z SA które były błędem. Dodatkowo to miasto, ten NY na prawdę żył! To było coś pięknego
MaxGaming (19:34, 21.06.18):
GTA VC i 4 to kompletne gry, które mniej stawiająna sandboc a bardziej na grywalność
MaxGaming (19:33, 21.06.18):
GTA SA i V to gry żeby pobawić się, mało kto gra w to dla fabuły
MaxGaming (19:33, 21.06.18):
Natomiast GTA IV moim zdaniem jest najbardziej udaną grą z serii i szkoda że GTA V zboczyło z tego kursu
MaxGaming (19:33, 21.06.18):
fabuła, to jak ona wpływała na otoczenie(nie tak na siłę jak w SA) no i te dodatkowe funkcje były super. Na przykład każdego wieczoru zależnie od dnia tygodnia na stadionie można było wziąć udział w różnych zawodach. Kupowanie tych biznesów i zarabianie na nich. No i zdobywanie dzięki temu terenów. I ta fabuła była krótka ale dzięki temu genialna. Zdobywanie willi na przykład to jest coś fajnego. Ogólnie misji było mniej ale były ciekawsze i było mniej zapychaczy
MaxGaming (19:31, 21.06.18):
Ten klimat jest genialny. Do dziś często pykam w VC
MaxGaming (19:31, 21.06.18):
Mówiąc o VC to uargumentuje. Po pierwsze SA było za duże jakby. Mam na myśli że było niezorganizowane, dodano mnóstwo funkcji w ogóle nie związanych ze sobą. I tak trzeba było non stop dbać o siłkę itp żeby nie spadła forma. Ogólnie SA fabularnie jest zajebiste i kliamtycznie ale trochę twórcy za dużo nawtykali takich bezsensownych funkcji. GTA VC podobało mi się bo było bardziej kompletne. Wszystko do siebie pasowało. Brakowało paru funkcji żeby było jak na swoje cza
I am vader (19:30, 21.06.18):
A jesli ktos powie ze midzy gta V a IV jest za duzy okres czasu zeby je nazwac "w tym samym czasie" to moze miec racje, ale tego samego argumentu nie mozna uzyc do sa i vc bo wyszly z 2-letnia roznica
I am vader (19:10, 21.06.18):
bo gta V jest dziesiatki razy wieksze od SA, ale kazdy jest tworem swoich czasow i moim zdaniem w swoim czasie SA bylo milion razy lepsze od VC, a GTA V od GTA IV.
I am vader (19:10, 21.06.18):
GTA:SA natomaist to wooo, śmiem twierdzić że GTA:SA = GTA V > GTA 4 > GTA III=GTA VC
I am vader (19:09, 21.06.18):
Nie rozumiem fendomenu gta 4 i VC. VC chyba jedzie na samej nostalgi bo wiele w tej grze nie bylo, nawet fabula byla krotka.
MaxGaming (19:00, 21.06.18):
Według mnie najlepsze 3 części serii to kolejno GTA 4>GTA VC>GTA SA
Wojo (18:38, 21.06.18):
nieźle się typeczek postarał
Wojo (18:37, 21.06.18):
szkoda bo gta 5 to jest mistrzostwo
I am Lord (18:35, 21.06.18):
ostatnie gta jakie grałem było gta 2
Wojo (16:11, 21.06.18):
I tak najlepiej grać w GTA 5
I am Lord (15:01, 21.06.18):
i.imgur.com/VBDH84H.png suwak jest w połowie, poniżej gierki "10000000" już są gry których nie uruchamiałem
I am Lord (15:00, 21.06.18):
Chociaz u mnie nie jest aż tak źle bo 50% ograne ze 100 gierek
I am Lord (14:58, 21.06.18):
prawda :d
MaxGaming (14:08, 21.06.18):
Ja też bym tyle miał gdyby nie to że już dwa lata temu ogarnąłem że mam 300+ gier na Steam z czego 80%+ nigdy nie uruchomiłem xd nie oszukujmy się, żaden z nas nie gra w te gry
exp (12:22, 21.06.18):
kupilem wiecej gier wideo jestem kimś rozumiesz
gnysek (11:47, 21.06.18):
Retaili mam z 40-50.
I am vader (11:43, 21.06.18):
Oj jakbym mial dodac retaile mialbym pewnie tyle samo.
gnysek (9:45, 21.06.18):
wyśmiewam wasze 600 gier na steam. Mam 850 oryginalnych gier na PS2/3/4/Vita.
MaxGaming (2:41, 21.06.18):
Często naprawiam lapki jakieś, od nowa stawiam systemy i to jest problem bo ISO ostanie które miałem usnałem jakiś czas temu przez przypadek xd
MaxGaming (2:41, 21.06.18):
Ale mi bardziej chodzi o serwisowanie
MaxGaming (2:41, 21.06.18):
Ja czytałem że od dawna w unii są przepisy które pozwalają legalnie korzystać z OEM a prawo > licencja producenta. Z tego co wiem to jest to samo co z mac os na pc - niby licencja zakazuje ale jest legalne ze względu na przepisy prawa
MaxGaming (2:39, 21.06.18):
Wojo mam 356 gier na Steam kupionych xd nie trafiłeś xd
I am vader (23:28, 20.06.18):
@Wojo prawda, ale mowisz do goscia ktory ma 594 gry na steam
exp (23:08, 20.06.18):
a i np. mogę sobie jednym kliknięciem zmienić język gry wraz z dubbingiem zamiast błąkać się po internecie
exp (23:07, 20.06.18):
jak gierka kosztuje 20zł i mogę mieć je wszystkie na zawsze w jednym miejscu no to fajna opcja. zwłaszcza, że nie jestem jakimś zapalonym graczem, bo steama mam dwa lata, a gier chyba siedem
exp (23:06, 20.06.18):
ja mam na steamie gierki, które kupiłem legalnie po 999 latach albo nawet miałem kiedyś fizyczne kopie
Wojo (22:03, 20.06.18):
no ale jak masz kupiony oryginał i z różnych powodów nie możesz go uruchomić to moim zdaniem na miejscu jest pobranie sobie wersji z neta zamiast kupować to samo raz jeszcze
I am vader (22:01, 20.06.18):
ja po 123123 lat kupilem Hitmana 2. Kupilem tez Gothic 1/2/3 bo nie wlozylm stacji CD/DVD do komputera i nie mialem jak zainstalowac z plytki
Wojo (21:42, 20.06.18):
no wiadomo ze legalne gry, programy warto mieć bo to też jest szacunek dla twórców no ale bez przesady
Wojo (21:42, 20.06.18):
jak dla mnie to jest durnota, kupować grę, którą się już ma, albo kupowanie gierki ktora ma juz 100 lat bo trzeba byc legalnym
I am vader (21:37, 20.06.18):
Do ISO Win7 masz prawo tylko z kluczem nie-OEM. Jesli masz OEM to technicznie nei otrzymales prawa do legalnego pobrania ISO.
Ankieta
» Jakie kursy najchętniej widziałbyś na stronie ?
GM Studio
GM Studio 2
Godot
Construct

GMCLAN to serwis o programie Game Maker i nie tylko.
[ Polityka prywatności ]
Copyright © 2002-2018. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!
© 2002-2017 Ranmus (ranmus.pl), © 2017-2018 {=|=} fable_inside();

[ Czas generowania strony: 0.04617 sekund ] [ Liczba zapytań MySQL: 13 ]