Skocz do zawartości

Potrzebna pomoc


Platyna

Rekomendowane odpowiedzi

Potrzebuje pomocy z alarmem w GM.

A więc zrobiłem że podczas kolizji jednego obiektu z obiektem innym zaczyna się odliczanie alarmu ( alarm[0]=30 ) no ale mam taki problem że gdy po kolizji tych objektów szybko stanie się kolizja następnych takich objektów zanim tamten alarm się skończył to ten drugi alarm nie zaczyna się odliczać.

Pomógł by mi chyba skrypt mówiący: "jeśli alarm 0 trwa..." (if (alarm0=właśnie jest odliczany)). Ale nie wiem czy jest taki if. MOże ktoś ma też inne pomysły jak sobie z tym poradzić.

:(

 

Pomóżcie człowiekowi w potrzebie!!

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

aby sprawdzić czy alarm jest właśnie obliczany wystarczy proste zapyyanie:

if alarm[0]>-1

Aby do tego dojść wystarczy dać alarm w draw i wtedy zauważysz, że kazdy laram dąży do wartości -1. Jeżeli spadnie poniżej zera, przestaje się odliczać i wykonuje swoją akcję, oraz ustawia się na -1. Dlatego gdy jest wiekszy od -1 oznacza to, że jeszcze się odlicza.

Odnośnik do komentarza
Udostępnij na innych stronach

W odpowiedzi gnyska jest mala niscislosc... chociaz tok rozumiwania jest prawidlowy :-)

 

Jeśli alarm jest odliczany to jego wartosc jest > 0. Znając ten fakt mozemy napisac instrukcję warunkową ktora to sprawdzi.

 

if (alarm[0]<=0) // jesli alarm nie jest w trakcie odliczania
{
alarm[0] = 30;  // nadaj mu nową wartosc
}

Odnośnik do komentarza
Udostępnij na innych stronach

W create stwórz wartość (Nazwijmy ją roboczo "timer"). ma się równać zero.

 

W stepie:

if timer>0{timer+=1}
if timer>x {niech się dzieje co ma siędziać kiedy skończy się odliczanie} //Pod X podstaw jakaś wartość(Nie wiem ile stepów to jeden Alarm, nigdy z tego nie korzystałem) naprzykład 100

 

w zdarzeniu kolizji daj :

if timer=0{timer=1}

 

To prawie napewno zadziała. A jeżeli powiesz że nie działa, to sprawdź czy wszystko dobrze napisałeś. Dwa razy.

Odnośnik do komentarza
Udostępnij na innych stronach

Create

alarm[0]=10;

Alarm 0

//Twoja akcja

alarm[0]=10;

 

 

An if statement has the form

 

if (<expression>) <statement>

or

if (<expression>) <statement> else <statement>

 

The statement can also be a block. The expression will be evaluated. If the (rounded) value is <=0 (false) the statement after else is executed, otherwise (true) the other statement is executed. It is a good habit to always put curly brackets around the statements in the if statement. So best use

 

 

if (<expression>)

{

  <statement>

}

else

{

  <statement>

}

 

Example

The following program moves the object toward the middle of the screen.

 

{

  if (x<200) {x += 4} else {x -= 4};

}

Odnośnik do komentarza
Udostępnij na innych stronach

No co Ty mi bedziesz mowil ze moj kod nie dziala... masz tu przykład

 

Przykład

 

Ten przyklad jest odpowiedzią na 1 post tego tematu. Pozniej stopniowo zmienialo sie to czego chcesz ( uwielbiam ludzi ktorzy nie potrafią zadac pytania ;) )

Natomiast to :

 

Albo ja nie kapuje tego kodu albo ty źle zrozumiałeś mój problem, bo ja chce zdarzenie (lub skrypt) który mówi "jeśli alarm 0 jest w trakcie odliczania uruchom odliczanie alarmu 1

 

Jest wynikiem nieprawidłowego toku rozumowania :-) Nie ma sensu zastepowac alarmu[0] alarmem [1]. Dlaczego ? Wystarczy ze zderzenia bedą na tyle czeste zeby alarm[0] nadal sie odliczal wtedy alarm[1] bedzie sie zwiekszal nawet wtedy kiedy nie zdązy sie odliczyc jego poprzednia wersja. ( Innymi slowy uzyskasz ten sam problem z ktorym zaczales tylko tym razem na alarmie[1] ) Nie ma sensu tego zageszczac bo ilosc alarmow jest skonczona a czestotliwosc zderzen nie :thumbsup: Pomysl nad alternatywnym rozwiazaniem.

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