Skocz do zawartości

if cośtam + coś. Nie potrafię :(


MeloPL

Rekomendowane odpowiedzi

Witam, mam pewien problem. Nie potrafię zrobić czegoś takiego, by jedno "if" dotyczyło dwóch rzeczy naraz. Pragnę zrobić coś w stylu "if (place_meeting(x,y-2,hero))" połączone z "if ziel = true", ale nie wiem, jak to sensownie napisać, by nie było żadnego błędu.

 

Chodzi o to, że warunek "ziel" połączony ze staniem postaci na obiekcie, będzie powodował pewną rzecz (którą umiem wykonać).

Odnośnik do komentarza
Udostępnij na innych stronach

No, więc wcześniej sam nawet korzystałem z "and", ale myślałem, że po prostu to nie działa i trzeba użyć innej komendy. Jednak to działa, a ja myślałem, że nie, bo błąd zrobiłem w czymś innym (lecz nie wiem, w czym).

 

Mój skrypt step zielonego klocka wygląda tak:

if (place_meeting(x,y-2,hero)) and (ziel = true) { znikanie = 1 }
if (znikanie = 1){ image_alpha-=0.05 }
if (image_alpha < 0){ instance_destroy()}

 

Jednak mimo to, że wszedłem w zielony obiekt, który powoduje "ziel = true", to po nastąpieniu na zielony klocek (ze skryptem powyżej), to nic się nie dzieje.

 

Zielony obiekt ma taki skrypt kolizji z bohaterem:

 

ziel = true;
image_alpha-=1;
if (image_alpha < 0){instance_destroy()}

 

Warunek "ziel = false" umieściłem w create bohatera.

 

Gdy ze step skryptu zielonego klocka usunę "and (ziel = true)", klocek normalnie zanika, lecz nie trzeba kolizji z zielonym obiektem, na której mi zależy.

A jeśli jednak zostawie "and (ziel = true)" ze step zielonego klocka, to mimo kolizji z zielonym obiektem, zielony klocek nie zanika przy nastąpieniu na niego.

Odnośnik do komentarza
Udostępnij na innych stronach

Mój skrypt step zielonego klocka wygląda tak:

if (place_meeting(x,y-2,hero)) and (ziel = true) { znikanie = 1 }
if (znikanie = 1){ image_alpha-=0.05 }
if (image_alpha < 0){ instance_destroy()}

 

Jednak mimo to, że wszedłem w zielony obiekt, który powoduje "ziel = true", to po nastąpieniu na zielony klocek (ze skryptem powyżej), to nic się nie dzieje.

 

Zamiast 'if(place_meeting(x,y-2,hero))' użyj 'if(collision_rectangle(x,y,x+|szerokość sprite'a|,y+|wysokość sprite'a|,hero,true,false) = true)'.

Odnośnik do komentarza
Udostępnij na innych stronach

Eh, zastosowałem się do wszystkiego, co tu napisaliście.

 

Zrobiłem dokładnie tak, jak napisał eltix, ale klocek zanikał nawet wtedy, gdy się nie wzięło tego zielonego obiektu.

Poprawiłem na taką wersję, o jakiej napisał (po kolei, w 2 postach) Muuuuczek567, lecz tym razem klocek wcale nie znikał, nie ważne, czy wzięło się ten zielony obiekt, czy nie.

 

Dlatego powtórzę, że mam problem ze skryptem, dzięki któremu po wzięciu zielonego obiektu, a po tym ustanięciu na zielonym klocku, zaczyna on (klocek) zanikać (skrypty, jakie do tego napisałem, które wymagają poprawki, bo nie działają zamieszczone są parę postów wyżej).

Odnośnik do komentarza
Udostępnij na innych stronach

Witam ponownie.

Tak więc dalej mam ten sam problem, o którym napisałem 2 posty wyżej.

 

Do tego właśnie chciałbym też się spytać, co zrobić, by dzięki strąceniu wszystkich klocków z mapy (jeśli wreszcie powyższy problem udałoby się rozwiązać) postać przechodziła do kolejnego poziomu i dostawała (dzięki przejściu do kolejnego poziomu) punkty, oraz aby je traciła przy każdym spadnięciu z mapy?

 

To może być trudne, przynajmniej część z tego, ale póki nikt nie odpowie dalej będę kombinował, jak to zrobić, a przede wszystkim jak naprawić mój problem 2 posty wyżej.

 

Pozdrawiam. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Ok, zrobiłem tak, jak jest napisane wyżej. Wszystko działa (tylko trzeba było zmienić "punkty" na "score"), z tym, że jak już się spadnie, to niestety po powrocie na miejsce początku roomu, nie restartuje się on. Jest na to jakiś skrypt, by room się odnowił po upadku? :D

 

Aha, no i jeszcze jedno - dalej mam problem z tym, że nie potrafię zrobić działającego skryptu na to, by zielony klocek znikał po tym, jak bohater zdobędzie pewien zielony obiekt i na niego nastąpi (na zielony klocek).

 

1. Bohater biega po zielonym klocku, ale klocek nie znika.

2. Bohater bierze zielony obiekt (ma z nim kolizję).

3. Bohater staje na zielonym klocku, który zaczyna zanikać.

 

To chcę osiągnąć.

Na razie umiem zrobić tylko skrypt, by klocek zanikał po tym, jak nastąpi na niego bohater.

 

Mój nieudany skrypt wyglądał w ten sposób:

 

1. W create zielonego obiektu "ziel = false".

2. Po kolizji z gracza z zielonym obiektem "ziel = true"

3. W skrypcie zielonego klocka, gdy bohater na niego nastąpi "and" ziel = true, klocek znika.

 

Jednak skrypt robiony tak, jak napisałem wyżej, po prostu nie działa. :/

Dlatego potrzebuję pomocy.

Odnośnik do komentarza
Udostępnij na innych stronach

Zamieszczam tu mój projekcik:

 

http://www.speedyshare.com/370730969.html

 

Jehttps://forum.gmclan.org/index.php?showtopic=18590#śli ktoś wie, co zrobić z moim problemem powyżej, a nie wie dokładnie, o co chodzi, lub chce specjalnych skryptów z mojego projektu, by sprawdzić, co tam zrobiłem, to niech ściągnie ten projekt i zobaczy, lub spróbuje naprawić ten skrypt, a po tym opisze, co trzeba zrobić, lub zamieści gotowy (projekt).

 

---------------------------------------------------

 

Edit.

 

Zauważyłem, że wątek zszedł z tematu.

Tytuł wątku, to "if cośtam + coś.", czyli nawiązuje on tylko do tego, a sam wątek jednak schodzi na kolejne tematy, co może wielu zmylić (i ma trochę sprzeczności z regulaminem), dlatego postanawiam założyć nowy temat, który będzie kontynuował ten wątek (i będzie do niego oczywiście nawiązywał).

 

Tak więc mój kolejny problem będzie w kolejnym temacie, a ten temat można już zablokować, gdyż został już na początku rozwiązany.

 

Pozdrawiam.

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