Skocz do zawartości

Zmienianie broni


Rekomendowane odpowiedzi

  • 3 miesiące temu...

kodu nie podam, bo gml nie umiem ale możesz zrobić tak:

-> tworzysz zmienną aktualna_bron, która przechowuje obecnie trzymają broń (na początku wartość 0 - ludek nie ma żadnej broni).

-> dodajesz także tablice w której są przechowywane bronie i każdej przypisujesz wartość np. od 1 do 9 (zakładamy że jest 9 broni) oraz takie tam duperele jak rodzaj pocisku, zadawane obrażenia.

-> tworzysz waruneki - gdy wciśnie się klawisz 1, aktualna_bron zmienia wartość na 1 (czyli na pierwszą broń), gdy klawisz 2 (druga broń), aktualna_bron zmienia się na 2 itd.

 

a co do podnoszenia broni - podobnie, gdy 0 - broni nie posiada, 1 - broń posiada. podnieść broń może np. za pomocą kolizji (dotknął i odrazu broń wskakuje do ekwipunku) bądź warunku - kolizja z objektem broni i wciśnięty klawisz podnoszenia broni (załóżmy 'd').

 

 

tyle z teorii ;] chyba się nigdzie nie pomyliłem :D

Odnośnik do komentarza
Udostępnij na innych stronach

Produkcje:

"Bohter" - |||||||||| 15% - Prace chwilowo wstrzymane bo nie wiem jak zrobić jakąś tablice i zmienną...

kiedy to zobaczyłem to spadłem z krzesła... Nie umieszczaj takich tekstów w sygnaturze bo co to za programista który nie wie co to zmienna :/
Odnośnik do komentarza
Udostępnij na innych stronach

W językach interpretowanych nie musisz się martwić o typ zmiennej.

Deklarujesz ją poprostu:

nazwa=wartość. (czyli np. level=1 - To przykład zmiennej liczbowej. Jeśli chcesz dać zmienną typu string tp piszesz nazwa="tekst"; itd. chyba już rozumiesz? :D )

Poza tym zmienną inicjalizujesz przy jej tworzeniu, najlepiej w evencie Create. W GM występują też zmienne globalne widoczne w całym programie. Deklarujesz ją poprzedzając nazwę zmiennej słowem kluczowym global. Czyli np. global.nazwa="wartosc";

Czy teraz jest to zrozumiałe? :D

Odnośnik do komentarza
Udostępnij na innych stronach

zmienna to pojęcie matematyczne....

 

np w wyrażeniu : x=10 : x jest zminną a 10 wartością

 

Czyli przykładowo napiszesz w evencie "create" jakiegoś obiektu : x=10 , to zmienna x przyjmie przy tworzeniu tego obiektu wartość 10.

Jeśli umieścisz powyższy kod np w evencie "step" tego obiektu w każdym kroku programu zmienna x będzie przyjmować wartość 10.

 

Prościej wytłumaczyć nie umiem :P

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli umieścisz powyższy kod np w evencie "step" tego obiektu w każdym kroku programu zmienna x będzie przyjmować wartość 10.

 

Ustrzegaj się przed czymś takim! Nawet nie wiesz, jak to spowalnia grę ;)

Poza tym spójrz na prosty przykład: sprite_index to tez jest zmienna wbudowana w program. Odpowiada za zmianę sprite'a. Dokładnie każda zmienna jest czymś takim co zajmuje miejsce w pamięci RAM (że tak logicznie się wyrażę) Poza zmiennymi istnieją jeszcze stałe. Od zmiennych odróżnia je to, że nie można zmieniać ich wartości. Ale to już zupełnie inna historia. Czy teraz rozumiesz? :)

Odnośnik do komentarza
Udostępnij na innych stronach

Generalnie - niemal wszystko co ma zmienną wartość (szybkość, numer obrazka w animacji, kolory, amunicja, punkty, dowolne-pierdoły) jest zmienną. Prawda, że proste?

 

Możesz stworzyć zmienną, której wartość to rodzaj broni - np. 1 to pistolet, 2 to shotgun, 3 to nadmuchiwany młotek, 4 to banda karaluchów-gwałcicieli... i tak dalej.

 

Jak się tworzy zmienne (choć w GM w zasadzie się ich nie tworzy) i przyporządkowuje im wartości - masz w helpie. Albo jeszcze lepiej - w tłumaczeniu Marmota (link ze strony głównej GMclanu).

 

Shit - zastanawiam się co mi nagle odskoczyło, żeby to napisać :P Może wcieliła się we mnie Matka Teresa...

Odnośnik do komentarza
Udostępnij na innych stronach

Na twoim miejscu zrobiłbym to na zmiennych na zasadzie:

 

GDY GRACZ "BĘDZIE MIAŁ KOLIZJĘ :P " Z LEŻĄCĄ NA ZIEMII BRONIĄ

 

Zmienna global.bazooka=1

 

PRZY NACIŚNIĘCIU KLAWISZA NP:1 (wybór)

 

if global.bazooka=1

global.bazookaget=1

image_index="numer image`a

 

PRZY NACIŚNIĘCIU KLAWISZA NP:1 (wybór)

 

if global.bazooka=1

global.bazookaget=1

image_index="numer image`a gracza z bazooką"

 

PRZY STRZALE:

 

if global.bazookaget=1 && bazooka=1

"skrypt strzału, a w nim... m.in"

instance_create(x,y,"nazwa obiektu będącego pociskiem od bazooki"

 

PRZY WYJĘCIU INNEJ BRONI (NP:GRANATÓW)

global.bazookaget=0

 

Analogicznie robisz tak dla innej broni. Chyba ci o to chodziło? Wielu może się wydać ten sposób niewygodny, ale ja tak po protu lubię (ew. jestem cienki w GML :) )

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