Skocz do zawartości

A JAK?


Cobra

Rekomendowane odpowiedzi

Odnośnie grawitaci to byl juz taki temat, byla tam nawet MOJA odpowiedz którą teraz cytuje:

 

tworzysz objeckt blok(to objekt po ktorym chodzic bedzie hero, pamietaj zeby byl on soild).tworzysz objekt hero. W jego stepie dajesz

CODE

if place_free(x,y+1)

{gravity = 0.5}

else

{gravity = 0}

 

 

W colizji z blokiem

CODE

move_contact_solid(270,4)

vspeed = 0

 

 

przy nacisnieciu klawiszu prawo dajesz

CODE

if place_free(x+4,y)

{x+=4}

a przy przycisku w lewo

CODE

if place_free(x-4,y)

{x-=4}

Teraz trzeba ustalic jeszcze skakanie ktore ustawiasz w przycisku w gore

CODE

if ! place_free(x,y+1)

{vspeed = -10}

 

 

Pisalem z pamieci wiec moze sie tam cos nie zgadzac. Oczywiscie mozesz zmieniac wartosci skoku oraz ruchu w boki. Mozesz tesh zmienic przyciski ktorymi hero ma chodzic

 

 

Tak to u gory to bylo odnosnie pierwszego pytania.

teraz drugie

jak zrobić żeby mój kolo strzelał

ehhh kolo to nie wiem jak strzela, ale jesli chodzi o zwyklego ludka to mozesz zrobic to na wiele sposobow. Mozesz robic to np. tak ze podczas klikniecia spacją pojawi sie nowy objekt obj_kula ktory bedzie mial okesloną szybkosc i leciał w kierunku zgodnym z kierunkiem tego całego twojego KOLO

 

Okej 2 pytania z głowy, jest jeszcze trzecie

gdzie wpisywać te kody

Wpisujesz to w akcji : "Execute a piece of code"

 

.......

Jak jesteś początkujący to kod zostaw, pobaw się klockami.

Vardi nie tak ostro! Chłopak musi sie nauczyc tworzyc gry, a ty odrazu wylatujesz z tekstem : Jak jestes początkujący to daj sobie spokuj z GMem i idz sie pobawić klockami lego. No tak ja to odczułem, jesli sie myle to sory.

Odnośnik do komentarza
Udostępnij na innych stronach

Vardi nie tak ostro! Chłopak musi sie nauczyc tworzyc gry, a ty odrazu wylatujesz z tekstem : Jak jestes początkujący to daj sobie spokuj z GMem i idz sie pobawić klockami lego. No tak ja to odczułem, jesli sie myle to sory.

Zgodzę się z Vardim. Na początek trzeba się nauczyć orientować w GM co i jak, a do nauki tego najlepsze są klocki, potem kod, a ty odrazu z klocuszkami lego żeś wyskoczył.

Odnośnik do komentarza
Udostępnij na innych stronach

Co jest w tej ogólnej obsłudze ? Klikanie myszką <_< Jest kilka potrzebnych żeczy które trzeba wiedzieć i nic więcej, tak więc tłumacze :

 

