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
3 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 1, userów: 2, ukrytych: 0
Adriann, Wojzax
Użytkownicy na czacie discord
gnysek (18:29, 19.02.18):
W WPF można robić design apek w XAMLu ? włącznie z animacjami
ANtY (15:51, 19.02.18):
co to za stanowisko C# Designer?
Wojo (12:57, 16.02.18):
Nie
gnysek (9:11, 16.02.18):
Widziałeś kiedyś stackoverflow ?
Wojo (19:36, 15.02.18):
Fajnie jakby się zarabialo a problemy się opisywalo na gmclanie, chociaż ktoś już tak próbował robić.
MaxGaming (18:10, 15.02.18):
oj gnysek, szukasz dziury w cały. Po pierwsze nie wiedziałem właśnie co psuje stronę zupełnie, po drugie nie chiało mi się bawić w takie rzeczy bo dłużej by to zajęło niż potem komuś znaleźć błędy. No a cóż, to każdy mówi jeżeli robisz komercyjnie to i to to musisz wiedzieć to i to. Skoro robię coś komercyjnie i zarabiam to znaczy że umiem wystarczająco dużo żeby to robić i zarabiać
gnysek (16:32, 15.02.18):
Taki hint: w serwisach typu twitter/facebook/discord można wkleić printscreena ze schowka
Wojo (16:23, 15.02.18):
Ja kiedyś dawalem screeny na imageshack to byly czasy...
I am vader (12:10, 15.02.18):
Najlepsze są serwisy do dzielenia się screenami jak puush czy gyazoo, chociaz sam korzystam z feenus ktore jest prywatne niestety wiec tylko ja i pare innych osob ma tam wstep.
Wojo (10:59, 15.02.18):
Służę pomocą tym co nie umieją robić screenów
Wojo (10:58, 15.02.18):
Nawet ja wiem jak to zrobic naciskasz klawisz z napisem prt scr
gnysek (10:53, 15.02.18):
jak robisz komercyjne strony to powinieneś takie rzeczy umieć
gnysek (10:53, 15.02.18):
no ale to całej strony nie trzeba pokazać, żeby naprawić błąd, można zrobić screena i obciąć i pokazać tylko parę bloków albo na jsfiddle.com wrzucić fragmetn co się psuje
MaxGaming (1:15, 15.02.18):
Już mam w sensie że doszedłem sam gdzie jest błąd
MaxGaming (1:14, 15.02.18):
Już mam. Nie chodzi o kradzeż, po prostu robię portal do celów komercyjnych i zależy mi by nikt nie wedział zanim nie skończe co to za portal. Sam html i css jest bez wartości akurat
I am vader (0:14, 15.02.18):
Chwuila zaraz to naprawie.
gnysek (19:10, 14.02.18):
w wersji na androida chyba nikt nie wydał ?
PsichiX (16:14, 14.02.18):
smiejecie sie, ale to bylby achievement, zrobic najlepszego catch the clauna na swiecie
Ignatus (16:01, 14.02.18):
A co jeżeli to najlepszy kacz de klown w historii i zarobi wiecej niz hotline miami?
I am Lord (11:25, 14.02.18):
Ktoś robi kacz de klawna i wysyła na PW bo na pewno ukradnie
I am Lord (11:25, 14.02.18):
uwielbiam to na gmclanie xD
PsichiX (1:50, 14.02.18):
na forum temat zaloz, nie mysl nawet ze ktos by mial krasc cssa, skoro nie dziala a i css to opis materialu, a nie algorytm
MaxGaming (1:36, 14.02.18):
Mógłby mi ktoś pomóc znaleźć błąd w prostym CSSie? Wyślę na PW kod
Wojo (15:36, 13.02.18):
Gierka uspokok się
ANtY (12:19, 13.02.18):
nie mow o mnie za plecami, ok?
Wojo (12:02, 13.02.18):
I się rozwinęły gierki nie można się kłócić...
Wojo (12:02, 13.02.18):
Wiesz o kim mówię
Ignatus (11:20, 13.02.18):
Jak to nie.Zaczynalem od skool daze na c64, przez UFO na amidze 500 az po Fallouta 2 na PC ,zadne pozniejsze gry wiekszego wrazenia juz nie robio
Wojo (10:22, 13.02.18):
Co za babole ludzie wy nie zyliscie w czasach rozwoju gier a pierdzielicie bez sensu. Ja mam dopiero 9 lat i takich głupot nie pierdziele
gnysek (10:14, 13.02.18):
nie nie, babuleńki mówią "za Gierka to było lepiej"
PsichiX (23:03, 12.02.18):
no wlasnie wszyscy mowio na odwrot
Ignatus (22:04, 12.02.18):
A wszyscy mówio że ten Gierek to taki super był
Wojo (8:26, 12.02.18):
Gierka, przecież napisoł
I am Lord (7:24, 12.02.18):
co robisz?
exp (21:17, 11.02.18):
tak dzisiaj stwierdziłem, że gierka, którą robie od jakiegoś czasu to jednak do dupy jest
Chell (20:48, 11.02.18):
musicie mi uwierzyc
Chell (20:47, 11.02.18):
kumpel przedwczoraj puscil i teraz mi podpowiada
Chell (20:47, 11.02.18):
z rok nie slyszalem tenacious d, w podpowiedziach tez nie mialem bo bym se puscil
Chell (20:46, 11.02.18):
tej bez kitu, uwierzylem w to co pisal Vader
Wojo (19:02, 10.02.18):
Bo to nie jest zależne od gmclanu
Gibki Kaktus (0:44, 10.02.18):
Czemu? XD
ANtY (23:57, 9.02.18):
OBY NIGDY
Gibki Kaktus (22:38, 9.02.18):
Ciekawe kiedy jakieś info o wystawie na Pyrkonie dadzą
Nikas (19:32, 7.02.18):
Odbierałem to inaczej. Nieważne. TopHat też po prostu zmarł już dawno i nic z nim nie robiłem.
I am vader (16:38, 7.02.18):
No i elegancko
Wojo (9:57, 7.02.18):
Ja bym dal znizke dla vadera za konstrukcje z krytyki
I am vader (20:58, 6.02.18):
Przepraszam ze konstruktywną krytykę tak źle odbierasz
Nikas (18:20, 6.02.18):
No oczywiście, że nic lepiej się nie dało. Bo jak by się dało, to by się zrobiło.
gnysek (16:32, 6.02.18):
może jeszcze zniżki dla stałych klientów
gnysek (16:32, 6.02.18):
kupony rabatowe
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.
Copyright © 2002-2018. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!
© 2002-2017 Ranmus (ranmus.pl), © 2017 {=|=} fable_inside();

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