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 -> Kursy dla początkujących
Treść artykułu
Porozmawiajmy o warunkach...
autor: Sadam (20.06.05)
Porozmawiajmy, więc o warunkach. Każda gra je posiada, a one same są chyba największą zmorą początkujących twórców gier. Powiadają oni, że najciężej im jest nauczyć się dobrego zadawania pytań programowi, i nakazywania mu czynności następujących po zaistnieniu pewnej akcji. Od tego właśnie jest ten artykuł, aby zobrazować nowicjuszom jak to powinno mniej-więcej wyglądać.

Część 1 ; Budowanie warunków pojedynczych

Każdy warunek zaczyna się od if ( pol. Jeżeli). Jak samo polskie znaczenie tego słowa wskazuje, stosuje się to gdy chcemy, aby pewna akcja wykonała się jeżeli, inna zostanie wykonana, zmienna otrzyma daną wartość bądź jakiś klawisz zostanie wciśnięty. Po każdym wpisanym if należy umieścić pierwszy warunek np. if keyboard_check(ord('a')). Oznacza to, że Jeżeli klawisz A zostanie wciśnięty ma zostać wykonana jakaś czynność. Jednak w zdaniu czegoś brakuje, a mianowicie słowa wtedy. Po wypisaniu warunku, musimy dać do zrozumienia programowi, że następnie chcemy określić akcje. Mamy dwa wyjścia : then bądź {. W przypadku gdy zastosujemy pierwszy sposób, po wypisaniu akcji program zakończyć musimy słowem : end ( ang. Koniec ). Jeżeli zaś wybierzesz 2 sposób, zamknąć akcje musisz, poprzez }. Tak powinien wyglądać przykładowy kod :
gml:
if keyboard_check(vk_up) { // Jeżeli zostanie wciśnięta strzałka do góry wtedy wykonaj
y=y-1
} // Zakończ
.

Część 2 ; Budowanie warunków mnogich

Kiedy znasz już podstawy, możesz zacząć tworzyć bardziej skomplikowane gry niż pong. Jednak warto pomyśleć o łączeniu poszczególnych warunków w jeden. Po co pisać to samo po kilka a czasem kilkanaście razy jeżeli można wstawić tylko jedno słowo pomiędzy warunki aby je połączyć? Chodzi tu o bardzo prostym ang. Sformułowaniu : and (pol. i). Kiedy wstawimy je pomiędzy dwa warunki, łączymy je ze sobą. Np. :
gml:
if keyboard_check(vk_up) and keyboard_check(vk_left) then // jeżeli zostanie wcisnieta strzałka do gory I w lewo wtedy
Jak widzicie, jest to o wiele prostsze niż pisanie:
gml:
if keyboard_check(vk_up) then
if keyboard_check(vk_left) then
akcja
end
end
I co najważniejsze - dużo czytelniejsze. Oczywiście możecie zastąpić and - &&, jest to jedynie kwestia przyzwyczajenia.

Część 3 ; Albo

Tworzenie warunków jednak nie opiera się tylko na łączeniu ich. Możemy również postanowić, że dana akcja ma zostać wykonana, gdy zmienna a ma wartość x, albo zmienna b ma wartość y. Kiedy chcesz zastosować podany sposób łączysz warunki słowem - or (and. Albo). Wygląda to owiele bardziej estetycznie niż pisane tego samego kodu dwukrotnie z jedynie zmienionym warunkiem np.
gml:
if (zmiennaA=x) or (zmiennaB=y) then
x=100;
end
niż:
gml:

if (zmiennaA=x) then
x=100;
end
if (zmiennaB=y) then
x=100;
end
.

Część 4 ; Inaczej

Tu zaś poruszymy temat magicznego warunku - else (ang. Inaczej). Właśnie dzięki niemu w bardzo prosty sposób możemy kazać programowi wykonywać pewną akcje, gdy warunek nie został jeszcze spełniony. Za przykład posłuży nam wartość zmiennej 'tekst' :
gml:
if (zmienna=x) {
tekst=Warunek został spełniony;
}
else
{
tekst=Warunek nie został spełniony;
}
.

