! Przeglądasz starą wersję serwisu GMCLAN.org !
Tej części serwisu jeszcze nie przerobiliśmy pod nowy design, ale wszelka treść którą widzisz jest zgodna i zsynchronizowana z nową wersją. Prace nad tą częścią trwają.
Zawsze możesz zgłosić swoją opinię, lub dopytać nas jak postępy :)
Powrót do nowej wersji
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 -> Kąciki programowania
Treść artykułu
Początki z Basic4Gl
autor: Sadam (17.10.04) | czas czytania: 4 minuty, 25 sekund
tak więc może zacznę od podstawowych informacji dotyczących darmowego kompilatora : Basic4Gl. Język programowania jakim posługujemy się w owym programie jest bardzo prosty, co umożliwia pisanie w nim gier 2d jak i full 3d w bardzo łatwy sposób. Jedną z poważnych wad jest brak możliwości pisania własnych funkcji co nas trochę ogranicza, jednak dla mnie wymagających programistów nie jest to żadnym problemem. Inną wadą może być też waga pliku która minimum wazy ok. 1 mb.

teraz może o podstawach tego języka. Zaczniemy od Variables ( Zmiennych ) . Najpierw musimy je zadeklarować poprzez komendę dim a zaraz po niej wypisać nazwy zmiennych. Jest to niezbędne jeżeli używasz danej zmiennej w dalszej części kodu. Czemu tak się dzieje ? Ponieważ próbujemy skorzystać ze zmiennej której program w ogóle nie znać. Przeważnie dimy wypisuje się w kilku pierwszych liniach kodu. Ciekawostką jest również przyjęta zasada deklarowania każdej zmiennej poprzez osobny dim chyba że zmienne należą do takiej samej grupy lub odnoszą się tego samego obiektu. Np :
koddim obiekt1x 'Jest to deklarowanie pozycji x obiektu 2
dim obiekt2x, obiekt2y ' Tu zaś deklarujemy zmienne obiektu 2

Następnym krokiem powinno być zdefiniowanie zmiennej. Chodzi tu o nadanie pewnej wartości zmiennej, może to być pozycja x bądź y, jak i jakaś całkowicie nic nieznacząca liczba. W tym przypadku nadamy wszystkim 3 zmiennym pozycje. Powinno to wyglądać w sposób następujący :
nazwa zmiennej = wartość
Na przykład:
kodobiekt1x = 15
obiekt2x = 10
obiekt2y = 10

Tak więc zmienne możemy na razie zostawić w spokoju :). Zanim jednak przejdziemy do dalszej części artykułu powinniśmy wykonać jeszcze jedną rzecz. Chodzi tu o wstawienie fragmentu kodu odpowiadającego za Buforowanie textu. Min. -
kodTextMode (TEXT_BUFFERED) Nie jest to jednak niezbędne. Powinniśmy to stosować tylko w skrajnych przypadkach min. Kiedy to umieszczamy w programie text i korzystamy z funkcji while. Kod ten powoduje że nie widzimy odświeżania textu. Funkcja while natomiast często jest wymagana do poprawnego funkcjonowania programu. Bez niej m.in. Nie będą poprawnie działały zdarzenia o których już za chwile. Funkcja while powinna wyglądać następująca :
kodwhile true
Kiedy to zrobiliśmy możemy zacząć prawdziwą zabawę ( Dla kogo ;D ) . Tak więc możemy wsiąść się za zdarzenia. Czyli wszelkie operacje po naciśnięciu klawiszu myszki, klawiszy na klawiaturze, kiedy zmienna osiąga pewną wartość bądź jakiś obiekt uzyskuje pewną wartość x i y itd. Tutaj możemy popuścić wodzę naszej wyobraźnie i próbować wszystkiego co się da. Zaprezentuje poniżej kilka funkcji które mogą być zastosowane w waszej grze.kod
if ScanKeyDown (Wartość) then ' Jeżeli Przycisk .... został wciśnięty wtedy ma się stać : ( Oczywiście w miejsce wartość wpisujemy symbol danego znaku. )
if zmienna1 = wartość then ' Jeżeli pewna zmienna osiągnie pewną wartość
if zmienna1 = wartość and zmienna2 = wartośc2 then ' jeżeli 1 zmienna posiada taką wartość a 2 posiada taką wartość ma się stać :
if zmienna1 >= wartość then ' Jeżeli zmienna jest większa bądź równa danej wartości ma się wydarzyć :
if zmienna1 <= wartość then ' Jeżeli zmienna jest mniejsza bądź równa danej wartości ma się wydarzyć :