Po uruchomienu GMa pokazuje się nam okno podzielone na trzy części. Po lewej będziesz wstawiać wszystkie "kawałki" gry które dodałeś czyli obiekty (Objects), muzyke, jakieś odgłosy (Sounds), grafike (Sprites i Backgrounds), pokoje (Rooms), ścieżki (Paths), skrypty (Scripts), czcionki (Fonts) i linie czasowe (Time lines). Narazie powinny cię interesować obiekty, pokoje i grafika (chociaż by jakaś symboliczna np. kwadrat, kułekczo). Dodaj teraz jakiś obiekt do gry. Musisz kliknąć na "Add Object" przycisk znajdziesz w menu "Add". Teraz nazwij jakoś obiekt (nie jest to konieczne ale przydało by się zachować porządek). W polu "Name" wpisz jego nazwe. Pamiętaj że nazwa nie powinna zawierać spacji i polskich znaków. Pod polem name masz jeszcze pole "Sprite" tam będziesz ustawiał "obrazek dla obiektu" jednak najpierw go dodaj. Aby dodać grafike kliknij w polu "Sprite" przycisk "New" albo w menu "Add" przycisk "Add Sprite". Podobnie jak obiekt każda sprite (grafika) powinien mieć nazwę. Więc tak samo jak w object wpisz jakąś nazwę dla sprita. Tylko pamiętaj że nie może być spacji i polskich znaków ;) Ok niżej masz "Load Sprite", "Edit Sprite" i "Transparent". Pierwsze służy do załadowania sprita z pliku. "Edit Sprite" służy do edycji sprita w wbudowanym edytorze graficznym GMa. "Transparent" służy do włączenia przezroczystości spita. Pamiętaj że kolor lewego dolnego piksela będzie kolorem przezroczystym. Ok to narysuj jakieś kułeczko :P Teraz wroć do twojego obiektu. Masz go w liście po lewej w zakładce "Object". Kliknij na niego. Teraz w polu "Sprite" wybierz sprita którego narysowałeś. W tym momęcie przyporządkowałeś obiektowi sprita. Ok ale to jeszcze nie koniec. Dodaj nowy pokuj. W menu "Add" kliknij "Add room". Teraz w okienku które ci się pojawiło po lewej. W zakładce "objects" na dole w menu wybierz twój obiekt i kliknij gdzieś na to wielkie szare pole zwane jako "pole gry". Ok, dalej. W zakładce "settings" masz ustawienia rooma (pokoju). Tak jak dla obiektów i spritów jest "Name" jest też "Capition for the room" czyli tytuł rooma który będzie wyświetlany podczas gry. Jest też "Height", "Width" i "Speed". "Height" i "Width" służą do ustawienia wielkości rooma. "Speed" zaś do prędkości jego wyświetlania. Przy powarznych grach można tą wartość zmienić jeśli widać że gra się zacina. Masz jeszcze zakładke "background" czyli tła rooma. Jest tam "Color" który służy do zmiany koloru tła. Jest "Visible when room starts" ta opcja potrzebna jest do wyświetlenia tła jeśli jakieś zostało wybrane. "Foreground image" służy do wyświetlania tła jako pierwsze (kurde nie wiem jak to powiedzieć) a pod tym masz menu do wynboru tła. Jeśli jakieś stworzyłeś to jo zaznacz. Jeśli nie to stwóż klikając w menu "Add" przycisk "Add Background". Edycja tła odbywa się tak samo jak sprita. Ok mówiąc dalej, niżej w zakładce "background" masz "x" i "y" czyli współżędne tła, masz "Stretch" czyli rozciągnięcie tła i jest jeszcze "Hor. Speed" i "Vert. Speed" służące do ustawienia prędkości przesuwania tła. Ok skoro pobawiłeś się już troche roomem to uruchom grę. Robisz to klikając na ten zielony trujkącik który jest u góry. Więc kliknij i rozkoszuj się grą stworzoną w której nic się jeszcze nie dzieje.

 

OK czas pobawić się skryptem (to najbardziej lubie w GM ^_^) aby to zrobić musisz poznać kilka rzeczy. Ok dodaj lub zaznacz stworzony wcześniej obiekt. Masz tam coś takiego jak "Events" (warunki) i "Actions" (akcje). Wstawiasz nowy warunek klikając "Add event" szukaj go na dole. Teraz w tym okienku co się pojawiło masz kilka podstawowych warunków. "Create" czyli "gdy obiekt został stworzony" służy między innymi to ustalania wartości zmiennych ale o tym to zaraz. Masz jeszcze "Destroy" czyli "gdy obiekt zostanie zniszczony" i "Step". W "Step" masz do wyboru "Step", "Begin Step" i "End Step". Nie będe tłumaczył co oznaczają. Powiem tak "Begin Step" początek kroku, "Step" środek kroku i "End Step" koniec kroku. Zazwyczaj będziesz używał tylko "Step". Akcje umieszczone w "Step", "Begin Step" ... będą wykonywane cały czas. No chyba że będzie jakiś dodatkowy warunek w kodzie. Ok to tyle o "Ewents" teraz przejdźmy do "Actions". Tam dodaje się klocki. Ty użyj narazie klocka o nazwie "Execute a peace of code" (zakładka [te po prawej :P] "control" ). Ok dodałeś ? Jeśli tak to pojawiło się okienko z polem do wpisywania kodu tam będziesz wpisywał kod gry. Masz tam też podstawowe narzędzia do edycji tekstu. Ok zamknij okno klikając na tą zieloną wachę. Zatwierdzisz tym zmiany w kodzie. Możesz też wcisnąć ALT+F4 ale program się zapyta czy zapisać zmiany. Zamknołeś ? Ok, to stówż warunek (Event) "Create". Jeśli go masz to dodaj ten klocek wykonania kodu (lub skryptu jak kto woli). Teraz pokaże jak ustalać wartości początkowe zmiennych. Więc aby to zrobić wystarczy nazwa zmiennej, znak "=", wartość zmiennej i znak ";". Na przykładzie :

// Zmienna liczbowa
nazwa_zmiennej=10;

