Skocz do zawartości

Zablokowane Alarmy


Rekomendowane odpowiedzi

Hejka, mam pewien problem, nie zabardzo wiem jak go wytłumaczyć. Mam w jakimś evencie kod

alarm[0]=30;

Gdy event się wydaży, alarm[0] odlicza 30 stepów, jeżeli w czasie tego odliczania, znów wydaży się ten event, odliczanie zaczyna isć od początku. Czyli jeżeli event będzie wydażał się co 15 stepów, alarm[0] nigdy nie nastąpi. A ja nie chce żeby tak było, chce aby niezależnie od tego co stanie się w ciągu odliczania, alarm[0] zawsze nastepował. Mam nadzieje że mnie zrozumieliście.

Odnośnik do komentarza
Udostępnij na innych stronach

alarm[0]=30 - czyli za 30 stepów event alarm 0 zostanie wykonany. Nie wiem w czym problem ...

 

Ehem xD To jest tak:

1. Ustawiasz budzik (alarm) na 30 kroków (stepów).

2. Budzik zaczyna odliczać od 0.

3. Jeśli budzik = 0 to zaczyna pipczeć (wykona akcję w event alarm)

4. Oczekuje kolejnego nastawienia na N kroków.

 

Teraz przykład "how it works?!" dla opornych :P

if alarm > 0 {
   alarm -= 1;
}
else {
   //Akcja

   alarm = -1;
}

Odnośnik do komentarza
Udostępnij na innych stronach

alarm[0]=30 - czyli za 30 stepów event alarm 0 zostanie wykonany. Nie wiem w czym problem ...

Wiem że event alarmo 0 będzie wykonany po 30 stepach, ale jeśli w w czasie odliczania tych 30 stepoów znów pokaże się kod alarm[0] =30, znowu będzie odliczał od początku. W tym problem.

Może inaczej. Jest event A, w któeym jest kod alarm[0] =30;, kiedy wydaży się event A, zaczyna się doliczanie 30 stepów do eventu Alarm 0. Ale jeśli 15 stepów po evencie A powtórzy się event A, odliczanie rozpocznie się od początku. A je chce aby: event A, po pietnastu stepach znowu event A, po następnych 15 stepach (czyli 30 stepów od pierwszego eventu A) event alarm 0, i po następnych 15 stepach ( czyli 30 stepów od drugiegi eventu A) event alarm 0. Nie wiem jak to wytłumaczyć inaczej.

Odnośnik do komentarza
Udostępnij na innych stronach

Ehhh, mu nie o to chodzi. Micanser, w takim wypadku warto dodać dodatkowy warunek który musi zostac spełniony do włączenia alarmu... np -

if (blokada=true)
{
}
else 
{
alarm[0]=30;
}

w create

blokada=false;

Następnie jezeli alarm ma sie np. włączyć podczas kolizji z innym obiektem, dajmy na to ZYX, to w collision dajemy -

if (blokada=false) 
{
alarm[0]=30;
blokada=true;
}
else
{
}

Alarm zostanie wykonany, i wystarczy w nim dodac jedną linijkę:

blokada=false;

Aby nie było już więcej z tym problemu.

 

A jeżeli chcesz aby obydwa alarmy sie wykonywały, to najprościej jest zmniejszyćz 30 stepów na 15, aby kazdy alarm zdąrzył się wykonać.

Ew. rozdzielić to na 2 wzajemnie oddziałujące alarmy, któe odpalały by się jeden po drugim, naprzemian, ale to raczej głupie jest ;)

Odnośnik do komentarza
Udostępnij na innych stronach

A jeżeli chcesz aby obydwa alarmy sie wykonywały, to najprościej jest zmniejszyćz 30 stepów na 15, aby kazdy alarm zdąrzył się wykonać.
Chce aby obydwa alarmy się wykonał, ale nie moge zminiejszyć 30 sepów do 15, poniewarz niewiadmo jak często będzie występować ten event. Ale już chyba znalazłem inne rozwiązanie.

Mam jeszcze jedno pytanie, gdzie w takim kodzie powinienm wpisać ID obiektu

x=(x,y,OBIEKT).x;

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