Tyle wystarczy jak na początek. Dane przykłady pozwalają nam na stworzenie bardzo prostej gry. Jeśli chodzi o ich zastosowania, wystarczy wysilić swoją wyobraźnie. I pomyśleć co się powinno stać po wciśnięciu pewnego klawisza, bądź gdy jakaś zmienna osiągnie pewną wartość. Podam kilka przykładów :kod
if ScanKeyDown (Symbol) then
zmienna1 = zmienna1 + 1 ' Po wciśnięciu danego klawisza zmienna1 ma zwiększyć swoją wartość o 1

if zmienna1 = wartość then
zmienna2 = 3 ' Jeżeli zmienna 1 osiągnęła pewną wartość wtedy zmienna 2 ma przyjąć wartość 3

if zmienna1 = zmienna 2 then
zmienna1 = zmienna1 - zmienna2 ' Jeżeli zmienna 1 posiada taką samą wartość jak zmienna 2 wtedy, wartość zmiennej 1 ma zostać zmniejszona o wartość zmiennej 2
Tak więc można powiedzieć że podstawy już znacie. Teraz przejdźmy, do wstawienia obiektu na nasz ekran. Tak więc musimy wstawić kod mówiący w jakim miejscu, ma zostać umieszczony obiekt ( w naszym przypadku Literka O ) Np. :
kodcls
locate x, y: Print "O"

Oczywiście jak można się domyślić zamiast x i y wstawiamy konkretną cyfrę lub zmienną. Kod po znaku " : " odpowiada za rysowanie litery. Kiedy to mamy należy zamknąć nasz program komendą " wend " i możemy odpalić naszą grę. Niestety niemogę tu opisać co takiego się tam wydarzy ponieważ to jest wasz program. Jednak coś nam nie chce pójść/ Cóż to może takiego być ? Jeżlei użyliśmy komendy TextMode powinniśmy przed " Wend " umieścić 1 linijkę kodu odpowiadającą za prawidłowe funkcjonowanie gry. Chodzi o :
kod Drawtext ()
I to jest już koniec. Wszystko powinno działać jak w szwajcarskim zegarku. Jednak to nie koniec. Nie możemy spocząć na laurach, tylko próbować rozwijać ten programik.
głosów: 2 | ocena: 4.50 oceń zasób | dodał: Ajot
Komentarze
stron: 1

1


av

Marmot (13:03, 17.10.2004)

Mógłbyś poruszyć troszkę inne zagadnienia, np. spritowanie, modelowanie, korzystanie z tekstur itp.

av

Ajot (13:04, 17.10.2004)

Marmot ale jak napisałem już jest to przykłąd jak zrobić prostą grę " Textową " . Art z sprite'ami i korzystanie z textur już jest w drodze...

av

Ranmus (20:52, 26.11.2004)

TEXT_BUFFERED spełnia także inną funkcję, działa także jako SPRITE_BUFFERED, czyli program nie będzie marnował czasu poprzez rysowanie od nowa całego bufora ekranu jeśli coś na nim wyrysujemy, lepiej odswiezyc ekran na koncu kazdej "klatki". Dzieki temu mozna przyspieszyc znacznie program. Info zaczerpniete z oficjalnego forum basic4gl

av

Marmot (21:23, 26.11.2004)

Głupio tylko trochę wygląda ten skrót od nazwy arta w ostatnich komentarzach: "Początki z Basi...". Może lepiej by było wprowadzić opcję krótka nazwa?

av

~Tails (17:43, 30.07.2005)

Powinno być więcej o spritach!!! Io grach 3D!!!

av

~tom&mii (13:27, 1.04.2006)

znacie moze jakies stronki z poradami o gm 6.1
??
pace!
<sex>

av

Maximal (13:44, 1.04.2006)

WTF? 0_o Rozejrzyj sie na tej stronie, możliwe, że znajdziesz całkiem sporo... '

stron: 1

1



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

