Ten artykuł został stworzony dla starszych wersji GameMakera i może nie być aktualny.

Porozmawiajmy o warunkach...

Poniedziałek, 20 Czerwca 2005, 19:45
Czas czytania 3 minuty, 19 sekund
Zgodne z GM: gm5 gm6 gm7 gm8
Krótki artykuł mówiący o warunkach w Game Makerze i nie tylko ;)
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 : kodif 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. :
kodif keyboard_check(vk_up) and keyboard_check(vk_left) then // jeżeli zostanie wcisnieta strzałka do gory I w lewo wtedyJak widzicie, jest to o wiele prostsze niż pisanie: kodif keyboard_check(vk_up) then if keyboard_check(vk_left) then akcja
endend
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. kodif (zmiennaA=x) or (zmiennaB=y) thenx=100;
end
niż:kod
if (zmiennaA=x) thenx=100;
endif (zmiennaB=y) thenx=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' :kodif (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 } :)
Komentarze (łącznie 36, wyświetlam 1 - 15):
krychu90 (Wto., 21 Cze. 05, 20:36)
#1

Początkującym się przyda :)

b
bigshark (Wto., 21 Cze. 05, 21:35)
#2

Dla mnie warunki to pestka, i nie przydał mi się ten artykuł :(

Marmot (Wto., 21 Cze. 05, 21:55)
#3

Hehe, zobacz w jakiej kategorii jest ten artykuł :)

Tymon (śro., 22 Cze. 05, 15:32)
#4

Łee :P Ja chce być redaktorem :P ;)

Marmot (śro., 22 Cze. 05, 16:54)
#5

To napisz do Ranmy. Może by nas podmienił, bo ja już nie chcę być nim :D .

Tymon (śro., 22 Cze. 05, 19:56)
#6

Wątpie że do tego dojdzie :] Będzie coś w stylu "jesteś mało odpowiedzialny" lub "za krótko cię znam" ;) Sorry ale w moim przypadku zawsze tak jest :] Nawet jak dziewczyny na urodziny zapraszam :D

m
~maikel (Pią., 24 Cze. 05, 07:44)
#7

Hello.. can i get a account please?

m
~maikel (Pią., 24 Cze. 05, 07:45)
#8

i need a account please give me 1

Marmot (Pią., 24 Cze. 05, 14:40)
#9

You can't register?

K
~Kamil (Wto., 05 Lip. 05, 10:19)
#10

Heh, normalnie jak w Delphi :D GML ma prawie identyczną składnie jak Delphi :P Powinno się odsyłać początkujących do książek o tym języku, a potem wskazywać różnice między GML a Delphi.

Tymon (Wto., 05 Lip. 05, 10:58)
#11

Hehe, GM jest tworzony w Delphim :]

Marmot (Wto., 05 Lip. 05, 12:50)
#12

Eeee, a odkąd to w Delphi zamiast BEGIN i END używamy { i }???

b
bigshark (Wto., 05 Lip. 05, 13:36)
#13

od wczoraj, czyżbyś nie słuchał radia i nie ogląał TV? Cały czas mówią o tym że od wczoraj zmieniony został system w delphim i zamiast BEGIN i END używamy { i }

Marmot (Wto., 05 Lip. 05, 14:03)
#14

Powiem krótko: R-O-T-F-L-M-A-O.

H
~Hanjuso (Pią., 12 Sie. 05, 00:32)
#15

Po co wogle to pisac?? ja staram sie tych warunkow uzywac jak najmniej po co pisac wszystko samemu jak to jest juz zrobione trzeba tylko wpisac co i jak :D

Najnowsze wersje GameMakera:

Stabilna
2023.11.1.129 • 2023.11.1.160
wydana 73 dni temu
LTS
2022.0.2.51 • 2022.0.2.49
wydana 132 dni temu
Beta
2024.200.0.499 • 2024.200.0.516
wydana  5 dni temu
= IDE, = Runtime
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
46 użytkowników online na discordzie:
DungeonFairy🧚, MKP, OdrzuconyKrakers, s..., Alice, Nitro Slav, Carl-bot, p..., Voytec, Jamabaiz (Matrix_), Dominator2v, Wielki Druid, Add92, Kowu, Kuzyn, Tival, Filyps, fervi, YoungKrystian, Sevitaus, Kalor, PhysX ᴺⱽᴵᴰᴵᴬ, r..., antek, debil debilowski, Uzjel, VanhGND, Pako, Arrekin, LeD, yazaa, Dyno, Deusald, Miłosz, m..., bagno, Mtax, g..., l..., Alkapivo, moeglich, Nikas, Krzysiek1250, Shockah, Kandif, TobiasM (Morgo)
Shoutbox
gnysek (14:47, 26.02.24)
Na Discordzie też był :) Warto tam zaglądać :)
S
Sutikku (23:23, 23.02.24)
powiedziałbym, że może jakiś gigantyczny czerwony baner by się przydał, ale obawiam się, że mógł taki być, a ja go nie widziałęm
S
Sutikku (23:22, 23.02.24)
uwierzcie mi, że wchodzę na gmclan naprawdę bardzo często, ale jakoś tej ligi nie zauważyłem :(
I am Lord (12:01, 23.02.24)
Kurde kolejna tura mnie omineła 🙈
gnysek (10:49, 20.02.24)
Ja czekam na pluginy do IDE, czego YYG nie zrobi, zrobimy sami.
Adriann (11:50, 16.02.24)
Ciekawe jak go przerobią, osobiście liczę na jakąś większą rewolucję a nie tylko usprawnienie bo narazie jest jak jest :d
gnysek (10:32, 08.02.24)
Edytor roomów ma swoje minusy. Ale ma być tworzony nowy wkrótce, chociaż pewnie 6-12 miesięcy zanim trafi do wersji stabilnej jak nic.
p
pablo1517 (08:40, 07.02.24)
No ja odkąd zacząłem w ue4 pracować to niestety z GMLem dawno nie obcowalem
exp (20:13, 30.01.24)
@pablo1517 ja przerzuciłem się z klasycznego GM na Studio cztery lata temu, więc przeskok trochę mniejszy, ale generalnie idea dużo się nie zmieniła. jest trochę upierdliwości i niepotrzebnych według mnie zmian, ale też duże usprawnienia (edytor roomów to raj na ziemi w porównaniu z tym oryginalnym)
Adriann (18:59, 28.01.24)
Takk..strasznie są upierdliwe :D
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?