No I to koniec tego krótkiego artykułu. Co prawda, nie wymieniłem w nim wszystkich możliwych warunków, jedynie te najważniejsze. Dlaczego? Ponieważ jest to artykuł dla początkujących. Każdy zaawansowany twórca gier, jest w stanie sam znaleźć sobie w helpie, wszystkie warunki dostępne w programie.

Uwaga! W Game Makerze, nie można stosować komendy end ! Umieściłem ją dla osób uczących się innych języków programowania [ min. Pascala ]. W GMie stosujemy jedynie { oraz } :)
głosów: 11 | ocena: 7.91 oceń zasób | dodał: Ajot
Komentarze
stron: 21

2


av

Tymon (14:05, 12.08.2005)

bigshark@ Zrobie, zrobie Od czego ma się programy

av

Bartek (Kamrat) (15:34, 12.08.2005)

Najlepszy przykład użycia skryptów w GM'owej grze to... To... To... No ne wem Być może AAOC Borka.

~kicia (20:20, 19.02.2006)

eeeee..... Nie rozumiem ! Nie wiem jak to zroic ! Wytlumaczcie mi po kolei

av

Vardi (14:32, 20.02.2006)

zależy co chcesz osiągnąć.

av

Bartek (Kamrat) (14:55, 20.02.2006)

Kicia, na początku przeczytaj ten tekst kilka razy.

~Mała suka (19:17, 20.02.2006)

dacie mi linka do Game Markera

av

Tymon (19:38, 20.02.2006)

gamemaker.nl dział download.

av

draq (14:31, 12.03.2006)

Siema, wcale to nie jest takie trudne na jakie się wydaje. Wbrew pozorom łatwo się nauczyć. Pozdro dla Marmota

av

draq (14:39, 12.03.2006)

z tym else i if przypomnieliście mi c++ xD Marmot też się go uczył/uczy z moich informacji więc nie powinien miec kłopotów.

~Zordon (18:04, 28.03.2006)

Bardzo fajne dla początkujących. Może powiecie, że się czepiam, ale leśli mówimy o alternatywie (or) to tłumaczymy to na polski "lub", a nie "albo", gdyż "albo" to alternatywa wykluczająca, czyli calkiem coś innego.

av

Jakim (0:07, 10.04.2006)

Hmm, w jednej linijce zamiast y=y-1 nie lepiej po prostu dać y-=1?

av

Tymon (8:47, 10.04.2006)

Lol, a co to za różnica?

av

Jakim (10:23, 10.04.2006)

Teoretycznie żadna. Tak samo jakby dać: if=2 {cośtam} i if!=2 {cośtam} zamiaste else .

av

Tymon (11:23, 10.04.2006)

To co się czepiasz? Każdy woli po swojemu.

av

pinker (21:36, 28.08.2007)

eee łatwizna,jesli dobrze pamiętam to ruch postaci powienien byc taki:

if keyboard_check(klawisz) lewo
{x-=1;}

if keyboard_check(klawisz) prawo
{x=1;}

if keyboard_check(klawisz) góra
{y-=1;}

if keyboard_check(klawisz) dół
{y=1;}

nie za bardzo wiem czy minus to był lewo lub prawo i czy mam wpisac +,ale mam nadzieje ze cos pomogłem.

av

pinker (21:38, 28.08.2007)

kicia,if to warunek który pomaga własnie przy ruchu postaci lub innych objectów a keyboard_check to funkcja która sprawdza czy dany przycisk został wcisnięty,to tylko jedna funkcja a jest ich z 400.

stron: 21

2



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

