|
Wklejanie obiektu do tła |
| Autor |
Wiadomość |
Ishimura
Chorąży
 
Główny edytor: 
Drugi edytor: 
Pojedynki: nie
Pomógł: 11 razy Posty: 299
4531 Prestiż
|
Wysłany: 10-06-2017, 20:09 Wklejanie obiektu do tła
|
|
|
Siemka, jak wkleić obiekt aktywny z animacją do tła ? Chodzi o to że mam krew, i losuje jej się rodzaj splasha na ziemi. I chce żeby po wybraniu prawidłowej klatki animacji, został on wklejony na tło tak żeby nie obciążał już programu, czyli taki Destroy, tylko krew ciągle jest widoczna ziemi.
Próbowałem z opcją "Paste into background" i "Add backdrop", ale chyba nie potrafię tego poprawnie zrobić bo na liczniku obiektów ciągle są jakieś zaległe i po pewnym czasie gra się zamula. |
|
|
|
 |
Herrios
Sierżant
 
Główny edytor: 
Drugi edytor: 
Skype: 
Pomógł: 4 razy Posty: 106
5532 Prestiż
|
Wysłany: 10-06-2017, 20:34
|
|
|
| Inaczej niż zrobienie różnych obiektów krwi nie da rady, żeby było łatwiej możesz tworzyć obiekt kóry losuje który obiekt krwi ma być zrobiony w jego miejscu, po czym jest usuwany a krew wklejana do tła. |
|
|
|
 |
Ishimura
Chorąży
 
Główny edytor: 
Drugi edytor: 
Pojedynki: nie
Pomógł: 11 razy Posty: 299
4531 Prestiż
|
Wysłany: 10-06-2017, 23:58
|
|
|
| No dobra, ale nawet jak.zrobie kilka obiektów krwi to jak je wkleić do tła po utworzeniu, tak aby nie ciążyły aplikacji |
|
|
|
 |
Herrios
Sierżant
 
Główny edytor: 
Drugi edytor: 
Skype: 
Pomógł: 4 razy Posty: 106
5532 Prestiż
|
Wysłany: 11-06-2017, 00:22
|
|
|
| Ishimura napisał/a: | | No dobra, ale nawet jak.zrobie kilka obiektów krwi to jak je wkleić do tła po utworzeniu, tak aby nie ciążyły aplikacji |
Jeśli to ma nie ciążyć aplikacji to najlepiej zrobić tak aby to były obiekty aktywne które pojawiają się gdy gracz jest blisko a niszczą się gdy gracz jest daleko, możesz do tego użyć arraya. |
|
|
|
 |
msg
Pupogłowy ~~~~~~~~~~~