// Zmienna tekstowa
tekst='Nie za duży ten post ? xD';

Pamiętaj że nazwa zmiennej nie powinna zawierać jakich kolwiek polskich znaków i spacji. Jeśli chcesz zastąpić spacje to używaj "_". Nie zaszkodzi. Przyjeło się też że nazwy zmiennych piszemy małymi literami ale czy duża czy mała to bez różnicy. W tym przykładzie pokazałem ci też dwa rodzaje zmiennych pod względem wartości czyli zmienna tekstowa (zawierająca tekst) i liczbowa (zawierająca "liczby" xD ). Oba typy są potrzebne i dziękuj bogu że to nie C++ gdzie tych rodzajów jest więcej. Do zmiennej możesz też przypisać inną zmienną i wykonać zadanie matematyczne (to się tyczy raczej zmiennych liczbowych). Na przykładzie :

a=10;
b=1;
c=10;
d=2;
e=2;

//Dodawanie zmiennej do innej (wynik działania 11)
b=b+a;

// Odejmowanie zmiennej od innej (wynik działania 0)
c=c-a;

// Mnożenie zmiennej przez inną (wynik 20)
d=d*a;

// Dzielenie zmiennej przez inną (wynik 0.2)
e=e/a;

Ale kochany MO ułatwił torche życie i można zamiast zapisywać b=b+a; można zapisać inaczej :

a=10;
b=1;
c=10;
d=2;
e=2;

//Dodawanie zmiennej do innej (wynik działania 11)
b+=a;

// Odejmowanie zmiennej od innej (wynik działania 0)
c-=a;

// Mnożenie zmiennej przez inną (wynik 20)
d*=a;

// Dzielenie zmiennej przez inną (wynik 0.2)
e/=a;

Wynik ten sam a zaoszczędziłeś jedno naciśnięcie klawisza. Możesz też operować "(" i ")" w działaniach tak samo jak w matematyce. Zasady działań są takie same (No prawie :P). I co do działań matematycznych to w GM są zapisane wartości stąłe takie jak pi. Teraz troche o operacjach na tekście. Od tekstu nie możesz czegoś odiąć ale możesz dodać :

tekst='Wlaz kotek na płotek ';
tekst_cd='pie*****ą go młotek';

wlaz_kotek=tekst+tekst_cd;
// Otrzmamy 'Wlaz kotek na płotek pi******ą go młotek' :]

Możesz też skożystać z tych kochanych udogodnień :

tekst='Wlaz kotek na płotek ';
tekst+='pie*****ą go młotek';

// Otrzmamy 'Wlaz kotek na płotek pi******ą go młotek' xD Sadystycznie;)

Proste, prawda ? Ok teraz przejdźmy do warunków. Pierwszym z nich jest warunek jeśli (if) jak go zapisać ? A to na przykładzie :

if(wiek>18)
{
//Tutaj wklepujesz co się ma stać jeśli zmienna wiek jest większa od 18
}

Jak widzisz tu też jest matematyka (więc jeśli nawet na palcach nie umiesz liczyć to daj sobie spokuj z GM). A teraz mały opis innych funkcji :

> - Większe

< - Mniejsze

>= - Większe lub równe (zapis => jest traktowany jako błąd)

<= - Mniejsze lub równe (zapis =< jest traktowany jako błąd)

Są też takie jak "and" (oraz) i "or" (lub). Na przykładzie :
if(a>10 && b<2) // Jeśli a większe od 10 i b mniejsze od 2 to wykonaj akcje
{
a+=1;
b-=1;
}

To był warunek "oraz" (&&) a teraz "lub" :

if(a<49 || b>20) // Jeśli a mniejsze od 49 lub b większe od 20 to wykonaj akcje
{
// Jakaś akcja
}

To jest warunek "lub" (||). Łatwe, prawda ? :] Jeśli operujesz na zmiennej tekstowej to nie możesz wykożystać warunku "jeśli większe/mniejsze" bo nie ma jak. Możesz wykorzystać tylko "=". Tak nawiasem dodam, zapis if(a==b ) nie jest błędem, wręcz odwrotnie. Użycie podwójnego znaku równości jest poprawne. Ponieważ w niektórych językach "=" oznacza "zmień wartość na" a "==" oznacza dopiero znak równości. Jednak w GM jest to obojętne. Więc śmiało możesz śmigać z "=" i "==" ;) Ok kolejny warunek tym razem "while". Służy on do wykonywania akcji jeśli spełniony jest warunek. Jednak wykonuje on te akcje w jednym kroku przez co jest bardzo dobry na np. wyszykanie wolnej pozycji na planszy. Jak powinien wyglądać ? Na przykładzie :