Nie masz konta? Zarejestruj się
Użytkownicy on-line
2 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 1, userów: 1, ukrytych: 0
Uzjel
Użytkownicy na czacie discord
ANtY (11:09, 23.07.18):
grubo sie robi
I am Lord (9:53, 23.07.18):
Też nie znam jej, max chyba jesteś jedyny na tym forum który zna
Wojo (9:40, 23.07.18):
Albo to że na forum udzielam się tylko ja i jakiś debil. Mało mnie to pociesza
Wojo (9:37, 23.07.18):
To nie ja niepotrzebnie kręcę gownoburze a jak zwykle jestem temu winny. Wiesz co ? Wbite w to mam. Zaczynacie się zachowywać jak administracja elektrody. A później wielkie zdziwienie że nowi użytkownicy to dwóch małolatów...
Wojo (9:35, 23.07.18):
Co masz na myśli?
gnysek (9:25, 23.07.18):
@Wojo się prosisz o jakąś blokadę tak btw.
gnysek (9:25, 23.07.18):
weźcie se takie rzeczy załatwiajcie na messengerze czy gdzieś
Wojo (19:48, 21.07.18):
stolen from america, brought to africa...
Wojo (19:31, 21.07.18):
od teraz kto poruszy jej temat na gmclanie to ma małego
exp (19:11, 21.07.18):
no np. wy teraz robicie, bo ja nie wiedziałem, kto to jest, a teraz wiem
Wojo (19:06, 21.07.18):
to jest po prostu groupie jakich wiele, a ludzie robią niepotrzebny szum w okół niej
I am vader (18:02, 21.07.18):
Na ten planecie nie ma miejsca dla takich idiotów jak Ty.
I am vader (18:02, 21.07.18):
Zrób ludziom przysługę i won z tego forum bo tylko problemy innym robisz. Jesteś najgorszym typem ignoranta, na zasadzie "jeśli ja coś wiem każdy musi wiedzieć bo inaczej jest głupkiem. Jak mnie coś interesuje to musi obchodzić wszyskich a jak kogoś nie obchodzi to jest bucem".
I am vader (18:01, 21.07.18):
A za te życzenia śmierci to bym Ci prz......lił, bezmózgi, tryglodycki bucu śmieciowaty.
I am vader (18:00, 21.07.18):
MAx, może obudź mózg, bo to że na liście rzeczy które mam gdzieś napisałem "polska muzyka" nie znaczy że ona musi być muzykiem. Przeczytaj co napisałem jeszcze raz i nie pierdziel bo zatruwasz powietrze głupotą.
MaxGaming (16:47, 21.07.18):
Vader masz wszystko w dupie to idź sobie skocz z jakiegoś mostu
MaxGaming (16:46, 21.07.18):
Ale ona nie jest muzykiem XD właściwie jest nikim ale ma fejm ale nie chcę mi się tego tłumaczyć xd jesteś trochę bucowaty, bo wystarczyło wpisać w neta i byś po chwili zrozumiał xd tak btw drażnią mnie ludzie którzy mają wszystko w dupie. W sensie niech sobie robią co chcą ale jak w moim towarzystwie się tak zachowują to marzę żeby uznali żeby zniknęli i nie psuli atmosfery
Wojo (13:42, 21.07.18):
czyli potwierdzenie moich słów
I am vader (13:07, 21.07.18):
A to robi z tego sprawę Polskiego internetu, który, jakbyś nie zauważył, też mam w dupie.
I am vader (13:05, 21.07.18):
Bo ja wiem, Martyna Linkiewicz brzmi, ale tylko tak ciut ciut, ale może to tylko moje wrażenie, mimo to jednak to powiem: Martyna Linkiewicz brzmi jak POLSKIE IMIE.
Wojo (9:24, 21.07.18):
Mam w dupie polską scenę a warszawską na czele
MaxGaming (1:21, 21.07.18):
Tylko powiem że wgl tu nie chodziło o muzykę a tym bardziej o polską xd
MaxGaming (1:21, 21.07.18):
Hahaha po prostu nie ważne XD
I am vader (1:14, 21.07.18):
Mam w dupie polską scenę, polski internet i polską muzykę, nie wiem kim jest martyna Linkiewicz i nie chcę wiedziec i mi z tym dobrze.
MaxGaming (1:01, 21.07.18):
Poczytaj dlaczego zdobyła fejm. Niestety nie mogę tego napisać na portalu gdzie są dzieci...
MaxGaming (1:01, 21.07.18):
Że w 2018 roku trzeba jeszcze takie zaetty tłumaczyć xd
MaxGaming (1:00, 21.07.18):
Ale nie chodzi o hip hop tylko o Martynę Linkiewicz xd nie musisz słuchać rapu żeby znać tą historię xd
I am vader (0:43, 21.07.18):
Nie wiem co hip hop(??) ma do tego
MaxGaming (0:28, 21.07.18):
A dla niektórych od koncertu Rae Sremmurd
MaxGaming (0:26, 21.07.18):
Niestety ale bycie celebrytom zaczyna się od 5 lajków...
I am vader (23:44, 20.07.18):
4 lajki podglądu który wrzuciłem, czy to już sława?
Wojo (10:13, 20.07.18):
Prawda:p
MaxGaming (4:49, 20.07.18):
Bo te egzaminy są śmieszne jak to całe technikum XD
I am vader (1:08, 20.07.18):
Papierki są do rozpałki
Sutikku (0:07, 20.07.18):
głupie rozwiązanie, czemu nie pozwolić każdemu kto chce przystąpić? Strach przed tym, że egzamin wcale nie potwierdza kwalifikacji do zawodu? To może pora coś zmienić
Wojo (23:36, 19.07.18):
2 lata w zawodzie bądź w szkole poliecalnej z tego co mi wiadomo
Sutikku (23:34, 19.07.18):
trochę śmieszne gdybym miał zdane egzaminy zawodowe, a chodziłbym do szkoły na lekcje które mają mnie do nich przygotować
Sutikku (23:32, 19.07.18):
takie pytanie mam, czy hipotetycznie można podejść do egzaminów zawodowych nie kończąc szkoły? W sensie, jak jestem w 2 technikum czy mógłbym sam się przygotować i podejść do egzaminu w jakiejś instytucji w tracie kiedy ostatnie klasy technikum będą je pisać
Wojo (21:45, 19.07.18):
eigentlich, masz rację
I am vader (19:17, 19.07.18):
Jest różnica między podmienieniem całego zdania, a podmianą w trącenia jak "I mean" lub "Actually".
Wojo (16:45, 19.07.18):
Oh Wojo stop being so mean...
Wojo (16:44, 19.07.18):
Ja znaju kak pa polski gawarit, lecz podobają mi się takie wtrącenia z obcych języków
I am vader (12:48, 19.07.18):
I mean, wiedzialem ze ds_mapy tak robią, ale zapomniałem o tym gdy pisałem ten kawałek kodu.
gnysek (10:07, 19.07.18):
tak, ds_mapy od jsonów usuwają sie same. Można też zrobić tak z własnymi chyba, ze się dowiązane usuwają, za pomocą ds_list_mark_as_list / ds_list_mark_as_map
I am vader (22:31, 18.07.18):
Głupi, prostacki błąd, ale głęboko w kodzie, więc nie zwróciłem na to uwagi wcześniej
I am vader (22:23, 18.07.18):
Jakby kogos interesowalo skad moj problem z ds_listami, to dlatego ze uzywalem tych ds_list do robienia JSON, ale jak juz nie potrzebowalem tymczasowej ds_mapy(ktora byla tylko po to aby zbudowac JSON) to usuwalem te ds_mape a to usuwalo z kolei wszystkie powiazane ds_listy, a tych nie chcialem usuwac.
MaxGaming (20:39, 17.07.18):
Zamknięty system operacyjny...
Wojo (19:21, 17.07.18):
sklep play jest czynny tylko do godziny 17 i w niedziele handlowe...
MaxGaming (17:48, 17.07.18):
Sklep play mógłby też istnieć na darmowym/płatnym androidzie który byłby zamknięty
MaxGaming (17:48, 17.07.18):
Nie mogą pobierać opłat od producentów w obecnej formie licencyjnej.
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.02316 sekund ] [ Liczba zapytań MySQL: 13 ]