Skocz do zawartości

Strzelający wróg


Niety

Rekomendowane odpowiedzi

Mam nowy problem:chciałbym wiedzieć:

Co trzeba zrobić żeby wróg strzelał pojedyńczo np co 2 sekundy a nie całym strumieniem, co trzeba zrobić

żeby strzelał dopiero z pewnej odległości i jak zrobić żeby odejmował mi 5hp za każdy strzał

próbowałem komendy: health-=5 ale wyskakuje mi takie coś:

 

 

___________________________________________

ERROR in

action number 1

of Collision Event with object pociske

for object player:

 

Error in code at line 1:

hp-=5

^

at position 1: Unknown variable hp

 

 

PROSZĘ O SZYBKĄ I PRECYZYJNĄ ODPOWIEDŹ,JESZCZE RAZ SORY ZA NOWY TEMAT ;p

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 105
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy w tym temacie

Top użytkownicy w tym temacie

Mam nowy problem:chciałbym wiedzieć:

Co trzeba zrobić żeby wróg strzelał pojedyńczo np co 2 sekundy a nie całym strumieniem, co trzeba zrobić

żeby strzelał dopiero z pewnej odległości i jak zrobić żeby odejmował mi 5hp za każdy strzał

próbowałem komendy: health-=5 ale wyskakuje mi takie coś:

 

 

___________________________________________

ERROR in

action number 1

of Collision Event with object pociske

for object player:

 

Error in code at line 1:

hp-=5

^

at position 1: Unknown variable hp

 

 

PROSZĘ O SZYBKĄ I PRECYZYJNĄ ODPOWIEDŹ,JESZCZE RAZ SORY ZA NOWY TEMAT ;p

 

Hehe, widzę kolega nowy ^.^ Witam więc. Widzę też że kolega nie umie czytać :) Panie kolego, może zamiast "hp", dałby kolega "health" w kolizji?

Odnośnik do komentarza
Udostępnij na innych stronach

Witam nowego pana :)

 

at position 1: Unknown variable hp

Język angielski chłopie, język angielski.

Nieznana jest zmienna hp. Zdefiniowałeś ją w Create? No i tu w poście piszesz, że jest "health-=5" a z errora wyraźnie widzę, że chodzi o zmienną "hp".

Co trzeba zrobić żeby wróg strzelał pojedyńczo np co 2 sekundy a nie całym strumieniem

W obiekcie przeciwnika dajesz :

w Create

GML
strzela=0 // definiujesz zmienną świadczącą o tym, czy obiekt strzela. Odpowiednio : 0 - jeśli nie strzela, 1 - jeśli strzela</span></span></span></span></span>

w Step

GML
if distance_to_object(nazwa_obiektu_gracza) < twoja_odległość and strzela=0 /* jeśli dystans do obiektu nazwa_obiektu_gracza wynosi

mniej niż twoja_odległość i obiekt nie strzela */

{

instance_create(x,y,pocisk) // obiekt tworzy pocisk obok siebie

strzela=1 // ustawia zmienną strzela na 1, co oznacza, że jest w trakcie strzelania

alarm[0]=2*room_speed // ustawia alarm 0 na czas około 2 sekund

}

w Alarm 0

GML
strzela=0 // a przy wykonaniu alarmu 0 przestaje strzelać</span></span></span></span></span>

odejmował mi 5hp za każdy strzał

W Create ustaw początkową ilość żyć, energii czy co tam chcesz, oczywiście w taki sposób, aby to dobrze działało. Na przykład, jeśli chcesz, żeby ilość żyć reprezentowała zmienna hp, to w Create dajesz kod

GML
hp=10 // definiujemy zmienną hp, która ustala, że mamy 10 żyć</span></span></span></span></span>

a w kolizji z obiektem "pocisk" albo czymkolwiek, czym strzela wróg

GML
hp-=5 // odejmujemy 5 hp</span></span></span></span></span>

no i w step (to już opcjonalnie, zależy od tego, jaką chcesz mieć reakcję na brak żyć)

GML
if hp<=0 // jeśli nie mamy już żyć

{

show_message('Aleś waleczny! Przegrałeś!') // pokazujemy wiadomość, której treść widzisz w apostrofach

game_end() // i wyłączamy grę

}

 

E: trochę spóźniony ;/

E2: dobra Karolku, niech Ci będzie - czeindżuję kod na wypadek, gdyby chciał sobie zmienić wartość obrażeń.

Odnośnik do komentarza
Udostępnij na innych stronach

Karolku, przecież nie tworzy się seria pocisków, tylko jeden co 2*room_speed :)

 

zmienna jest nie potrzebna i masz blad w ifie :D

 

if distance_to_object(nazwa_obiektu_gracza) < twoja_odległość and alarm[0]=-1

 

w evencie alarmu musi byc cokolwiek, nawet komentarz

Serio? : O