Główny edytor: 
Drugi edytor: 
Pomógł: 76 razy Posty: 1412
40082 Prestiż
|
Wysłany: 11-06-2017, 09:49
|
|
|
| Ishimura napisał/a: | | Próbowałem z opcją Paste into background i Add backdrop, ale chyba nie potrafię tego poprawnie zrobić bo na liczniku obiektów ciągle są jakieś zaległe i po pewnym czasie gra się zamula. |
| Cytat: |
No dobra, ale nawet jak.zrobie kilka obiektów krwi to jak je wkleić do tła po utworzeniu, tak aby nie ciążyły aplikacji |
Obiekt wklejony w tło dowolną metodą nie stanowi faktycznego obiektu aktywnego. Jeśli na liczniku obiektów masz rosnącą liczbę - masz błąd w implementacji tego mechanizmu. Wklejony w tło obiekt powinien ulec zniszczeniu (ręcznie).
| Ishimura napisał/a: | I chce żeby po wybraniu prawidłowej klatki animacji, został on wklejony na tło tak żeby nie obciążał już programu, czyli taki Destroy, tylko krew ciągle jest widoczna ziemi.
|
| Herrios napisał/a: | | Inaczej niż zrobienie różnych obiektów krwi nie da rady, żeby było łatwiej możesz tworzyć obiekt kóry losuje który obiekt krwi ma być zrobiony w jego miejscu, po czym jest usuwany a krew wklejana do tła. |
Tu też wklejanie w tło dowolną metodą nie robi żadnego problemu. Jeśli dana klatka jest wyświetlana na obiekcie - wklei się ona w tło. Nie pierwsza klatka za każdym razem - dowolna, którą widzisz na ekranie. Czyli jeśli animacja jest odtwarzana a ty w losowym momencie zdecydujesz się wkleić w tło - losowa klatka z pętli animacji pojawi się jako tło. To, że ustalenie dowolnej klatki animacji w CFie działa jak działa (czyli raczej nie działa) to osobna sprawa. Polecam zastosować różne animacje zamiast kolejnych klatek. Losując pośród animacji Stopped, Walking, Running etc. też zapewnisz sobie różnorodność wklejanych w tło obrazków. Wcale nie trzeba bazyliona obiektów, wystarczy jeden z bazylionem animacji.
Podejrzewam, że u ciebie brak różnorodności obrazów wklejanych w tło wynika z tego, że w jednej akcji 1) tworzysz obiekt, 2) ustalasz mu pozycję, 3) ustalasz mu losową klatkę animacji, 4) wklejasz w tło. Krok 3 nie działa, dlatego 4 wygląda tak samo za każdym razem. A brak kroku 5) Zniszcz obiekt powoduje problemy z zasobami. |
_________________
|
|
|
|
 |
Oskar1101
Sierżant
 
Główny edytor: 
Pojedynki: być może
Skype: 
Pomógł: 6 razy Posty: 133
928 Prestiż
|
Wysłany: 11-06-2017, 10:36
|
|
|
| To nie było tak, że wklejanie w tło/backdropy przy włączonym hwa działają trochę jak zwykłe obiekty aktywne pod względem wydajności i limitu obiektów? W sensie robiłem kiedyś testy cząsteczkowe i obiekty aktywne jak i obiekty wklejone w tło i usunięte spowalniały grę w podobny sposób. Może jedynie działały trochę lepiej jak dużo cząsteczek na siebie nachodziło przy wklejeniu. |
|
|
|
 |
Fadex
Legenda #4; #12; #18; #20; #21; #27
 
Główny edytor: 
Pojedynki: nie
Pomógł: 105 razy Posty: 1773
51612 Prestiż
|
Wysłany: 11-06-2017, 11:13
|
|
|
Po wklejeniu do tła musisz zniszczyć obiekt aktywny, jeśli jeszcze tego nie robisz.
Paste image into background powinno być wydajniejsze, ale ma swoje ograniczenia (np. przy przewijaniu ekranu częśći tła mogą zostać usunięte). |
_________________ If it doesn't have to work, I can optimize any code to a runtime of zero. What's your superpower?
wat |
|
|
|
 |
Ishimura
Chorąży
 
Główny edytor: 
Drugi edytor: 
Pojedynki: nie
Pomógł: 11 razy Posty: 299
4531 Prestiż
|
Wysłany: 11-06-2017, 12:45
|
|
|
Dobra już sobie poradziłem. Kombinowałem dobrze, jednak zapomniałem że moje tło to obiekt aktywny, który przykrywał wklejoną do tła krew i dlatego nie widziałem efektu xD
Po wklejeniu całego tła na początku klatki wszystko jest dobrze, obiekty się niszczą, krew zostaje, program nie zamula.
Co do randomowego wybierania klatki, zrobiłem to na loopie for each dla obiektu Krew, gdzie do zmiennej A losowałem liczbę z zakresu klatek i dałem warunek że jak
klatka=zmienna A --> Stop Animation -> Paste Into Background -> Destroy Krew
Wszystko działa, dzięki za odpowiedzi, problem sam rozwiązałem. A tak to u mnie wyglada:
 |
|
|
|
 |
|
|