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 -> 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 :
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.

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?

~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
2 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 1, userów: 1, ukrytych: 0
Adriann
Użytkownicy na czacie discord
gnysek (10:20, 3.03.21):
O, nawet znalazłem, ze od dawna istnieje i działa.
gnysek (2:11, 3.03.21):
O, chyba będzie IDE dla Linuksa, są już pierwsze zmienne tekstowe...
gnysek (13:46, 2.03.21):
Czekają na release 4.0
Adriann (10:02, 1.03.21):
Bardzo mnie to cieszy, Spine jest super :3
gnysek (23:40, 28.02.21):
Poza tym, że będzie update do Spine i że sekwencje go nie zastąpią, to help.yoyogames....1719448-RoadMap
Uzjel (22:10, 28.02.21):
Jest roadmap, ale żadnych wow nie ma.
gnysek (18:32, 27.02.21):
Nic nie wynikło
Sutikku (20:18, 26.02.21):
ktoś oglądał i skróci co wynikło z nagrania?
gnysek (23:09, 24.02.21):
Nagranie: drive.google.co...82ibK4deKo/view
adam014 (20:17, 24.02.21):
Przy dobrych wiatrach jeszcze experta trzasnę w tym roku
gnysek (18:51, 24.02.21):
To jesteś lepszy niż ja. Mi by się nie chciało.
adam014 (16:39, 24.02.21):
Mogę się pochwalić, od wczoraj - Magento 2 Certified Professional Developer
Adriann (14:15, 23.02.21):
Super! Ciekawe co z tego będzie:3
gnysek (13:20, 23.02.21):
Jutro wideokonferencja YYG
Ranmus (11:47, 19.02.21):
Nie mając świadomości co się wydarzy. Grałem pod premiery konsol a nie short squeeze. xd
Ranmus (11:46, 19.02.21):
Gnysek, taki fun fact. Miałem kilkaset akcji GME i sprzedałem je na początku sesji w poniedziałek, w którym się to wszystko zaczęło. xd
Ranmus (11:42, 19.02.21):
Z shortowaniem to trzeba bardziej uważać jednak.
gnysek (9:40, 19.02.21):
i wtedy reddit robi akcję kupowania
Sutikku (23:16, 18.02.21):
chyba, że shortujesz
gnysek (10:29, 15.02.21):
Inwestowanie w gówno to idiotyzm nie dywersyfikacja
Ranmus (9:33, 15.02.21):
Jeżeli daną inwestycję uważa się za gówno, to się w nią nie inwestuje w ogóle. Proste, prawda?
Ranmus (9:31, 15.02.21):
Dywersyfikacja to bezpieczeństwo. Nie trzeba uważać, że dana inwestycja do dywersyfikacja jest od razu gównem, bo żyjemy w takich czasach, że nie wiadomo co rządzący wymyślą dnia następnego. Nie istnieje żadna pewna inwestycja na teraz. Nie ma czegoś takiego.
I am Lord (23:47, 13.02.21):
No Gnysek iks de
gnysek (19:54, 13.02.21):
Fajny bug w tym 2.3.2, "Save as" nie zapisuje nic
gnysek (15:07, 13.02.21):
Dywersyfikacja to znak, że wiesz jak nieprzewidywalne są różne inwestycje
Adriann (10:03, 13.02.21):
Nie.
Adriann (10:03, 13.02.21):
doctor (22:29, 12.02.21):
Co do dywersyfikacji - uważam to za słaby pomysł. Dywersyfikacja to powiedzenie sobie, że to co kupujesz uważasz za gówno
nowy_user (16:30, 12.02.21):
Swoją drogą, jestem szczęśliwy, że chłopaki z Polski będą mieli w końcu realny wpływ na rozwój GMa. Krystian, Maciej, jeśli to czytacie, to wiedzcie, że cały Gmclan trzyma za Was kciuki!
nowy_user (16:27, 12.02.21):
Niedługo będzie też sesja Q&A na której będą uczestniczyć YoYo oraz Opera: www.yoyogames.c...ow-we-fit-in-at
nowy_user (12:31, 12.02.21):
Lunar Sale dla Gamemakera -30% na wszystkie exporty. Mają gest...
gnysek (15:18, 8.02.21):
Za jakieś fizyczne rzeczy też bym policzył w sumie podatek, ale samochodu kupić sie za bitcoin u nas nie da jeszcze
gnysek (15:18, 8.02.21):
Liczysz to co wpłynęło na Twoje konto. Jak zapłaciłeś z portfela, to raczej nie zarobkiem, a tym co wpakowałeś kiedyś, więc to już była opodatkowana kasa.
Ranmus (21:04, 7.02.21):
A to nie wiem. Jakbym mial krypto placic, to bym sie zastanowil dwa razy
I am Lord (20:55, 7.02.21):
Tylko ja takie motywy tam odwalałem jak np z giełdy przelałem sobie trochę btc na porftel i z niego kupiłem np na pyszne.pl jedzenie i windowsa z chińskiego GVGMall. Płacone bitcoinem oczywiście bez zmiany na złotowki
Ranmus (19:42, 7.02.21):
Oczywiscie zarobek nastepuje w momencie sprzedaży krypto.
Ranmus (19:40, 7.02.21):
Jesli zarobiles w zeszłym, to placisz podatek w tym roku.
Ranmus (19:39, 7.02.21):
No jak z akcjami, tylko się z nimi nie miesza. Pit-38. Przychod 5600, koszt uzyskania przychodu 3000. Od różnicy, 2600, odliczasz 19% podatku, czyli 494zl. Wszystkie wartosci wpisujesz w odpowiednich polach
I am Lord (16:38, 7.02.21):
www.e-pity.pl/p...-od-kryptowalut tutaj jest tak napisane że nic nie kumam 😅
I am Lord (16:30, 7.02.21):
przy startowym kapitale 3000
I am Lord (16:29, 7.02.21):
Ja w sumie zarobiłem na bitbay 2600 i nie mam pojęcia jak podatek odprowadzić. Przetrzymam jeszcze rok i się douczę
Ranmus (12:27, 7.02.21):
Krypto o tyle niebezpieczne, że w razie czego będzie pierwsze do delegalizacji. Ale spekulacyjnie czemu nie.
Ranmus (12:22, 7.02.21):
Do zabezpieczenia oszczędności najważniejsza jest dywersyfikacja. Obligacje oprocentowane inflacją, akcje, nieruchomości, waluty obce, fizyczny kruszec itd.
Adriann (7:48, 5.02.21):
Holduję do końca cyklu czyli do około końca roku. Wiem jakie są podatki i prowizje, zysk wciąż znacznie przewyższa całość.
gnysek (23:41, 4.02.21):
No ale tak szczerze, wypłacałeś kiedyś bitcoiny? I legalnie odprowadziłeś od nich podatek?
nowy_user (22:19, 4.02.21):
Grę w GM można zrobić, bo gamemaker raczej nie upadnie nigdy.
Adriann (21:44, 4.02.21):
Idąc tym tokiem myślenia to nic tak naprawdę nie można zrobić bo wszystko zawsze może upaść itp
gnysek (15:57, 4.02.21):
Wszystko fajnie, a jak chcesz sprzedać, go nagle prowizje, podatki i bankructwo giełdy
Adriann (10:46, 4.02.21):
Póki co bitcoin czy etherum sprawdza się doskonale, i tak uwzględniam spadki, cykle itp
nowy_user (10:31, 4.02.21):
Do zabezpieczenia oszczędności to chyba najlepsze złoto lub nieruchomości. Lokaty i obligacje odpadają - zbyt niskie oprocentowanie.
Ankieta
» Ile powinny trwać tury Ligi 24?
24h
48h
54h (piątek od 18:00)
7 dni
inna długość (podałem w komentarzu ankiety)

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

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