Nasze strony: gmclan.org gameonly.pl ps-plus.pl gameswithgold.pl n-switch.pl hmt.pl
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) | czas czytania: 3 minuty, 19 sekund
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 : ¤ KopiujGMLif 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. :
¤ KopiujGMLif 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: ¤ KopiujGMLif 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. ¤ KopiujGMLif (zmiennaA=x) or (zmiennaB=y) thenx=100;
end
niż:¤ KopiujGML
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' :¤ KopiujGMLif (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: 2

1

2

av

krychu90 (20:36, 21.06.2005)

Początkującym się przyda

av

bigshark (21:35, 21.06.2005)

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

av

Marmot (21:55, 21.06.2005)

Hehe, zobacz w jakiej kategorii jest ten artykuł

av

Tymon (15:32, 22.06.2005)

Łee Ja chce być redaktorem

av

Marmot (16:54, 22.06.2005)

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

av

Tymon (19:56, 22.06.2005)

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

av

~maikel (7:44, 24.06.2005)

Hello.. can i get a account please?

av

~maikel (7:45, 24.06.2005)

i need a account please give me 1

av

Marmot (14:40, 24.06.2005)

You can't register?

av

~Kamil (10:19, 5.07.2005)

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

av

Tymon (10:58, 5.07.2005)

Hehe, GM jest tworzony w Delphim

av

Marmot (12:50, 5.07.2005)

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

av

bigshark (13:36, 5.07.2005)

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 }

av

Marmot (14:03, 5.07.2005)

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

av

~Hanjuso (0:32, 12.08.2005)

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

av

bigshark (9:19, 12.08.2005)

po to że w codzxie masz większe możliwości, a klocki są dla niekumatych. Rób sobie jak chcesz ale używając klocków nigdy nie zrobisz takiej gry jak olimpOada3d,.

av

Marmot (10:57, 12.08.2005)

OMG :| . Takiej gry jak OlimpOada to wolałbym się nawet nie przyznawać że robiona na skryptach. Taki badziewny przykład mu dałeś Bigshark że napewno nie będzie pisać na skryptach. Niech zobaczy takie Aliens attack on Colony. To jest dopiero gra.

av

Tymon (11:22, 12.08.2005)

Marmot w tej grze (Aliens attack on Colony) to grafika jest plusem Kod gry jest dość łatwy do wykonania

av

bigshark (12:26, 12.08.2005)

@ Marmot, olimpOada 3D to najlepszy przykład , gdyż gry 3d nie zrobisz w klockach

av

Marmot (12:29, 12.08.2005)

Łatwy, łatwy Tymon, ale trudniejszy do wykonania niż kod OlimpOady .

stron: 2

1

2


Dodaj komentarz:
Treść:
Menu
Panel użytkownika
Jesteś niezalogowany!

