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
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.

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

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.

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.

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
108 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 105, userów: 3, ukrytych: 0
I am vader, ΨΧΞ, ArtemKrasOress

0 użytkownik(ów) na gmczacie i 0 bot(ów)
Shoutbox
Chell (19:41, 22.03.17):
tez chetnie potestuje
owyn (14:12, 22.03.17):
Zrob aby tura zaczela sie w piatek to z checia cos zrobie
I am Lord (22:09, 21.03.17):
Co już chcecie kolejną turę?
Nikas (21:14, 21.03.17):
Nie fikaj za bardzo farfoclu!!!!
Threef (20:58, 21.03.17):
Jakieś bany trzeba dać? Bo mam dobry humor.
Threef (20:58, 21.03.17):
Oh damn! 2 tygodnie bez PC.
Wojo (20:50, 21.03.17):
za 12 godain
owyn (19:20, 21.03.17):
A kiedy kolejna tura ligi24???
Wojo (18:08, 21.03.17):
No to powodzenia tak czy inaczej
Gibki Kaktus (17:41, 21.03.17):
No ja mogę ograć XD
Nikas (16:28, 21.03.17):
Mam już grupkę testerów zawodowych z QA z mojej byłej pracy. Tutaj piszę, bo zawsze tu piszę.
Wojo (15:11, 21.03.17):
jak coś to też mogę pyknąć
Wojo (15:11, 21.03.17):
w sumie potrzebowałbyś więcej niż jednego typka z gmclanu do testów
Adriann (14:05, 21.03.17):
Ja chętnie przetestuję całość!
Ignatus (14:05, 21.03.17):
Stwierdzam własnie że nienawidze GM.Po raz n-ty w ostatnim miesiącu robie cos w grze i nagle przestaje dzialac cos co nie ma z tym żadnego zwiazku i robilem to miesiac temu.Zmieniam sobie parametry broni w grze i nagle BAM! Postac non stop kreci sie sama w kolko i nie wiem jak to zmienic.Piekny crap
Nikas (12:38, 21.03.17):
Nic nie płacę bo to są testy organizowane przeze mnie a nie AAG. Będzie miejsce w creditsach co może posłużyć jako normalny wpis do CV przy szukaniu pracy w QA. Chodzi tylko o ogranie gry, spisaniu odczuć (muszę zbalansować poziom trudności z samemu ciężko).
Gibki Kaktus (12:31, 21.03.17):
Ile płacisz? Jak >=0, to mogę ograć
Wojo (12:19, 21.03.17):
a co miałbym ci np tam spisać jakbym był chętny ?
Nikas (12:01, 21.03.17):
Szukam osoby chętnej na przetestowanie najthołxa. Tylko mówię tutaj o ograniu gry i spisaniu raportu, mam kluczyk do Steama. Ktoś chętny?
Nikas (23:14, 20.03.17):
Ale muszę przyznać, że dobra odpowiedź fervi. Szanuję.
Nikas (23:13, 20.03.17):
Tak, zobaczyłem tylko jakiś śmieszny cytat o wolności który wysłałeś i wyszedłem. xDDD ekstra gamedev
Fervi  (21:48, 20.03.17):
A co, dołączyłeś?
Nikas (11:30, 20.03.17):
Pewnie tam niezła stulejada. xDDD
Fervi  (20:39, 19.03.17):
#freegamer na freenode (dla wolnościowców, co zniechęca wiele osób )
owyn (14:05, 19.03.17):
jest jakis kanal irc nt. game-dev gdzie przesiadujecie?
Adriann (20:50, 18.03.17):
28-30 kwietnia
Wojo (20:34, 18.03.17):
a kiedy są te pyrkony ?
Gibki Kaktus (20:32, 18.03.17):
Jakim piwkiem, walimy wódę i moje urodziny oblewamy, każdy kto będzie na Pyrkonie!
I am Lord (19:55, 18.03.17):
Turmoil jest zrobiony w GMie :o
Adriann (19:41, 18.03.17):
to się skończy piwkiem, i to nie jednym:3
Ignatus (19:31, 18.03.17):
ja
Gibki Kaktus (19:25, 18.03.17):
Ja
ANtY (17:17, 18.03.17):
ja
Adriann (16:47, 18.03.17):
Miśki! Kto z was jedzie na Pyrkon?
PatrykPlayingPOLSKA (14:37, 18.03.17):
No elo Woju
Wojo (13:13, 18.03.17):
elo kuncu
Dester (15:33, 17.03.17):
Flashek (22:56, 16.03.17):
Dester robi wspaniałe gry
I am Lord (19:30, 16.03.17):
Słuchajcie bo mamy remis tutaj forum.gmclan.or...mp;#entry443228 i trzeba zrobić dogrywkę między Desterem a Chuckek, możecie napisać nowy post na kogo głosujecie? Poczekam na wyniki do północy z piątku na sobotę
Wojo (18:12, 16.03.17):
On nigdy nie odszedł. On zawsze mieszkał u nas w serduszkach
gnysek (16:43, 16.03.17):
On wrócił! Nawet nie pamietam już jaki miał nick... Paquo ?
Nikas (16:20, 16.03.17):
Jest klimat tamtych czasów, w sumie całkiem niezłe. na manieczkach, protektorze czy sunrisie by mogło wtedy hulać. xD
Ignatus (15:01, 16.03.17):
Ktos ma uszy odporne na techno-pierdy? Moje wypociny sprzed 10lat www.youtube.com...h?v=G5bWv-VBPUo
Wojo (13:42, 16.03.17):
www.youtube.com...h?v=t6PTzOClI5g kozackie rytmy. I pomyśleć, że mamy takich zdolnych userów
Wojo (13:36, 16.03.17):
Przecież tutaj rzadko kto pisze
Wojo (13:20, 16.03.17):
Szkoda, że już to forum umiera
gnysek (13:19, 16.03.17):
Ja miałem maskę admina ustawioną. Nikt więcej tak nie ma, bo Ranma zrobił porządki.
Wojo (13:17, 16.03.17):
Takich, którzy faktycznie mają rangę admina bo gnysek już jest userem a adminem był.
Ankieta
» Czy jesteś szczery odpowiadając w ankietach w Internecie?
Tak
Nie

GMCLAN to serwis o programie Game Maker i nie tylko.
Copyright © 2002-2017. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!

[ Czas generowania strony: 0.0254 sekund ] [ Liczba zapytań MySQL: 16 ]

thecrims Otserv List Otserv LyricsTown Harry Potter Serwery Gier
dev nodev