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 -> Kąciki programowania
Treść artykułu
Początki z Basic4Gl
autor: Sadam (17.10.04)
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 :
kod:
dim 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:
kod:
obiekt1x = 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. -
kod:
TextMode (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 :
kod:
while 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. :
kod:
cls
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.

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?

~Tails (17:43, 30.07.2005)

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

~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
130 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 129, userów: 1, ukrytych: 0
Ignatus

0 użytkownik(ów) na gmczacie i 0 bot(ów)
Shoutbox
Chell (20:18, 26.05.17):
głos zapisany, powodzenia
I am Lord (19:13, 26.05.17):
I matka też, chyba bardziej haha
I am Lord (19:13, 26.05.17):
Dzięki, dzieciuch się ucieszy
PatrykPlayingPOLSKA (19:09, 26.05.17):
głos oddany
I am Lord (18:55, 26.05.17):
Nikas (18:21, 26.05.17):
Zrobione. Play doh i plac zabaw. Będą mieli cała piaskownicę z tego super wyglądającego piasku którym niestety nigdy nie miałem okazji się pobawić????? xD
I am Lord (18:08, 26.05.17):
Pomożecie mojemu siostrzeńcowi oddać głos na pracę z "Piły" "Grupa: DZIELNE ZUCHY" wymarzony-plac-...da59e3c0de745e5
nowy_user (16:24, 26.05.17):
Ogolił głowę na 0mm ?
Wojo (16:22, 26.05.17):
I chyba nie muszę wspominać że pozbył się łysienia raz na zawsze
Wojo (16:21, 26.05.17):
Ten bezrobotny dwudziestoparolatek zarabia krocie w internecie i umawia się ze wszystkimi samotnymi mamuśkami w okolicy i powiększa swojego penisa dzięki jednej prostej kryptowalucie. ZOBACZ JAK
Sutikku (16:08, 26.05.17):
biznesmeni go nienawidzą
Nikas (15:31, 26.05.17):
Znalazł jeden prosty sposób jak zarabiać w internecie!!!!!
Sutikku (14:52, 26.05.17):
korzysta tu ktoś z przeglądarki vivaldi?
Fervi  (23:55, 25.05.17):
Społeczność jest dużo mniejsza
Fervi  (23:55, 25.05.17):
Powiedzmy, że potencjalnie reddit. Natomiast masz podział na tagi, więc możesz obserować te, które cię interesują
I am Lord (23:27, 25.05.17):
więc żaden reddit z tego
I am Lord (23:27, 25.05.17):
Te wpisy tam to w 95% jakieś pieprzenie o bitcoinach, spsobach na magiczne bogactwo nie ma nic normalnego :/
Fervi  (23:17, 25.05.17):
Oczywiście te 500zł to taka wartość hmm ... lekka. Są osoby, co zarobiły 16k na jednym poście, albo 1.5k w 2 tygodnie. Natomiast założyłem, że po prostu relanie z 500, może 1000zł / msc będzie
Fervi  (19:37, 25.05.17):
Możesz też wymieniać kryptowalutę z jednej na inną (poloniex)
I am Lord (19:28, 25.05.17):
w jaki sposób kryptowalutę się da wymieniać bo ja nie ogarniam
Fervi  (17:32, 25.05.17):
Każda chyba kryptowaluta jest wymianialna na złotówki. Nawet Dogecoin
Fervi  (17:32, 25.05.17):
Doge się nie wybił, a inne i owszem
Wojo (17:29, 25.05.17):
Tak jak np dogecoin
Wojo (17:28, 25.05.17):
Pomijając te moje śmieszne filozofie to rynek kryptowalut jest juz tak rozwinięty że kolejne kryptowaluty się nie wybijaja bo nie maja nic więcej do zaoferowania
Wojo (17:25, 25.05.17):
I to jest chujowa robota i to. Ale w jednej z nich jesteś w stanie odebrać wynagrodzenie
Wojo (17:22, 25.05.17):
A za pomoc przy osobach starszych dostajesz 2000euro (w realnej walucie). Serio smuci mnie to jak niektórzy kombinują jak koń pod górę zamiast najzwyczajniej w świecie zabrać się do roboty
Fervi  (17:18, 25.05.17):
Oczywiście mechanizm jest bardziej skomplikowany, ale to przykład
Fervi  (17:17, 25.05.17):
Dogecoin to po prostu kolejna waluta. I dobrze. Ale to tak jakbyś na stack overflow za pomoc użytkownikowi zamiast + dostał 10 centów (w kryptowalucie)
Fervi  (17:14, 25.05.17):
Akurat nie moja Od Dogecoin stoi o wiele wyżej. Natomiast może sukces osiągnąć z prostego powodu. To w zasadzie portal z walutą.
Wojo (17:12, 25.05.17):
Ale ta twoja waluta jest czymś pokroju dogecoina czyli czymś co sukcesu nie osiągnie
Fervi  (17:11, 25.05.17):
Masz już 4 kryptowaluty, co się wybiły całkiem nieźle (powyżej chyba 100 dolarów), może ciut więcej. Co prawda Steem nie należy do nich, natomiast na razie idzie go zdobyć dużo
Wojo (17:10, 25.05.17):
Dodatkowo bitcoin jest czymś co wcześniej było niespotykane a to jest jedno ze źródeł jego sukcesu
Wojo (17:09, 25.05.17):
Ale bitcoin to przypadek jeden na milion. Szansa że takj projekt wypali jest niewielka
Fervi  (17:08, 25.05.17):
Dlatego ci co weszli w bitcoina są bogaci, a ci co nie rozumieją krzyczą "hurr durr, waluta komputerowa do płacenia za pedofilię"
Fervi  (17:07, 25.05.17):
Wiem, wszystko co nieznane to demoniczne
Wojo (17:06, 25.05.17):
Ktoś tu chyba powoli zaczyna dzielić losy pakło
Fervi  (17:05, 25.05.17):
Potrzebujemy osób co coś potrafią Wojo
Fervi  (17:04, 25.05.17):
No i bardzo dobrze
Wojo (17:04, 25.05.17):
Szkoda czasu na coś takiego
Wojo (17:03, 25.05.17):
W kryptowaluty sie inwestuje jak mają potencjał a nie leci się pod każdą stworzoną.
Fervi  (17:00, 25.05.17):
Oczywiście im więcej Polaków tym lepiej, na początku nic nie znaczą, to po prostu budują społeczność, a potem ich głos zaczyna znaczyć 1 cent, 2 centy itd. i jest nabijanie kabzy
Fervi  (16:56, 25.05.17):
Oczywiście w kryptowalutach, więc jak ogarniasz co nieco to możesz się wybić na tym (jak na BTC) - przynajmniej potencjalnie
Fervi  (16:56, 25.05.17):
Są ludzie co siedzą na reddit i nic nie mają. A tutaj robią to samo i jeszcze im płacą
Fervi  (16:56, 25.05.17):
Czasem 3, czasem 80. Robisz to co robisz teraz a dodatkowo zarabiasz. Wyobraź sobie, że teraz gadamy sobie na GMC, tylko zamiast pustego rzucania sloganów - dostajesz hajs
ediepl (16:55, 25.05.17):
Jeśli uważasz że godzina twojej pracy kosztuje 3zl to spoko
Fervi  (16:52, 25.05.17):
No proszę, a mówią, że pieniądz nie śmierdzi
ediepl (16:51, 25.05.17):
Spoko praca jak się nie szanujesz
Fervi  (16:39, 25.05.17):
Komentujesz, piszesz posty, blabla
Fervi  (16:39, 25.05.17):
I Jasne, że z ulotek zarobisz więcej, tylko tutaj nie wychodzisz z domu. Po prostu robisz to samo co na wielu portalach
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.01624 sekund ] [ Liczba zapytań MySQL: 16 ]

thecrims Otserv List Otserv LyricsTown Harry Potter Serwery Gier
dev nodev