while(a<0)
{
a+=1;
}

Akcja będzie wykonywana dopuki a będzie mniejsze od 0. To tyle o tym warunku. Teraz "do until" czyli rób dopuki. Na przykładzie wygląda to tak :

do
{
a+1;
}
until(a<0)

Podobny do "while" ale różni się tym że wykonuje kod a dopiero sprawdza warunek a while najpierw sprawdza warunek a potem (jeśli warunek spełniony) to wykonuje akcje. Podobne do "while" jest jeszcze "repeat" tylko że ono nie sprawdza warunków. Poprostu wykonuje kod podany ileś tam razy. Na przykładzie :

repeat(10) // Wykonuje 10 razy w kroku
{
a+=1;
}

"repeat" przydaje się gdy chcemy stworzyć kilka obiektów tego samego typu na raz. Teraz troche o kolejnym rodzaju warunku czyli "switch". Po polsku znaczy to przełącznik. "switch" jest podobny do "if" ale ma inną budowe. Na przykładzie :

switch (a)
{
case 1:a+=1;b-=1;break;
case 2:a+=1;break;
}

Jak to działa ? A tak. "switch (a)" powoduje że będzie sprawdzana zmienna a. "case 1" to oznacza to samo co if(a=1). "break" służy do przerwania wykonania kodu jeśli go nie zastosujesz to zostanie sprawdzony kolejny warunek. Ważne jest użycie znaku ":" po "case wartosc". Pokazuje to programowi że ma wykonać akcje będące za tym znakiem. Ok, koniec przełącznika. Teraz "for". Jest to swojego rodzaju pętla. Jej działanie opisze na przykładzie :

for(a=0;a<10;a+=1)
{
b+=a;
}

Już opisuje. W for zapisaliśmy kilka komend i warunek na raz. "a=0" oznacza że na początku wykonywania kodu zmiennej a zostanie przyporządkowane 0. "a<10" oznacza warunek. Kod będzie wykonywany dopuki jest on spełniony. "a+=1" czyli co ma się stać jeśli warunek został spełniony ale nie wpisuj tam innych akcji. Wpisz je tam gdzie "b+=a;". "for" przydaje się do np. tworzenia tablic (o nich zaraz) lub tworzenia obiektów w jakichś odległościach od siebie.

 

Było troche o tworzeniu zmiennych to teraz o tablicach. Jak wygląda tabela ? A tak :

a[0]=10;
a[1]=20;
a[2]=100;

To jest tabela jednowymiarowa. Dwu wymiarowa wygląda tak :

a[0,0]=10;
a[1,0]=20;
a[1,1]=100;

I po co mi table zapytasz się. Też ich nie potrzebowałem jednak przydały się jak trzeba było zapisać kilka set zmiennych ! Bo nie będe tworzył nowej zmiennej tylko poto żeby potem dwa razy ją sprawdzić. Bo :

a='Magiczna zbroja';
b='Zbroja';

obrona=0;

if(a='Magiczna zbroja')
{
obrona=20;
}

if(b='Zbroja')
{
obrona=10;
}

Taki zapis jest niewygodny a przy 20 zmiennych o różnych nazwach napewno wymiękniesz ! Lepiej zrobić to tak :

przedmiot[0,0]='Magiczna zbroja';
przedmiot[0,1]=20;

przedmiot[1,0]='Zbroja';
przedmiot[1,1]=10;

obrona=0;
moj_przedmiot='Zbroja';

for(a=0;a<1;a+=1;)
{
if(moj_przedmiot=przedmiot[a,0])
{
obrona=przedmiot[a,1];
}
}

I teraz moge zrobić ile chce tych przedmiotów (no i zedytować troche "for") i nie musze męczyć się z milionami zmiennych ;)

 

To chyba narazie tyle. Jak tego się nauczysz to będzie kolejna lekcja :P (Myśle że warna za to nie dostane) w razie wątpliwości to daj znać na GG lub looknij do helpa xD

Odnośnik do komentarza
Udostępnij na innych stronach

To obsługę alarmów musze jeszcze wytłumaczyć ? :P

 

OK.

 

Tak więc przeczytaj to co na górze i ...

 

Aby uruchomić alarm trzeba go najpierw ustawić. Więc w create daj :

alarm[0]=10; // Alarm ustawia na 10 kroków

Teraz użyj eventa "Alarm" wybierz z listy "Alarm 0" (gdyż w kodzie ustawiliśmy właśnie "Alarm 0 na 10) i teraz w tym eventcie daj kod co ma się stać jeśli licznik doliczy się do tych 10.

 

Koniec lekcji używania alarmów :P

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...