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
8 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 7, userów: 1, ukrytych: 0
Uzjel
Użytkownicy na czacie discord
Ignatus (12:37, 23.01.18):
I to jest konstruktywna opinia.Dzięki! Poczekam
PsichiX (2:17, 23.01.18):
a jesli modyfikowal, to cos musi w nim byc zwalone, skoro sprzedaje za tak niska cene. nie lepiej byloby przyoszczedzic pare stowek wiecej i kupic cos zgodnego ze specsami od producenta i do tego nie o tak podejzanej konfiguracji specsow do ceny?
PsichiX (2:15, 23.01.18):
ktos tam ostro sciemnia, bo ten model ma i5, a nie i7
Ignatus (21:47, 22.01.18):
W sumie tylko ten acer wchodzi w gre bo Poznan.Co myslicie?
Ignatus (21:44, 22.01.18):
Czy moze ten allegro.pl/gami...39.html#thumb/3
Ignatus (21:41, 22.01.18):
Czy to ma sens?allegro.pl/lapt...45.html#thumb/3
Wojo (16:16, 22.01.18):
ty no faktycznie widać je na stronie głównej sry
gnysek (16:12, 22.01.18):
ukryte ?
Wojo (16:04, 22.01.18):
gdyby nie to ze wyniki ca są ukryte to bym nie wiedział
Wojo (15:09, 22.01.18):
Pamiętam jak przed pierwszym warnem ukazałem skruchę godną podziwu
BanDa (12:18, 22.01.18):
Zapomniałem wspomnieć, że chce się zająć tylko 2D
Chell (8:44, 22.01.18):
bardzo fajna nagroda dla Czołga swoją drogą
gnysek (8:22, 22.01.18):
Na pewno w GM szybciej zrobisz grę niż w czystej Javie. Ale z drugiej strony może być mniej możliwiości (3D).
Chell (22:01, 21.01.18):
zobaczymy w poniedzialek
BanDa (21:49, 21.01.18):
Czemu do poniedziałku?
Nikas (18:07, 21.01.18):
nie warto
Nikas (18:06, 21.01.18):
warto
Chell (14:43, 20.01.18):
ja bym z tą decyzją poczekal do poniedziałku (stay tuned)
BanDa (12:56, 20.01.18):
Dawno mnie tu nie było, jak wygląda aktualna sytuacja z GM? Warto teraz zrobić zakup czy lepiej wkuwać jave (głównie pytam o androida)
gnysek (12:03, 18.01.18):
Akurat Nintendo nie zawodzi nigdy w takich sprawach.
I am Lord (11:37, 18.01.18):
i pewnie 90% nie działa bo to efekt montażu
Uzjel (0:57, 18.01.18):
Switch jest genialny, a to wygląda zajebiście
Chell (0:26, 18.01.18):
damn, jednak nintendo to nintendo
PsichiX (21:02, 17.01.18):
no i w tym roku nie bedzie nagrody za przyklad roku
MaxGaming (20:33, 16.01.18):
JUŻ MAM XD
MaxGaming (20:29, 16.01.18):
robię jakiś podstawowy błąd bo to jest banalna strona ale ja nigdy nie rozumiałem cssa, uczę się go bardziej na pamięć bo gdybym ja robił cssa wiele rzeczy zrobiłym zupełnie inaczej bo skupisko absurdów obecnie
MaxGaming (20:28, 16.01.18):
Ten mój css jest jakiś bardziej wadliwy niż myślałem. Jest ktoś chętny żebym mu wysłał na pw protą stronkę i mi powiedział co robię źle?
Chell (13:51, 15.01.18):
konkurentów masz dwóch
Wojo (11:50, 15.01.18):
Nie daję żadnego kurde
gnysek (10:43, 15.01.18):
Kurde, w temacie na przykład roku nie mogę głosować, bo albo na siebie albo na jedynego konkurenta...
gnysek (10:43, 15.01.18):
Ja nie widzę czegoś takiego, aleeeeee może masz niekompletny profil usera
Chell (22:46, 14.01.18):
oczywiście to był żart, nic nie ustawiałem, zachęcam do głosowania
Chell (21:22, 14.01.18):
oddałem swoje głosy i ustawiłem przekierowanie, w tym roku to ja rozdaje karty
Ignatus (21:18, 14.01.18):
Ciekawe Nie można wejść na żaden z tematów [głosowanie] bo ładuje się zawsze strona o treści "Następny krok: Optional Profile Information" i nic więcej...
ANtY (13:59, 14.01.18):
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaargh
Uzjel (19:23, 13.01.18):
To MaxGaming, fake konto Paqa.
Uzjel (15:51, 13.01.18):
Moduł Androida za darmo do testów do końca miesiąca (GMS2)
Wojo (12:21, 13.01.18):
Odszedłeś bezpowrotnie z twoją muzyką.
Wojo (12:20, 13.01.18):
lil peep czemu to zrobiłeś ja pierole
Chell (8:21, 13.01.18):
no dobra, nie przemyślałem tego
gnysek (8:49, 12.01.18):
Ale to jest własnie własciwość focusu, ze jest na jednym elemencie. Inaczej to juz nie focus
ANtY (22:02, 11.01.18):
Fullscreen Windowed
Chell (20:08, 11.01.18):
w sensie zebym mial sobie gierke na full screenie na glownym, powiedzmy walkthrough na drugim i zebym mogl sie przelaczac miedzy tymi dwoma tak, zeby gra nie gubila focusu
Chell (20:08, 11.01.18):
jest jakis soft pozwalajacy na osobny focus na kazdym monitorze?
I am Lord (19:26, 11.01.18):
Sahara w krakowie?
Uzjel (21:11, 10.01.18):
Ahhh... Obejrzałem właśnie walki robotów. Fajnie było
gnysek (10:53, 10.01.18):
problemy z monetyzacją - wszyscy wrzucali darmowe rzeczy, a nikt nie płacił za miejsce - woleli cwaniakować i kilka kont zakładać.
I am Lord (21:56, 9.01.18):
A co się stało z tymi serwisami?
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.02115 sekund ] [ Liczba zapytań MySQL: 13 ]