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
41 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 37, userów: 4, ukrytych: 0
Threef, ALT, PatrykPlayingPOLSKA, exp

0 użytkownik(ów) na gmczacie i 0 bot(ów)
Shoutbox
exp (17:04, 26.06.17):
mamo no ja nie oglądałem nic dla dorosłych, to samo tak wyskoczyło no
I am Lord (16:34, 26.06.17):
No mi się wyświetlały jakieś dildosy a to nie jest moje zainteresowanie Ktoś coś dziwnego przeglądał na moim kompie
Threef (16:30, 26.06.17):
Banery reklamowe są personalizowane. Wy widziesz to co wg reklamodawców Cię nteresuje (na podstawie twojej historii)
nowy_user (10:36, 26.06.17):
Hej, czy był ktoś z was na kursie programowania CodersLab(Ci od baneru)? Zastanawiam się nad tym, ale jestem ciekaw czy warto.
Chell (1:16, 26.06.17):
conieco
ANtY (1:03, 26.06.17):
elo co tam
I am Lord (19:53, 25.06.17):
Za dużo tam różnych optymalizacyjnych działań na bitach i flagach bitowych
I am Lord (19:50, 25.06.17):
Ogółem prawie nic nie rozumiem z tego kodu źródłowego, analiza gry AAA to nie mój poziom :p
I am Lord (19:49, 25.06.17):
Udało mi się skompilować i odpalić kod źródłowy ArxLibertatis (portu gry ArxFatalis) ile z tym roboty było ja pierdziele, nigdy więcej
I am vader (4:04, 25.06.17):
Nie ma to jak usuwanie botów o 4'tej
I am vader (20:22, 24.06.17):
Threef za biały jest na allahuackbar
Ignatus (19:59, 24.06.17):
Threef zapuść wąsa do tej brody bo jest teraz za bardzo allahuakbar
I am Lord (18:01, 24.06.17):
ok mam chwilkę> to wbiję
Threef (17:26, 24.06.17):
Właśnie zaczynam streamować. www.twitch.tv/threef_games
I am Lord (17:02, 24.06.17):
Zbanowałem bota zanim zrobił temat to jest skill a nie jakieś programowanie
I am Lord (15:07, 24.06.17):
Chyba sobie do niego powrócę ale pamiętam że ciężko mi było się w tym połapać wszystkim, niby tego Newton Ponga zrobiłem ale połowę gry odwalił za mnie silnik fizyczny więc za wiele się nie nauczyłem
ANtY (13:21, 24.06.17):
na szczescie, bo to co w unity było to nawet nie był prawdziwy JS
Danieo (11:44, 24.06.17):
C# jest wiodącym językiem w Unity. Tak jak Boo już wymarło to powoli wymiera JS
Adriann (22:49, 23.06.17):
Łoo, pszekonał :3
Nikas (22:03, 23.06.17):
chuj kurwa gem makr zarabiaj dorary
PatrykPlayingPOLSKA (21:33, 23.06.17):
Są wakacje więc postanawiam nie zmarnować tego czasu.
I am vader (20:55, 23.06.17):
C#
I am Lord (19:40, 23.06.17):
C#
PatrykPlayingPOLSKA (19:09, 23.06.17):
Właśnie,może ktoś powiedzieć w czym zacząć pisać w Unity czy w C# czy javascript.W czym lepiej ?
ANtY (17:42, 23.06.17):
w GMie możesz programować bardzo mieszaną składnią, także zależy jak to robisz, w Unity korzystasz z C# (wcześniej dużo ludzi jeszcze z JS korzystało ale unity juz go nie supportuje na rowni z c#)
I am vader (16:54, 23.06.17):
Anty
nowy_user (12:59, 23.06.17):
Rozumiem, a czy jest na forum ktoś kto się "przebranżowił" z GMa na Unity? Sam o tym myślę, ale wiecie, to jest całkiem inny język programowania i domyślam się że wymaga to ogromu pracy...
Wojo (10:35, 23.06.17):
O tym juz pisalem ze możliwości GMa są stanowczo zbyt małe jak na dzisiejsze czasy. GM nie nadazyl za skokiem technologicznyn
nowy_user (8:53, 23.06.17):
Rzeczywiście cena lekko przesadzona. Ja oczywiście rozumiem, że ostatnio powstało sporo komercyjnych gier na GMa i domyślam się też, że włodarze Yoyo aspirują do tego, aby GM był używany przez studia developerskie, i to wszystko fajnie. Ale bądźmy szczerzy, jeśli porównamy możliwości GMa do Unity to jednak nasz kochany program jeszcze musi sporo nadgonić, więc te wysokie ceny - na ten moment- są od czapy.
Danieo (8:17, 23.06.17):
W Unity też. Jedynie musisz być zarejestrowanym developerem Sony (mieć dostęp do Devkita PS4)
Wojo (7:45, 23.06.17):
W Unreal Engine za to nie doplacasz nic. Jedynie jakiś tam procent z zysku ale myślę że to i tak jest uczciwe biorąc pod uwagę możliwości
Ignatus (23:22, 22.06.17):
3000zł z roczną możliwość eksportu na PS4 solidna cena
Uzjel (21:27, 22.06.17):
Master chyba
I am vader (21:03, 22.06.17):
Errr...czym jest Ultimate?
Threef (19:32, 22.06.17):
gnysek na Ultimate, na X1 i PS4. 3 Moduły są teraz na subskrypcję
gnysek (19:16, 22.06.17):
Subskrypcja jest tylko na Ultimate, na resztę nie.
I am Lord (19:01, 22.06.17):
Vader no tutaj na głównej: i.imgur.com/SPrqXPK.png
Threef (17:42, 22.06.17):
Na razie to info że exporty na X1 i PS4 są ważne na 12 miesięcy
I am Lord (17:41, 22.06.17):
Teraz żałuję że kupiłem go :/
I am Lord (17:40, 22.06.17):
Najpierw baitują że nie będzie subskrypcji a teraz ją wprowadzają
Adriann (17:36, 22.06.17):
Cooooooooooooo?!
Threef (17:25, 22.06.17):
Przepraszam co...? GM:S2 ma mieć teraz moduły subskrypcyjnie? Na 12 miesięcy? lol
I am vader (13:39, 22.06.17):
Nie wiem jak dotrzeć do tego działu nawet
I am Lord (11:45, 22.06.17):
im vader moj jest w assorted top down
PatrykPlayingPOLSKA (10:00, 22.06.17):
Mi się wydaje że większość gości to boty ale może być też paru ludzi,trzeba jakoś zachęcić ludzi do zarejestrowania na tym forum,np można jakoś polepszyć tą polską dokumentajcę,coś do niej dodać,na steamworkshop gamemaker można jakoś popisać że jest takie ciekawe coś jak GMC,no sposobów może być wiele.
nowy_user (9:30, 22.06.17):
Chell , aktywnych userów może i dziesięciu, ale np. w tej chwili jest 133 gości! Unbelievable! Swoją drogą , ciekaw jestem dlaczego ludzie się tak ukrywają, zamiast po ludzku się zarejestrować.
Chell (22:56, 21.06.17):
niestety sprzedawanie assetow po zlotowke na ktore zbija sie po 5 osob jest malo oplacalne na forum na ktorym jest 10 aktywnych userow
nowy_user (22:52, 21.06.17):
A może powinniśmy stworzyć własny markietplace tu na gmclanie? Ja widzę same plusy: Po pierwsze - > ceny byłyby w złotówkach, więc więcej ludzi mogłoby sobie na nie pozwolić, Po drugie -> Nie wiem jak wy, ale ja wolałbym wspierać finansowo programistę od nas , ktoś kogo znam z forumowej aktywności zamiast jakiegoś anonimowego geeka z Californi lub Colorado. I po trzecie -> Zmotywowało by to nas wszystkich do twórczości.
Ankieta
» Jakiej wersji GameMakera głównie Używasz?
GameMaker: Studio 2
GameMaker: Studio
GameMaker 8.1 i starsze
Żadnej

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.01586 sekund ] [ Liczba zapytań MySQL: 16 ]

thecrims Otserv List Otserv LyricsTown Harry Potter Serwery Gier
dev nodev