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)
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
5 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 5, userów: 0, ukrytych: 0
Użytkownicy na czacie discord
MaxGaming (3:18, 23.04.18):
Niekoniecznie dla reklamodawcy, ale w dużym uproszczeniu średnia wyjdzie taka sama(nie biorąc pod uwagę targetu właściciela serwisu/aplikacji, ale to już problem reklamodawcy i właściciela nośnika tych reklam).
MaxGaming (3:16, 23.04.18):
Ale dlaczego miałoby się równać? Myślę że to lepsze rozwiązanie niż stałe zużycie niezależnie od tego jaki ktoś ma komputer. Procentowe zużycie wydaje mi się dużo bardziej sprawiedliwe niż stałe dla każdego urządzenia
Wojo (10:29, 20.04.18):
Jeśli chodzi o reklamy to odpowiadają mi takie co są na gmclanie teraz niż zamienianie połowy gmclanu na reklamę podpasek czy czegoś podobnego
Wojo (10:27, 20.04.18):
Tylko, że 10% zużycia słabego komputera nie równa się 10% zużyciu dobrego komputera
Wojo (10:27, 20.04.18):
Tylko, że 10% zużycia kom
MaxGaming (1:00, 20.04.18):
Wiesz wirusy też są mimo tego że nie powinny, ale jakoś radzimy sobie z tym
MaxGaming (1:00, 20.04.18):
Mi mniej przeszkadza kopanie bitcoinów w tle niż npnatarczywe reklamy. Wolałbym natomiast aby takie strony mogły się do tego przyznać i nie były linczowane
MaxGaming (0:59, 20.04.18):
przeciwko oszustą byłby fakt braku ograniczeń. Strona musiałaby tylko informować, a czy wkorzysta 90% to jej sprawa. BYleby użytkownik wiedział sam na co się pisze
MaxGaming (0:58, 20.04.18):
Ale o to chodzi z procentami. Dzięki temu nawet jak mamy wolny komputer odczujemy tak samo. Co do innego prawa. Na każdej stronie jakoś jest informacja np. o plikach cookies. Dałoby to sięogarnąć, tym bardziej gdyby powstałą organizacja sprawdzająca takie informacje i byłaby np na jej stronie lista nieuczuciwych stron które należy unikać. Możnaby wprowadzić także w przeglądarkach żeby takie strony nie otwierały się, albo wymagały wyraźnego potwierdzenia użytkownika. Myślę że głównym argumentem
Wojo (23:08, 19.04.18):
tak samo bodajże w szwecji partia piratów chciała założyć własne małe państwo gdzie piractwo byłoby legalne dzięki czemu niektóre strony mogłyby obejść prawo w taki lub inny sposób
Wojo (23:06, 19.04.18):
a żeby mieć jakiś faktyczny zysk z takich koparek bitcoinów to musiałbyś je ustawić na jakiejś popularnej stronie bo np na takim gmclanie zbyt wiele nie wydobędziesz
Wojo (23:05, 19.04.18):
Ale to brzmi abstrakcyjnie Stronę zawsze można założyć w innym państwie gdzie takie prawo nie obowiązuje, 10% mocy obliczeniowej komputera przecież się różni w zależności od tego jak mocny mamy komputer
MaxGaming (21:08, 19.04.18):
Według mnie jeśliby ustanowić prawnie że strona która twierdzi że pobierze np. 10% mocy obliczeniowej naszego komputera na prawdę musi tyle pobierać pod groźbą kary to np kopanie bitcoin w tle jest fajną alternatywą dla reklam
Wojo (10:33, 19.04.18):
Jak dla mnie to sprytne rozwiązanie ktoś wymyślił
I am vader (0:53, 19.04.18):
Nie pamietam jak ten program sie nazywal ale za jaja bym powiesil skurczybyka ktory to zrobil.
I am vader (0:52, 19.04.18):
Odmowilem, nic wielkiego, ale potem przed pobraniem programu kazano mi kopac conajmniej jakastam chwile, tu juz sie podniosly czerwone flagi. Wiec sprawdzilem ten program pod katem wirusow i okazalo sie ze wygenerowane exeki instaluja koparki na kompach uzytkownikow.
I am vader (0:52, 19.04.18):
Znalazlem taki program ktory zamienia pliki bat w exe poniewaz powody, ale na stronie zostalem zapytany czy uzycze komputera na mineowanie kryptowalut podczas przegladania strony zeby wspomoc tworce.
I am Lord (23:59, 18.04.18):
może flash coś dodaje?
Wojo (23:06, 18.04.18):
Nawet pobrałem sobie ADW cleanera i nic nie wykrył
Wojo (22:38, 18.04.18):
No ale co mi po tym, że ktoś ma ip z Gdańska i jest zainteresowany zabawkami dla psów co jest bezużytecznymi danymi nawet dla hakera
Wojo (22:36, 18.04.18):
W sumie jak tak siedzę i się zastanawiam to może wydobyć pliki cookies, przechwycić naciśnięte klawisze
Wojo (22:33, 18.04.18):
Ale co ma śledzić? Lokalizację na podstawie ip? Bo nie rozumiem za bardzo
PsichiX (21:38, 18.04.18):
mowie o skrypcie js-agent.newrelic.com, ktory rozpoznawany jest jako narzedzie sledzace.
PsichiX (21:36, 18.04.18):
prowo?
Wojo (19:40, 18.04.18):
To tak zwane "prowo", które było nieudolną próbą "prowo" yxa
I am Lord (16:59, 18.04.18):
Aż tak ci się zacina to?
Wojo (16:11, 18.04.18):
Pół biedy ze śledzeniem ale denerwuje mnie kopanie BitCoinów przez ten link Nie ma to jak napychać portfel komuś kogo nie znam
I am Lord (0:04, 18.04.18):
Nic o tym nie wiem, a co to za skrypt?
PsichiX (23:56, 17.04.18):
a ten skrypt śledzący to Ty wrzucałeś, czy twórcy scratcha są na tyle ułomni, że coś takiego od siebie dodają? ;>
I am Lord (22:56, 17.04.18):
gnysek (9:35, 12.04.18):
No ja raz miałem nieważną z winy sekretariatu i też chyba musiałem 10zł zapłacić.
Wojo (12:34, 11.04.18):
A wszyscy co chcieli rzucić gimnazjum to po prostu strzelali kible do oporu i ich przenosili do ohp
Wojo (12:08, 11.04.18):
Nie mam jak się zapytać gdyż nie posiadam żadnych znajomych
Gibki Kaktus (10:15, 11.04.18):
To powiedz, że ich popierdoliło xD
MaxGaming (19:39, 10.04.18):
Ustawowa opłata za duplikat to właśnie 9zl. Przeczytajcie jeszcze raz o czym ja mówię :/
Gibki Kaktus (17:11, 10.04.18):
Ja jak zgubiłem to płaciłem 9 czy tam 10 zł xD
MaxGaming (23:07, 9.04.18):
Opłata 9zł to co innego, Nie bardzo, bo kolega z innej szkoły miał podobne doświadczenia...
Chell (22:59, 9.04.18):
albo uisc oplate, jeszcze nie slyszalem o darmowych duplikatach dokumentow
Ignatus (22:20, 9.04.18):
Chyba po prostu Cię nie lubią i robią sobie jaja.Przysłuchaj się przy drzwiach od sekretariatu czy nie kwiczą ze śmiechu zaraz po Twoim wyjsciu
MaxGaming (21:29, 9.04.18):
Szukam na necie i nigdzie nie widzę że jest taki przepis. I wątpie że jeśli jest to muszą to być drogie i nie czytane przez nikogo anonse. Wie ktoś coś?
MaxGaming (21:28, 9.04.18):
Ma ktoś pojęcie na jakiej podstawie szkoła może ode mnie żądać płatnego(i to słono jak za taką usługę) ogłoszenia w anonsach jeśli zgubiłem legitymacje? Twierdzą że nie mogą mi wyrobić nowej bez potwierdzenia zamieszczenia ogłoszenia w anonsach i uiszczenia opłaty...
Wojo (21:11, 9.04.18):
Nie ogarnalem ze jest tylko 48h ,myslalem ze z tydzien ;p
Ignatus (21:04, 7.04.18):
Nie ogarnalem ze jest tylko 24h ,myslalem ze z tydzien ;p
I am vader (19:00, 7.04.18):
Troche pozno zaalarmowales
Ignatus (18:25, 7.04.18):
Nieważne już ,zabrakło kilku głosów,przepadło
Ignatus (16:36, 7.04.18):
Moja żona robi charytatywnie lalki dla chorych i niepełnosprawnych dzieci.Mogę prosić o "wykop" ? www.wykop.pl/li...epelnosprawnych
PsichiX (0:04, 6.04.18):
uuu, antyleniwizm!
I am Lord (23:43, 5.04.18):
Ale kierowniczka widziała że sam ładuję to mu da popalić
I am Lord (23:42, 5.04.18):
zacząłem ładować przed 22 i gość miał mi pomóc a dał nogę
Ankieta
» Jakie kursy najchętniej widziałbyś na stronie ?
GM Studio
GM Studio 2
Godot
Construct

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

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