Nie masz konta? Zarejestruj się
Użytkownicy on-line
23 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 23, userów: 0, ukrytych: 0
Użytkownicy na czacie discord
Shoutbox
gnysekgnysek (23:51, 15.01.23):
Na fullscreenie nie, ale w okienku owszem. Najlepiej podpatrzyć jak robią to inni
MastodontMastodont (14:32, 14.01.23):
Jaką polecacie bezpieczną rozdzielczość gry na ten game jam Opery? 1920x1080 to chyba za dużo na przeglądarkę?
gnysekgnysek (15:03, 10.01.23):
Nie no, nginx, php, bazy danych
SutikkuSutikku (13:59, 10.01.23):
przenosiny ubuntu pewnie zamknęły się w przeniesieniu /home?
gnysekgnysek (11:26, 9.01.23):
Dziś pierwszy dzień pracuję z nowego lapka, ale jeszcze Windowsa mam do przeniesienia (coś koło 400GB danych)
gnysekgnysek (1:37, 7.01.23):
Tekst chyba nie, ale obrazki jak najbardziej. Tam jest taka gigantyczna struktura, którą w debuggerze najlepiej podejrzeć (albo do jsona wywalić na dysk), żeby znaleźć jak to zmienić.
AdriannAdriann (13:27, 6.01.23):
Da się zmieniać tekst i obrazki w sekwencjach za pomocą kodu?
gnysekgnysek (15:29, 4.01.23):
a ja przenoszę windowsa i ubuntu...
SutikkuSutikku (9:43, 3.01.23):
przenosiny na nowy sprzęt zawsze wiąże się dla mnie z bólem głowy, żeby odtworzyć milion customowych rzeczy które zrobiłem na wcześniejszym sprzęcie
gnysekgnysek (16:36, 2.01.23):
Na 2-3 dni muszę wstrzymać prace nad GMCLANem, bo przenoszę się na nowego laptopa
gnysekgnysek (17:48, 31.12.22):
@Adriann: myślałem tylko o ludziach z PL, @Sutikku pomyślę po weekendzie sylwestrowym
SutikkuSutikku (12:51, 30.12.22):
ja bym z chęcią pooglądał devlogi z przepisywania gmclanu, im just saying
AdriannAdriann (12:23, 30.12.22):
szczególnie jak będą nagrody
AdriannAdriann (12:22, 30.12.22):
A co myślisz żeby rozszerzyć temat i robić ją w formie game jamu na itch.io? Może dołączyliby nowi ludzie
gnysekgnysek (22:56, 29.12.22):
Tak, jest pomysł na np. 4x7 dni (1x na miesiąc) i nagrodę typu bon na steam za 100-200zł.
AdriannAdriann (21:37, 29.12.22):
Planujesz jakąś kontynuację ligi?
gnysekgnysek (15:09, 29.12.22):
W sumie zaczęte mam już 80%, nieruszone pozostały jedynie artykuły (czytanie, bo kategorie są) i liga.
gnysekgnysek (15:08, 29.12.22):
Dojechałem do przepisania 50% strony na nowy design i nowy kod. Niektóre moduły są teraz krótsze 0 80-90%, bo podobny kod przerobiłem na wspólne funkcje.
gnysekgnysek (14:05, 21.12.22):
To może kiedyś na jakimś dalszym etapie, na razie przepisuję obecne strony Wciąż są szanse na demo nowego designu jeszcze w tym roku.
SutikkuSutikku (12:40, 21.12.22):
to teraz jeszcze reakcje do shoutboxa, bo chciałem dać serduszko, a nie można
gnysekgnysek (13:29, 19.12.22):
No i aktualny GML (2023.1) jest dostępny. W końcu function i static jest kolorowane. Dodałem tez kopiowanie kodu
gnysekgnysek (9:10, 19.12.22):
GameMaker w folderze z runtime ma plik fnames i tam są definicje funkcji,stałych,wbudowanych zmiennych - trzeba to przeparsować i odpowiednio poprzydzielać. Ale brakuje if/else/break/try/while itp. i to trzeba ręcznie dodać. gist.github.com/.../a69ec324df61131b2546d1580f29a760
SutikkuSutikku (1:57, 17.12.22):
a z ciekawości, jak wygląda proces poprawienia kolorowania? Zaciągasz jakąś gotową paczkę, sam to jakoś definiujesz, w jakim formacie to jest zapisane?
gnysekgnysek (13:00, 16.12.22):
Teraz to chcę GMLa zaktualizować, bo nasze kolorowanie się na GM6-8 opiera
UzjelUzjel (12:17, 16.12.22):
Jeszcze zdjęcie profilowe na Twitterze zmień
gnysekgnysek (12:03, 16.12.22):
No i przerzuciłem mojego bota na GMCLANowy serwer, pod nowym adresem gms-updates.gmclan.org
gnysekgnysek (12:00, 16.12.22):
Dodałem LTS do listy aktualnych wersji GMa na głównej.
gnysekgnysek (23:22, 15.12.22):
Jeszcze nocki będziesz zarywał! Będę potrzebował testów i krytyki, to na pewno Ale to dopiero jak dojadę do czegoś bardziej podobnego do projektu z kanału dla patronów na Disco
UzjelUzjel (22:53, 15.12.22):
Gnysek jak coś potrzebujesz to przecież pisz :p
gnysekgnysek (16:55, 15.12.22):
Ja w sumie też. Myślę, że jeszcze tej zimy będzie, bo do świąt to już nie obiecam (ale przed sylwestrem może jakieś demo? )
AdriannAdriann (13:09, 15.12.22):
nie mogę się doczekać tego dark mode
gnysekgnysek (19:51, 14.12.22):
Tam jest błąd cache zapewne Nowy design sprawdzisz klikając na górze w "redakcja", ale to mocno wstępna wersja, bo Uzjel miał jeszcze kilka propozycji które będę wdrażał już robiąc całość.
SutikkuSutikku (15:14, 14.12.22):
Jak przejść na nowy design i podglądnąć?
ChellChell (11:27, 14.12.22):
aa, tam sa chyba po prostu zahardkodowane shouty
ChellChell (11:26, 14.12.22):
na nowym dizajnie nie laduje sie ostatni shout
gnysekgnysek (1:20, 9.12.22):
W sumie php8 to pikuś, testujemy też nowy design responsywny i z dark mode
SutikkuSutikku (10:03, 8.12.22):
odważny krok, puszczaj testy jednostkowe /s
gnysekgnysek (11:23, 7.12.22):
Zaktualizowałem PHP do 8.0, zgłaszajcie, gdyby coś nie działało
gnysekgnysek (10:57, 7.12.22):
2023.1
IgnatusIgnatus (8:58, 7.12.22):
Ciekawe o jaką wersję mogło chodzić
IgnatusIgnatus (8:58, 7.12.22):
No przynajmniej jakoś próbuje z tego wybrnąć XD zapodaj.net/images/2543c3a6eea62.png
IgnatusIgnatus (8:50, 7.12.22):
XD lol
gnysekgnysek (23:06, 6.12.22):
Nie ma takiej funkcji w GML, właśnie o to chodzi.
IgnatusIgnatus (20:36, 6.12.22):
Nie wiem o co chodzi więc wpisałem po prostu XD zapodaj.net/images/8bfcb19e4a9c5.png
gnysekgnysek (10:33, 6.12.22):
Zapytaj o shuffle na tablicy i zobaczysz, że różnie działa
IgnatusIgnatus (20:46, 5.12.22):
Jestem w szoku jak sprawnie to działa i że umie w GML XD
gnysekgnysek (16:09, 5.12.22):
już wiem, ChatGPT
gnysekgnysek (14:59, 5.12.22):
Co to za AI ?
SutikkuSutikku (7:52, 5.12.22):
bardzo dobra technika, ładne ślaczki wychodzą z pocisków, można się poczuć jak malarz
Ankieta
» Kiedy wyjdzie GameMaker (Studio) 3.0?
Q1 2022
Q2 2022
Q3 2022
Q4 2022
2023 albo i później

GMCLAN to serwis o programie Game Maker i nie tylko.
[ Polityka prywatności ]
Copyright © 2002-2023. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!
© 2002-2017 Ranmus, © 2017-2023 {=|=} fable_inside();

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