Skocz do zawartości

Tworzenie obj bez uzycia alarmow


bobo

Rekomendowane odpowiedzi

Chodz mi oto jak zrobic tworzenie objektow bez uzucia alarmów. Wiem ze mozna to zrobić za pomoca time tylko jak ja robie tak i nie dziala:

Create:

time[1]=0

Step:

if time[1]=room_speed*2
{
instance_create(200,200,obj_pruba)
}

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

hmm, jeżeli tworzysz jakąś zmienną (bo time nie jest żadną zmienną game makera, wymysliłeś ją, więc równie dobrze możesz użyć tralalala[0]), to żeby jej wartość się zmieniała trzeba by coś dodać zapewne. Zatem możesz w step dawać time[0]+=1; i wtedy co każdą sekundę time[0] będzie większa o room _speed, zatem

if time[0]=room_speed*2
{
instance_create(200,200,obj_proba)
}

w drugiej sekundzie stworzy ci obj_proba (próba pisze się przez ó, zatem zmodyfikowałem twoją nazwę obiektu przez u bo wzrokowcy zaraz się nauczą błędów).

Odnośnik do komentarza
Udostępnij na innych stronach

THX Gnysek działa , ale jak zrobic zeby tworzyly np. 5 objektow (oczywiscie nie na raz tylko kazdy osobno po upływie 2 sek.) do myslam sie ze ten kod:time[0]+=1 , za to odpowiada ale jak robie time[0]+=5 to nie działa...

Odnośnik do komentarza
Udostępnij na innych stronach

Ulepszamy to:

if time[1]=room_speed*2
{
instance_create(200,200,obj_pruba)
time[1] = 0; 
}

 

I teraz przyjrzyjmy sie... Caly czas w stepie dodaje sie do time[1] +1, a gdy rowne bedzie room_speed*2 towrzy obiekt i zeruje co prowadzi do ciaglego twoznie, czyli cos jest nie tak, ale juz jest lepiej bo tworzymi nie jeden, a kilka obiektow... Pomyśmy co by tu zmienic... Hmm... Chyba najłatwiej było by dodac licznik. Poweidzmy zmienna licznik = 0. I teraz:

 

if (time[1]==room_speed*2 && licznik <= liczba obiektow ile mamy stworzyc)
{
instance_create(200,200,obj_pruba)
time[1] = 0; 
licznik++;
}

 

Mozna by to zrobic bez probroblemu na petli for, ale trzeba w tedy dać, że dodajemy do licznika pętli tylko, jeżeli będzie ten warunek spełniony...

 

Przepraszam, że tak namieszałem i mam nadzieje, że zrozumiesz!

 

PS.: To tylko teoria, nie wiem, czy będzie działać...

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

jeżeli obiekt ma się tworzyć co 2 sekundy to można to zrobić na jednym alarmie.

dajesz w create alarm[0]=60;//czyli room_speed*2

a w alarm0 dajesz instance_create(x,y,obj); alarm[0]=60; i po sprawie

Odnośnik do komentarza
Udostępnij na innych stronach

Przecież powiedział, że nie ma już alarmów :(, chyba, że zrobi jakąś zmienna, która je kontroluje i gdy jakiś jest wolny to używa go do tego... To by wyglądało mniej więcej tak:

 

[ALARM0] if (akcja == 0) {zrób to} else if (akcja == 1) {zrób co innego}

 

To mogło by pozowlić na wykorzystanie jednego alarmu w wielu celach, ale nie wiadomo czy są momenty, gdy jakiś alarm jest bezczynny i mozna go użyć..

Odnośnik do komentarza
Udostępnij na innych stronach

NIestety nie działa chyba ze robie cos źle czy ten kod jest gotowy czy trzeba w nim cos zmienic ?

pisze tak:

if (time[1]==room_speed*2 && licznik <= 5)
{
instance_create(200,200,obj_pruba)
time[1] = 0;
licznik++;
}

w create:

licznik = 0

 

Oczywiscie pisze to w objekcie interfejsu...

Wyskakuje mi taki bład:

licznik ++;

at position 10:Asignment operator expected

Odnośnik do komentarza
Udostępnij na innych stronach

Szczerze odpowiem na ślepo bo nie czytałem tematu. No ale wydaje mi się ,żeby coś się skończyło tzreba wprowadzić ograniczenie czyli jeżeli jakaś zmienna osiągnie to to się stanie coś tam. np.:

if zmienna > 100
zmienna=100

Czyli zmienna nie przekroczy 100.

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