Skocz do zawartości

Jeden obiekt na view?


Fervi_

Rekomendowane odpowiedzi

Witajcie!

 

Chcę zrobić coś takiego, ale nie wiem czy nie ma natywnej funkcji

Chodzi o to, że po naciśnięciu CTRL pojawia się JEDEN obj_ammo, nigdy jakoś nad tym nie myślałem i bym zrobił to na zmiennej, ale może jest łatwiejszy (optymalny) sposób

 

Fervi

Odnośnik do komentarza
Udostępnij na innych stronach

Dobra, potrzebuję innej pomocy, bo się zgubiłem we własnym projekcie :D

 

(obj_dave.x div 560) * 480

Tak jest obliczany view

 

Chcę, by obj_ammo został niszczony, gdy wyjdzie poza view (w 2 strony, czyli może wyjść w lewo i w prawo)

 

Fervi

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if(view_current=numerview and (x<view_xview[view_current] or x>view_xview[view_current]+view_wview[view_current]))

Pierwsza część nie jest chyba Ci potrzebna, ale coś mi podpowiada że może ci się przydać.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
if(view_current=numerview and (x<view_xview[view_current] or x>view_xview[view_current]+view_wview[view_current]))

Pierwsza część nie jest chyba Ci potrzebna, ale coś mi podpowiada że może ci się przydać.

Chyba ta opcja jest optymalniejsza(przynajmniej tak słyszałem), więc czemu bedziom dostał lubię to? Czy może się myliłem?
Odnośnik do komentarza
Udostępnij na innych stronach

Bo nie ma sensu sobie utrudniać. :) Moje rozwiązanie może nie być najoptymalniejsze, ale pokazuje że można zrobić warunek który sprawdza tylko x.

 

Nie wiem, bo używam enigmy i jest tylko o opuszczeniu rooma, dlatego poprosiłem o kod (który nie wiem czemu nie działa :D (tzn. kompiluje się bez problemu, ale kod coś nie działa, może pomożesz :D)

 

GML
if(view_current=numerview and (x<view_xview[view_current] or x>view_xview[view_current]+view_wview[view_current]))

{

instance_destroy();

}

 

Fervi

Odnośnik do komentarza
Udostępnij na innych stronach

Ok, inne pytanko

 

obj_enemy_spider ma robić pewnego rodzaju kółko, jednak teraz tego nie robi (pewnie jakiś błąd)

 

GML
move_towards_point(obj_enemy_spider.x,obj_enemy_spider.y+20,5)

move_towards_point(obj_enemy_spider.x+100,obj_enemy_spider.y,5)

move_towards_point(obj_enemy_spider.x,obj_enemy_spider.y-20,5)

move_towards_point(obj_enemy_spider.x-100,obj_enemy_spider.y,5)

 

obj_enemy_spider dopisałem, bo nie działał mi kod :D

Według mnie to powinno działać tak - y+20, x+100, y-20, x-100

 

Niemniej wykonuje ruch w lewo tylko, ani się nie wznosi, ani nic. Jakieś sugestie?

 

Fervi

Odnośnik do komentarza
Udostępnij na innych stronach

To wszystko jest w jednym bloku? Tak linijka, pod linijką? :o

Edit: W takim razie wiesz czemu wykonuje się tylko ostatnia linijka. :)

 

Yhm, to czym to rozdzielić? Mam tylko 3 stepy, a 4 linijki :D

 

De facto powinno to być jak w językach skryptowych

 

Fervi

Odnośnik do komentarza
Udostępnij na innych stronach

Powinieneś jakoś sprawdzać czy twój obiekt doszedł już do danego punktu zanim nakażesz mu ruszać do innego punktu. Masz może w tej Enigmie path'y? Bo to jest rozwiązanie dla Ciebie.

 

Właśnie nie działają :|

 

Mam rozwiązanie w postaci 3 stepów, begin, normal i end ...

 

Fervi

Odnośnik do komentarza
Udostępnij na innych stronach

Podziel to sobie na fazy. Zrób zmienną która kontroluje wszytko.

GML
if(faza=0){move_towards_point(obj_enemy_spider.x,obj_enemy_spider.y+20,5)}

Albo lepsze rozwiązanie. Zapisuj sobie do zmiennych pozycje do której ma zmierzać obiekt. Gdy tam trafi (pamiętaj o speed, liczbach zmiennoprzecinkowych etc.) niech wybiera kolejny punkt. A i tak najlepsze będzie zastosowanie path.

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