Skocz do zawartości

Zablokowane Gdy włączę w menu tryb "coop" pojawia się drugi gracz


Rekomendowane odpowiedzi

Yo, ostatnio mi pomogliście i dziękuję wszystkim za pomoc :)

 

Teraz jak widać, mam kolejny problem.

Chcę zrobić platfromówkę ale chcę też tam zrobić tryb multi :P Tzw. Coop

Więc zaraz wszystko wytłumaczę :P

 

Normalnie gdy klika się "Start" w menu, gra ładuje mape z jednym graczem. Chcę aby po naciśnienciu coop było to samo ładowanie tylko, żeby obok pierwszego gracza pojawiał się drugi.

 

Zrobiłem już, że przy naciśnięciu na Coop zmienna, zrobi się zmienna "coop" o wartości "1".

Teraz tylko nie wiem jak zrobić, aby ten gracz się pojawiał. Zrobiłem if(coop=0) i teraz co wpisać, że gdy coop=0 obj_2player się usuwa?

 

 

Bardzo proszę o pomoc

Odnośnik do komentarza
Udostępnij na innych stronach

Tak, tylko wyskakuje mi:

___________________________________________
ERROR in
action number 1
of Create Event
for object obj_2player:

Error in code at line 1:
   if  global.coop=0
             ^
at position 12: Unknown variable coop

 

A dałem w przycisku Start (coop=0) a w przycisku Coop (coop=1)

Odnośnik do komentarza
Udostępnij na innych stronach

___________________________________________
ERROR in
action number 1
of Create Event
for object obj_2player:

Error in code at line 1:
   if global.coop=0
            ^
at position 11: Unknown variable coop

 

Chory ten GM. Chyba się poddam...

Odnośnik do komentarza
Udostępnij na innych stronach

nie chory GM, tylko niezbyt dobre metody ci dają.

kiedy klikasz przycisk coop

GML
global.coop=1;

start gry

kiedy klikasz przycisk single

GML
global.coop=0;

start gry

w obiekcie drugiego gracza

GML (create)
if global.coop=0 instance_destroy();

cała filozofia - ustawiasz global.coop na 0 lub 1, kiedy global.coop ma wartość 0 obiektu drugiego gracza nie będzie

globale nie są wykrywane jak wartości globalne, może być global.costam i costam jednocześnie

 

sprawdź przykład osoby wyżej

Odnośnik do komentarza
Udostępnij na innych stronach

Ty mi zawsze pomożesz :) (EDIT: CANDY :), niestety Jaklub, po czasie ;) ale dziex)

Dzięki, nie idzie dawać pomógł/pomogła?

 

Dziwne, że mi wcześniej nie działało, robiłem prawie tak samo, tylko zmiane roomu dałem osobno klockiem, bo teraz nie wiem jak zrobić efekt przejścia z rooma do rooma w gmlu :<

Odnośnik do komentarza
Udostępnij na innych stronach

transition_kind=0-13

0 = no effect
1 = Create from left
2 = Create from right
3 = Create from top
4 = Create from bottom
5 = Create from center
6 = Shift from left
7 = Shift from right
8 = Shift from top
9 = Shift from bottom
10 = Interlaced from left
11 = Interlaced from right
12 = Interlaced from top
13 = Interlaced from bottom

DZIEKI :)

 

 

A jak zrobić przycisk w GMLu jako zwykłą literę?

Zamiast strzałek --- WSAD :)

Odnośnik do komentarza
Udostępnij na innych stronach

Eh.. Mam jeszcze małe pytanko, jak zrobić wodę?

Próbowałem korzystać z kilku przykładów ale za nic nie mogę zrobić porządnej wody

 

 

...

Chodzi mi, żeby była "przed" graczem, stawiała opór gdy się spada, i gdy się w niej skacze. Chcę też, żeby skoki w niej były wyższe niż normalnie ;)

 

 

EDIT: PROSZĘĘęęęee...

Odnośnik do komentarza
Udostępnij na innych stronach

Robisz coś w stylu że po kolizją z wodą zmienia się jakiś parametr np: global.woda . W opcjach sterowania wpisujesz 2 rodzaje chodzenia.

GML
if global.woda = 1

{/*zwykłe chodzenie, skakanie etc.*/}

if global.woda = 2

{/*to co chcesz żeby było w wodzie.*/}

Raczej wszystkie komendy od tych rzeczy powinny być ci znane xD

 

Edit: Jeszcze coś żebyś pamiętał że po wyjściu z wody gracz chce chodzić normalnie xD

GML
if !place_metting(x,y,obj_woda)

{global.woda = 1}

 