Ja zawsze robię tak, jak podałem, i efekt jest taki, jak chcę, więc myślałem, że dobrze jest :(

Odnośnik do komentarza
Udostępnij na innych stronach

Nikczemnik.

 

Ale dobra, wracam do problemu i radzę - Niety, poczytaj najpierw troszkę dokumentacji albo chociaż forum, dobrze? To, o co zapytałeś, jest kompletną podstawą, a na problem ze zmienną porwę się z określeniem "ignorancja", bo nawet nie chciało Ci się sprawdzić co oznacza treść errora.

Odnośnik do komentarza
Udostępnij na innych stronach

?

 

no w create ja definiujesz:

strzela=0

 

a potem w step sprawdzasz, czy jest na zero, jesli tak to strzelasz i ustawiasz ja na 1 i ustawiasz tez alarm na 2 sekundy(i juz w nastepnej klatce nie strzelasz, bo jest na 1). za 2 sekundy, alarm sie wykonuje i wrog znowu strzela...

Odnośnik do komentarza
Udostępnij na innych stronach

czyli powinno to wyglądać tak w step?:

GML
if distance_to_object(player) <200 and strzela=0 /* jeśli dystans do obiektu nazwa_obiektu_gracza wynosi

mniej niż twoja_odległość i obiekt nie strzela */

{

instance_create(x,y,pociske) // obiekt tworzy pocisk obok siebie

strzela=1 // ustawia zmienną strzela na 1, co oznacza, że jest w trakcie strzelania

alarm[0]=2*room_speed // ustawia alarm 0 na czas około 2 sekund

}

Odnośnik do komentarza
Udostępnij na innych stronach

mógłby ktoś mi powiedzieć co w tym jest nie tak, bo mam gracza w objektach nazwanego

player i mam sprite zycie tylko kiedy użyje tego kodu:

draw_sprite_stretched(zycie,0,x-16,y-16,health,5)

draw_sprite(player,0,x,y)

 

Wtedy chodze ścianą z życiem nad głową (ściana w obiektach to obj.wall)

 

A i jeszcze jedno mam sprite i obiekt skrzynie i jak zrobić żeby po rozwaleniu jej wylatywały

itemy?

Odnośnik do komentarza
Udostępnij na innych stronach

Mi sie wydaje że pytania były inne po 1 JAK TO ZROBIĆ ŻEBY WYLATYWAŁY ITEMY

po 2 MAM SPRITE ZYCIE BO SE ZROBIŁEM I MAM ŻYCIE W GRZE TYLKO ŻE ZAMIAST

CHODZIĆ GRACZEM CHODZE 1 KLOCKIEM ŚCIANY (JEŚLI NIE ZROZUMIELIŚCIE TO

POWIEDZCIE, ZROBIE EDITA I UŻYJE WIĘKSZEJ CZCIONKI) OK?

Odnośnik do komentarza
Udostępnij na innych stronach

Mi sie wydaje że pytania były inne po 1 JAK TO ZROBIĆ ŻEBY WYLATYWAŁY ITEMY

A mi się wydaje, że możesz samemu trochę pomyśleć.

Podałem Ci jak zrobić, żeby pokazywały się w momencie niszczenia, jak pokombinujesz troche z direction i speedem to będziesz miał.

Przy tworzeniu gier trzeba pogłówkować trochę...

A z takim Twoim nastawieniem jak pokazałeś w tym poście to niedługo nikt Ci nie będzie chciał pomóc

Odnośnik do komentarza
Udostępnij na innych stronach

Proponuję zapoznać się z netykietą.

Co do sprite'ów, na belce na samej górze kliknij Scripts, a z rozwijanego menu wybierz Check Resource Names. Jeśli wyświetli ci jakieś komunikaty, prawdopodobnie będziesz musiał inaczej nazwać te obiekty/sprite'y/itp. od nowa.

Odnośnik do komentarza
Udostępnij na innych stronach

Ok, rozumiem was i przepraszam :( .

Jeśli bylibyście łaskawi mi odpowiedzieć na to to bym był bardzo wdzięczny:

Jak ustawić zmienną, czytałem artykuły lecz nie znalazłem(od gnyska też).

Trzeba stworzyć nowy obiekt?trzeba do niego sprita?Co trzeba wpisać żeby ustawić zmienną

lokalną na hp?I gdzie(w którym obiekcie trzeba wpisać)

Jeszcze raz sory :(

Odnośnik do komentarza
Udostępnij na innych stronach

Zmienne tworzy się w evencie Create. Jeśli stworzysz zmienną hp w obiekcie "bohater", to ta zmienna należy do obiektu "bohater". Można przypisać im dowolną wartość, w dokumentacji jest to dokładnie opisane.

Event Create możesz dodać w dowolnym obiekcie -> Każdy obiekt może posiadać własne zmienne.

Odnośnik do komentarza
Udostępnij na innych stronach

No tak, rozumiem tylko tak to o co w tym chodzi:

mam obiekt player/create/health=100

i mam obiekt enemy/create/health=40

No i w kolizji z pociskiem przeciwnika daje :health-=10.

Ok odpalam gre i ja przyjmuje życia przeciwnika (40) a on ma nieskończoność kiedy strzelam

w niego mi odejmuje żyć

O co chodzi?

Odnośnik do komentarza
Udostępnij na innych stronach

ok już se poradziłem żeby były dwa osobne życia ale teraz gdy strzele w jednego wroga

odejmuje wszystkim hp ;d ale z tym se poradzę. Głównie chodzi o to by go zabiło

bo strzelam w niego 4 razy, pasek życia schodzi a on dalej chodzi.Mam go zapisanego

enemy.

Odnośnik do komentarza
Udostępnij na innych stronach

pewnie masz kolizje ustawioną w evencie pocisku. Zamiast tego wrzuć to do eventu kolizji z pociskiem u wroga.

GML
if hp>0 hp-=25 //jeśli hp jest większe od zera odejmujemy 25

else instance_destroy() //jeśli nie to niszczymy wroga

with(other) instance_destroy() //niszczymy pocisk kolidujący</span>
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ę...