Nie masz konta? Zarejestruj się
Użytkownicy on-line
1 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 1, userów: 0, ukrytych: 0
Użytkownicy na czacie discord
Shoutbox
gnysekgnysek (0:48, 15.04.23):
Uff, z milionem bugów, ale się udało. Na razie idę spać, a jutro będę pewnie trochę walczył z tym co zgłaszacie.
WojoWojo (0:21, 15.04.23):
Testowy wpis na nowym wyglądzie
gnysekgnysek (20:18, 14.04.23):
Zacznę tak koło 23:00 najwcześniej
SutikkuSutikku (13:11, 14.04.23):
update in progress
gnysekgnysek (20:16, 13.04.23):
Jak to nie? Testować i dawać feedback!
AdriannAdriann (21:23, 12.04.23):
To nie będzie co robić w weekend
gnysekgnysek (15:41, 12.04.23):
W piątek/sobotę wieczorem strona może być przez jakiś czas niedostępna - będę wrzucał betę nowej wersji.
AdriannAdriann (22:50, 10.04.23):
owszem
SimianVirus7SimianVirus7 (11:26, 10.04.23):
Czyli dobrze widzę, że game maker studio 2, to teraz po prostu GameMaker?
AdriannAdriann (19:54, 8.04.23):
Miałem straszne spadki fpsów przy minimalizowaniu gry
AdriannAdriann (19:54, 8.04.23):
Po prostu byłem przekonany że problem jest gdzie indziej i próbowałem go ruszyć z innych stron komplikując tylko kod
SimianVirus7SimianVirus7 (15:50, 8.04.23):
Ja często mam tak, że nie potrafię rozwiązać problemu i co rusz piszę nowe rozwiązania na kilkadziesiąt linijek i nic. Później idę spać i na następny dzień rozwiązuje problem kilkoma linijkami. Chociaż patrząc na twój przypadek to te kilka miesięcy trochę boli
AdriannAdriann (9:38, 8.04.23):
Rozwiązałem problem jaki miałem w gierce od miesięcy, okazało się że trzeba było dodać jedną małą komendę a ja szukałem i kombinowałem godzinami. Najgorsze uczucie, zero satysfakcji z rozwiązania
AdriannAdriann (9:54, 5.04.23):
wg mnie super, bardzo wygodny i przydatny ;d
gnysekgnysek (15:28, 3.04.23):
Mam to samo. Robi wszystko co trzeba, ale... Podobno jednak ma oferować opcję eksportowania z niego kodu GML.
SimianVirus7SimianVirus7 (12:56, 3.04.23):
z drugiej strony nie wiem czego mógłbym od niego więcej wymagać
SimianVirus7SimianVirus7 (12:56, 3.04.23):
jakoś tak mi nie siadł ten edytor cząsteczek
gnysekgnysek (14:06, 30.03.23):
Jest dziś szansa na wydanie LTSr1
gnysekgnysek (0:59, 28.03.23):
Mam nadzieję, że jest ograniczony już dosłownie ostatnie dni Mam zrobione 134 ze 145 zadań z listy, jak się znów nie pochoruję, to pewnie kwestia kolejnego weekendu żebym dokończył.
WojoWojo (17:10, 26.03.23):
Teraz gnysek z tego co widzę na discordzie to sporo zmian wprowadzi bo praca wre, ale jest póki co ograniczony dostęp do tego
WojoWojo (17:09, 26.03.23):
Rozruszajmy to forum. Pamiętam jak chyba w 2013 były smutki, że forum jest martwe...
SutikkuSutikku (11:48, 16.03.23):
przykro mi, że wszystkie ostatnie wiadomości są od Ciebie, więc napiszę, że czekam na montaż
gnysekgnysek (15:37, 15.03.23):
Wczoraj nagrano prezentację GMUpdate 2023 - teraz czekamy tylko na montaż.
gnysekgnysek (14:35, 3.03.23):
2023.2 wyjdzie dopiero 6 marca, z powodu paru bugów które znaleziono w czwartek
gnysekgnysek (19:56, 24.02.23):
I naprawione.
gnysekgnysek (13:08, 24.02.23):
Przestało chyba działać pamiętanie logowania z głównej, postaram się to naprawić do wieczora.
gnysekgnysek (20:06, 16.02.23):
stabilne są zazwyczaj na koniec miesiąca - ale pewnie zależy od feedbacku po kolejnej becie, bo sporo poprawek wleci (powinna być dziś - ale jej nie ma, może jeszcze coś naprawiają)
SimianVirus7SimianVirus7 (13:09, 16.02.23):
a wiadomo kiedy będzie w stable ten particles editor?
gnysekgnysek (23:27, 10.02.23):
Yay, Particle Editor!
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
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.04925 sekund ] [ Liczba zapytań MySQL: 14 ]