Edit2: Jeszcze coś do pierwszego pytania. Jeżeli ustawiłeś w obj_gracz zmienną globalną i ma z niej korzystać a później w roomie ustawiłeś objekt który ma go tworzyć to powstanie błąd!!! Dlaczego??? Ponieważ kompilator najpierw stworzy obiekt gracza który będzie w swoich zasobach szukał zmiennej globalnej, ale jej tam jeszcze nie ma ponieważ obiekt kontroler stworzy w tej samej klatce, lecz po wykonaniu wszystkich instrukcji dla obiektu gracz. Ten błąd można wyeliminować stosując opcje Room Start/Game Start zamiast Create. Instrukcje tam wykona zanim jeszcze utworzy obiekt gracz, i inne w roomie.

Istnieje jeszcze 2 możliwość. Próbę wykonania instrukcji po utworzeniu wszystkich zmiennych, zazwyczaj po 1 klatce.

Odnośnik do komentarza
Udostępnij na innych stronach

Znowu nie rozpoznaje variable "woda" ;/

Rozumiem, że mam zrobić, że gdy room się włącza to następnuje ta funkcja z wodą. Ale moim pierwszym roomem jest właśnie menu ;/

 

 

Edit:Nie nie, już poprawione. Objekt var ze zmienną woda.

Tylko teraz mam to:

 

 

___________________________________________
ERROR in
action number 1
of Create Event
for object oPlayer:

Error in code at line 54:
   if !place_meeting(x,y,obj_woda) woda = 1 else woda = 0
                         ^
at position 24: Unknown variable obj_woda

 

Edit2: Teraz to też już mam, zła nazwa :P ja mam oWater :P

 

Ale i tak nie działa, gdy wskakuje do wody, wszystko jest normalnie ;/

Wiem, powinno działać, sam nic złego w kodzie nie widze.. A jednak ;/

Help

Odnośnik do komentarza
Udostępnij na innych stronach

Bo to co podaliśmy ci, to tylko zmienna ustalająca, czy jesteś w wodzie czy nie.

Teraz powinieneś napisać sobie dwa kody: gdy jesteś w wodzie i gdy nie jesteś, czyli:

GML
if water = 0

{/*jakiśtam kod poruszania się na powierzchni*/}

else {/*kod poruszania się w wodzie*/}

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if global.woda = 0

{

TU JEST WYSOKOŚĆ SKOKU TARCIE ITD.

}

 

if global.woda = 1

{

TU JEST WYSOKOŚĆ SKOKU TARCIE ITD.

}

 

Może coś żle w if'ach zrobiłem?

 

 

EDIT: @Muchaszewski

nadal coś u mnie nie działa ;( Mam trochę więcej tych funkcji, może powiesz mi co można z tego twojego wywalić a co nie? Bo to troche zakręcone jest :8

 

EDIT2: Zauważyłem, że w ogole NIC nie działa z wodą. Jakby jej nie było. ;/ Dziwne... nik

Odnośnik do komentarza
Udostępnij na innych stronach

Co jest nie tak ? Przecież wyraźnie widać w przykładzie o co chodzi.

IFy są ok, chociaż ja tam wolę else :P . Co możesz zrobić... Więc tak:

1. Ustaw sobie, że jak kolidujesz z wodą, to zmienna jakaśtam woda czy cuś = 1. Potem w if woda=1 wstaw

GMLgame_end()

Jeśli gra się wyłączy po dotknięciu wody, to znaczy, że kolizję dobrze sprawdza.

Zawsze też możesz napisać draw_text i w tym global.woda, wtedy będziesz widział czy prawidłowo ustawia się na 0/1 .

2. Jak już sprawdzanie dobrze działa, zrób w obu IFach ten sam kod, ale w tym, gdzie woda=1 zmień współczynniki - np. tarcie, grawitacja, przyśpieszenie (nie wiem jakie są u ciebie, więc wymieniłem kilka).

Odnośnik do komentarza
Udostępnij na innych stronach

nadal coś u mnie nie działa ;( Mam trochę więcej tych funkcji, może powiesz mi co można z tego twojego wywalić a co nie? Bo to troche zakręcone jest :8

Tak naprawdę można wywalić cały kod xD Ale na co ci to. W tym kodzie ważne jest tylko sprawdzanie czy woda wynosi 1, czy 0. Żadnej wielkiej filozofii. Dobrze by było żebyś pokazał kod, albo wywalił to co nie potrzebne i dał byś linka.

W twoim kodzie możliwe jest że zmieniłeś np: friction i speed.

GML
if woda = 0

{

friction = 0.5

speed = 0.7 //Kod trochę bez sensu ale pokazuje zasadę.

}

 

if woda = 1

{

friction = 0.7

speed = 0.9

}

Obiekt będzie się poruszał tak samo, ale to chyba oczywiste, a ponieważ nie widzimy kodu ciężko będzie pomóc.

 

E: A możliwe jest że twoja woda nie ma maski kolizji :o Teraz pewnie pyt. "Co to jest" xD Daj linka.

Edytowane przez Muchaszewski
Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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