Skocz do zawartości

pankracy

Użytkownicy
  • Postów

    320
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Odpowiedzi opublikowane przez pankracy

  1.  

     

     

    Dzięki wielkie za pomoc ;) zaraz zerknę;)

     

    https://gmclan.org/up7193_12_gilotyna_by_czo_g.html

    trzymaj kolego, zrobiłem dla Ciebie przykład. Nie wiem, czy o to Ci dokładnie chodziło, ale potłumaczyłem Ci tam dokładnie co się z czym je

     

    Czołgu krymski zaczyna coś się dziać;) ale gilotyna tylko raz odpada i wraca do początkowego stanu,a potem już jest nieruchoma cały czas... na tym Twoim przykładzie..

  2. Cześć wszystkim

     

    Zrobiłem sobie w grze gilotyne no i ostrze,które opada i podnosi się dałem

     

    Vspd=4;

    A na krawędziach końca gilotyny ustawiłem niewidzialne obiekty od których ostrze sie odbija,no w porzadku,ale chciałbym uzyskać inny sposób ruchu ostrza gilotyny,czyli jest ostrze na górze po chwili naturalnie opada i znów sie za chwile podnosi,czyli typowe zachowanie gilotyny i o coś takiego mi chodzi.

    Ktoś z was wie jak to zrobić??

     

     

     

    Ech nie działa to jak trzeba..dalej mam ruch typu góra doł ,a nie gilotynowy:/

  3. W górnym niewidzialnym obiekcie ustaw, że gilotyna ma czekać.

    Zgaduję, że korzystasz z kolizji, więc w ostrzu w kolizji daj np vspd=0 i alarm[0]=x;

    A w alarmie ustawiasz vspd=4 i tyle :)

     

    no dobra zrobiłem tak:

     

    obj_ostrze_gilotyna

     

     

    create

    GML
    vspd=0;

    alarm[0]=3;

     

     

    Alarm 0

     

    GML
    vspd=4;

     

     

     

    Tylko teraz nie wiem..co wpisać w obiekcie niewidzialnym,żeby kazał czekać gilotynie

  4. W górnym niewidzialnym obiekcie ustaw, że gilotyna ma czekać.

    Zgaduję, że korzystasz z kolizji, więc w ostrzu w kolizji daj np vspd=0 i alarm[0]=x;

    A w alarmie ustawiasz vspd=4 i tyle :)

     

     

     

     

    Hmmm...bo tak mam dwa sprity jeden jest stały,a drugi to właśnie ostrze;)

    w stałym nie mam nic;) a w ostrzu dałem vspd=4;

    no i klocki,od których się odbija..

     

    dobra to zrobie alarm i ustawie czas;) pokombinuje;)

     

    dziękuj Boad;)

  5. Cześć wszystkim

     

    Zrobiłem sobie w grze gilotyne no i ostrze,które opada i podnosi się dałem

     

    Vspd=4;

    A na krawędziach końca gilotyny ustawiłem niewidzialne obiekty od których ostrze sie odbija,no w porzadku,ale chciałbym uzyskać inny sposób ruchu ostrza gilotyny,czyli jest ostrze na górze po chwili naturalnie opada i znów sie za chwile podnosi,czyli typowe zachowanie gilotyny i o coś takiego mi chodzi.

    Ktoś z was wie jak to zrobić??

     

  6. Pokoje w scenerii są około 4000x4000.

    Za pomocą LICEcap. To jest coś jak fraps, ale zapisuje do gifa :P

     

     

    Dzięki za informacje Boad;) nie długo i ja zamieszcze tu parę screen z mojego debiutu;)

    to mam też w podobnej wielkości pokoje,co ty,czyli texture page masz ustawione na 4096x4096 czy mniej? bo pewnie jak grafike ci będzie scalowało,to lipnie to będzie wyglądać;)

     

    A gierka Twoja fajna i trzymam kciuki;)

  7. Dobry wieczór wszystkim mam dość taki specyficzny problem...może najpierw opisze o co chodzi.

     

    Mam platformę,która w momencie,kiedy wskoczę na nią bohaterem,to za moment znika,i za chwile się odradza..

    problem polega tego typu,że np jeśli wskoczyłem na platformę,potem ona zniknęła,a ja zająłem jej miejsce,gdzie powinna się znaleźć,zaraz się pojawia,mój bohater znika...

    nic już potem nie mogę zrobić w grze.Jak to naprawić żeby to nie miało wpływu na to,że zajmę jej miejsce? żeby bohater nie zniknął,tylko był i żeby to nie miało wpływu na nic..ewentualnie żebym zginął jak zajmę jej miejsce i start_x i start_y lub mnie lekko odbiło obok.

     

    tu kod mojej znikającej platformy

     

    create

     

    GML
    image_speed=0;

     

    Alarm 0

     

    GML
    instance_change(obj_znikajacy_maly,true);

    audio_play_sound(dzwiek_znikajaca_platforma, 1, false);

     

     

    step

     

     

    GML
    f ( place_meeting( x, y - 1, obj_bohater ) )

    {

    if ( alarm[0] <= 0 )

    {

    image_speed=0.15; //szybkosc zmiany spritow przy zanikaniu platformy

    alarm[0] = room_speed*1; // tu ustawiamy czas po jakim ma platforma zniknac

    }

    }

     

     

    obj_znikajacy_maly

     

     

    create

     

    GML
    alarm[0] = room_speed * 3;

     

     

    Alarm 0

     

    GML
    instance_change(obj_platforma_znikajaca_mala,true);

     

     

    A druga sprawa chciałbym wykorzystać ten kod platformy w taki sposób,żeby bez ingerencji mojej,czyli bohatera jak na nią wejdzie..Żeby platforma sama czasowo się pojawiała i znikała..

     

    Dziękuje z góry za pomoc..Pan Pankracy z piątku;]

  8. Tak jak myślałem. Na siłę próbowałeś optymalizować coś co nie wymagało optymalizacji. Mam nadzieję że sprawdziłeś jak wypada to bez dezaktywacji?

    Następny krok jaki możesz zrobić to wykonywać dezaktywację nie co step, a w alarmie. Tylko wtedy nie zapominaj że rozmiar aktywnego obszaru musi być adekwatnie większy.

     

    Wrzuć gdziekolwiek w create gdzie wykona się tylko raz. Nie musisz robić żadnych warunków, bo ta funkcja od niczego nie zależy. Nie ma czym zaszkodzić, a najwyżej się nie powiedzie. Tak czy inaczej użycie jej oznacza wczytanie wszystkich potrzebnych atlasów od nowa. Nie twórz nowego obiektu bo to nie ma sensu. Nie potrzebne dodatkowe dane.

     

    I jeszcze raz powtarzam. draw_texture_flush() Nic Ci nie da. Nie poczujesz żadnej różnic. Nawet nie będziesz wiedział czy zadziałało poprawnie czy nie. Jest bardzo mało przypadków w których ta funkcja na prawdę pomoże (np: wyrzucenie z pamięci nie używanej już czcionki) ale to nie będzie miało wpływu na grę.

     

     

     

    Dzięki Threef za cenne uwagi.

    Tak sprawdziłem jak to wygląda bez dezaktywacji.

    W tej formie jest lepiej niż bez dezaktywacji,bo zyskuje więcej klatek.Sprawdzałem,testowałem...

  9. Tak, ale wszystko zależy od tego co się dzieje u ciebie w grze. Musisz najpierw sprawdzić czy to ma jakikolwiek sens. I jeszcze raz powtarzam: Spróbuj całkiem bez dezaktywacji.

    No i wszystko sprawdzaj profilerem w debugerze!

     

    Dzięki za informację zaraz sprawdzę w debugerze.

     

     

    Zrobiłem tak i zyskałem ponad 10 klatek..sporo jest dobrze;)

    W debugerze też sprawdzałem;)

     

    GML
    instance_deactivate_all(false);

    instance_activate_region(view_xview[0]-128,view_yview[0]-128,// początek regionu, w ktorym aktywuje obiekty

    view_wview[0]+192,view_hview[0]+192,true); // dlugosc i wysokosc regionu

    //niżej dodałem kilka obiektów stałych w grze,których niedezaktywuje</span>

     

     

    ok,to już działa jak należy,a wracając do tego draw_texture_flush();

    wrzucić,to na mapie,gdzie jesc sceneria w jakiś pusty obiekt w create?

    czy posłużyć się obiektem w który zarządza moimi życiami,energią,hudem itp elementami gry i tam w create to wrzucić?

    czy wystarczy wtedy samo draw_texture_flush();? czy może ma być to w jakimś warunku,że np jeśli opuszczam pokój,to wtedy draw_texture_flush();? jak to w końcu ma być???

  10. Chcę zauważyć że wykonanie
    aktywuj wszystko
      dezaktywuj wszystko poza view
      aktywuj wszystkie obj_solid

    w pewnym momencie będzie bardziej zamulało grę niż zostawienie tego bez dezaktywacji. Jeżeli masz dużo takich obiektów to podczas jednego step wykonasz 3 operacje na każdym z tych obiektów w room. Zastanów się jak wiele jest takich obiektów. Może efektywniej będzie robienie tego na opak? Czyli dezaktywowanie tylko wybranych rodzai obiektów a potem aktywowanie wszystkiego w zasięgu view?

    Zrób teraz profilowanie, zobacz co i ile Ci zżera czasu na operacje. Potem wywal wszystko dotyczące dezaktywacji i sprawdź ponownie.

     

     

     

     

    Threef to dobry pomysł zrobić to odwrotnie...bardziej efektywniej,czyli tak jak mówisz dezaktywowanie tylko wybranych rodzai obiektów, a potem aktywowanie wszystkiego w zasięgu view.

     

    czyli coś takiego?

     

     

    GML
    instance_deactivate_object(obj_wrog_smok);//deaktywuje np wroga,który jest poza zasięgiem mojego view

    itd

     

    instance_activate_region (view_xview[0]-128,view_yview[0]-128,

    view_wview[0]+192,view_hview[0]+192,false,true); // aktywuje tu wszystko w moim zasięgu

     

     

     

     

  11. Nie mam pojęcia jak masz elementy ustawione na mapie, ale twój kod dezaktywacji wygląda na przeciwieństwo "dobrze".

     

    Te funkcje dezaktywują tylko i wyłącznie obiekty. Napisałeś że twoje mapy składają się na: tło, drugą warstwę tła jako scenerię i ustawione niewidzialne obiekty solid. Więc teraz po twojej liście wyjątków stwierdzam że chyba nic nie dezaktywujesz.

     

    Poza tym zasięg instance_deactivate_region() masz źle. Argumenty to x, y, szerokość i wysokość. Jako że zaczynasz x i y o 128px wcześniej to musisz w i h zrobić większe, ale nie o 128 bo wtedy kończy się na krawędzi. w i h musisz dać większe. I mam nadzieję że wiesz skąd są te wartości? To ma być połowa szerokości/wysokości największego dezaktywowanego obiektu. (W skrócie, bo to zależy od origin.)

     

     

    Edit: Poza tym to wygląda jakbyś na siłę szukał nie istniejącego problemu. Coś wiesz ze jest nie tak, ale nie wiesz gdzie szukasz. Dezaktywacja obiektów nie pomoże w żaden sposób z grafiką. A draw_texture_flush() nie pomoże w czyszczeniu pamięci, bo GM sam zwalnia z pamięci to czego nie potrzebuje. Ilość texturepages nie spowoduje komunikatu o braku pamięci, ale już za duży ich rozmiar tak. I jak gnysek napisał (co też pisałem ale widocznie nie dostatecznie zrozumiale) wolne jest przeskakiwanie pomiędzy różnymi teksturepages podczas rysowania..

     

     

     

     

    Dobrze mapa to background,ale obiekty to sprity,jak wrogowie,pułapki ruchome przeszkody,itp elementy na tej mapie,więc ma to jakiś sens cokolwiek dezaktywować.

    No dobrze...czyli muszę poprawić h view_hview i w view_wview na większy niż mam ustawione pozostałe. Np na 192?

    Co do pamięci grafiki to poprostu tne scenerie na równe kwadraty po 1024x1024 i powinno być dobrze..wiem,że to wyżej nie pomaga z pamięcia grafiki,ale doczepiłem to do tego tematu;) za to zyskać w grze każdą cenną klatkę gry bezcenne;]

     

     

    GML
    ///Aktywacja i dezaktywacja po za widokiem obiektow w grze

    instance_activate_all();

    instance_deactivate_region(view_xview[0]-128,view_yview[0]-128,// początek regionu, w ktorym dezaktywuje obiekty

    view_wview[0]+192,view_hview[0]+192,false,true); // dlugosc i wysokosc regionu

    instance_activate_object(obj_kontroler_gry);// tu dodaje wyjątki w grze,które chce żeby się nie dezaktywowały

    instance_activate_object(obj_kontroler_pokoju);

    instance_activate_object(obj_solid);

    instance_activate_object(obj_napis_do_planszy);

    instance_activate_object(obj_energia);

    instance_activate_object(obj_spawn_potwor);

    instance_activate_object(obj_spawn);

    instance_activate_object(obj_spawn_ptak);

    instance_activate_object(obj_wrog_smok);

    instance_activate_object(obj_hazard);

    instance_activate_object(obj_spadajace_kolce);

  12. Jeżeli masz jeden wielki background pokrywający całą mapę to nie da rady. Tamte rozwiązanie ma sens jedynie przy tiled background.

     

    No właśnie tak mam,że background jest całą mapą.

    Ech szkoda,że nie mogę z tej funkcji skorzystać..no nic pozostaje mi tylko deaktywacja i aktywacja regionów czyli:

     

     

    GML
    ///Aktywacja i dezaktywacja po za widokiem obiektow w grze

    instance_activate_all();

    instance_deactivate_region(view_xview[0]-128,view_yview[0]-128,// początek regionu, w ktorym dezaktywuje obiekty

    view_wview[0]+128,view_hview[0]+128,false,true); // dlugosc i wysokosc regionu

    instance_activate_object(obj_kontroler_gry);// tu dodaje wyjątki w grze,które chce żeby się nie dezaktywowały

    instance_activate_object(obj_kontroler_pokoju);

    instance_activate_object(obj_solid);

    instance_activate_object(obj_napis_do_planszy);

    instance_activate_object(obj_energia);

    instance_activate_object(obj_spawn_potwor);

    instance_activate_object(obj_spawn);

    instance_activate_object(obj_spawn_ptak);

    instance_activate_object(obj_wrog_smok);

    instance_activate_object(obj_hazard);

    instance_activate_object(obj_spadajace_kolce);

     

     

    tak chyba jest dobrze?

     

    view mój jest 800x600 ustawiony

  13. Ładowanie do pamięci niepotrzebnie to akurat nie problem, problem to przeskakiwanie między teksturami - np. rysowanie na różnych depth-ach tego samego sprite, podczas gdy pomiędzy przeskakujemy. Ja się swego czasu zastanawiałem, czy nie zrobić jednego obiektu który pokolei rysuje obiekty z tym samym sprite za pomocą with(), a wszystkie obiekty mają visible na false. To by świetnie przyspieszyło grę, ale w pizdu roboty.

     

     

    Gnysek twój pomysł jest całkiem dobry ale dość skomlikowany i pracochłonny.

    Ktoś wie jak to rozwiązać? Bo nie chce w pewnym momencie dostać komunikatu,że pamięć video jest zapełniona.

     

     

    Threef do Ciebie też będe miał sprawę,ale to napisze w wątku,gdzie daleś przykład...chodzi mi o dezaktywowanie backgrounda poza rejonem widoku,bo opisywaleś to,ale to jest dobre rozwiązanie dla gry,która ma scenerie zbudowaną ze spritów,u mnie background 0 to tło a background1 to sceneria z nałożonymi niewidzialnymi solidami.

    Taka dezaktywacja tła przy mojej dość dużej scenerii dałoby dobry efekt i zyskałbym więcej klatek,bo obecnie dezaktywuje tylko obiekty na mapie,co też dało dobry efekt.

  14. Po prostu wejdź w Global Game Settings i tam gdzieś będziesz mieć opcję podglądu twoich texturepages. Otworzy Ci się folder z nimi i sam będziesz mógł zobaczyć czy wszystko jest ok. Pamiętaj że jak będziesz próbować wsadzić grafikę o większy rozmiarze niż texturepage to zostanie ona zeskalowana.

     

    Twój cel jest taki aby w jednym room było jak najmniej zmian texturepages. Jeżeli na jednym zmieścisz wszystkie postaci, elementy interfejsu, particle, etc. To na drugim możesz wciskać grafiki pierwszego zestawu leveli. Pierwszy atlas (tak poprawnie się nazywają texturepages) będzie w grze wczytany zawsze, ale drugi tylko na odpowiednim levelu.

     

    Tylko nie próbuj na przykład wrzucać wszystkich teł na jeden atlas. To nie ma sensu, więc spróbuj odpowiednie tło wcisnąć na odpowiedni atlas. Jak jedna mapa nie zmieści Ci się na jednym atlasie, to zrób tak aby ten dodatkowy zawierał jak najwięcej uniwersalnych elementów. Bo posiadanie wczytanych atlasów: postaci, pierwszego levelu i atlasu ze "śmieciami" jest lepsze niż wczytywanie 6 różnych z których czasami pobierasz jedną grafikę.

     

     

     

    No tak parę map mam w grze 3000x1500(background u mnie ustawiony jako mapa scenerii z nałożonymi niewidzialnymi solidami) wobec tego zmuszony byłem texturepage ustawić na 4096x4096 wiem,że to już sporo,ale kiedy próbuje pociąć mapę 3000x1500 na pół to wychodzi źle,bo pojawiają się wtedy linie pionowe w grze mimo,że przycięte było dobrze czyli na 1500x750.Czytałem,że to muszą być kwadraty czyli np tych linii nie było by wtedy,kiedy moja sceneria załóżmy miała by rozmiar 4096x1024 wtedy podzieliłbym to na cztery części po 1024x1024 i linii pionowych by nie było,a przy takich proporcjach jak mam 3000x1500 to linie powstają poprawcie mnie jeśli się mylę.

    Dlatego zmuszony byłem zostać przy texturepage 4096x4096.

     

    Threef cały świat jeden pogrupowałem sobie w texture group tak i przypisałem do odpowiednich folderów:

     

    Świat 1 podzielony na 5 folderów a w nich

    1.folder pierwszy zawiera mapę 3000x1500 ze sceneria i tło tez o tej wielkości

    2.folder drugi zawiera kolejną mapę 3000x1500 ze scenerią i tło o tej wielkości

    3.folder trzeci zawiera kolejną mapę 3000x1500 ze scenerią i tło o tej wielkości

    4 folder czwarty zawiera kolejną mapę 3000x1500 ze scenerią i tło o tej wielkości

    5 folder piąty zawiera mapę 1000x1000 ze scenerią i tło o tej wielkości

     

     

    kolejny folder to elementy menu które praktycznie nie występują już w czasie gry czyli:

     

    folder elementy menu a w nim

     

    grafika sprity menu loga,tła od menu i czcionka użyta w menu gry i w intro

     

     

     

    Następny folder elementy stałe gry a w nim wszystkie elementy,które występują w całym świecie w pięciu planszach

    czyli hud,elementy do zbierania jak punkty,monety,wrogowie efekty cząsteczkowe sprite bohatera,czcionka użyta w danym świecie.

     

     

    Dobrze by było zrobić tak,że np kończę scenerie 1 no i przechodzę do drugiej i żeby nie ładowało niepotrzebnie do pamięci scenerie 1 bo to w końcu spora mapa sceneria 3000x1500 i tło do niej też i tak z kolejnymi sceneriami,bo jest ich pięć.

  15. Tylko słowem upewnienia, kiedy mówisz, że masz osobno poukładane, masz na myśli, że w Global Game Settings>Textures masz porobione dodatkowe "Texture Groups" i przypisujesz spirty/tła do tych grup na podstawie tego które z którymi się pojawiają?

     

     

    Tak dokładnia tak sobie pogrupowałem w ustawieniach sprity,tła,dźwięk.

    W kazdym swiecie mam przypisana odpowiednia grupe spritow,dzwiekow,i tla.

  16. Wystarczy że użyjesz raz w create jakiegoś obiektu. Upewnij się jednak czy ten obiekt występuje tylko raz.

     

    Ale problem jest taki że ta funkcja wcale Ci nie pomoże. Ona nie czyści pamięci. Ona jedynie zwalnia z pamięci poprzednio wczytane texturepages. Wszystkie. Po czym one zostają od razu wczytane ponownie. Samo wczytanie jest dość ciężką akcją więc nie powinno nigdy być używane co step.

    Tak więc użycie draw_texture_flush() pomoże TYLKO w wypadku gdy masz perfekcyjnie rozdzielone sprite na texturepages. Co przez to rozumiem? Masz np osobny do grafik z menu i osobny dla map. I żadna z grafik użytych na tym od menu nie jest nigdzie użyta w mapach. Wtedy ten pierwszy zostanie wyrzucony z pamięci, ale jeżeli odniesiesz się gdzieś do jakiejś grafiki z menu to znów zostanie on wczytany.

     

    Więcej optymizacji uzyskasz jeżeli spakujesz jak najwięcej grafik na jak najmniej texturepages.

     

     

     

    Właśnie u mnie jest tak,że grafikę do menu i grafikę do poszczególnych map mam osobno pookładana,(sprity.tła itp)więc defakto powinno to trochę pomóc.

    Dobrze rozumiem,że wrzucam w pierwszym roomie,gdzie zaczyna się plansza z grą..w create dowolnego obiektu draw_texture_flush(); bez żadnego warunku if? itp?

    Sprawdziłem też,nigdzie u mnie w kodzie gry nie występuje funkcja draw_texture_flush();

     

     

    Threff dokładnie co masz na myśli,że lepszą optymalizację uzyskam spakowanie grafiki jak najmniej w texturepages?

     

    załózmy teraz mam scenera i tło w rozdzielczości 3000x1500 tak samo w tej rozdzielczości mam scenerie i na nią nałożone niewidzialne solidy,wiem wiem zbyt duża sceneria,ale kolejne mam już mniejsze po 2000x800 texturepage mam ustawioną na 4096x4096 ale chyba lepiej ją zmniejszyć i próbować to upychać? mógłbyś mi to konkretnie wyjaśnić co dokładnie zrobić?

  17. Cześć wszystkim..

    chciałbym w końcu skorzystać z tej funkcji,załóżmy jestem w pierwszym pokoju,i kiedy przejdę do kolejnego pokoju chciałbym zwolnić pamięć żeby niepotrzebnie ładowały się zasoby z pokoju1

    Moje pytanie,gdzie to zastosować? czy w create utworzyć pusty obiekt,gdzie będzie np if room end dra_texture_flush();

     

     

    GML
    if room_exists draw_texture_flush();

    {

    room_goto(room2);

    }

     

     

    Kurcze nie wiem jak to dokładnie zrobić żeby prawidłowo zwalniało pamięć z poprzedniego pokoju.

    Pomóżcie proszę

  18. Witam wszystkich

     

    Nie wiem w czym tkwi problem...bo nie mogę utworzyć palącej się pochodni..próbuje z emiterami i coś mi nie wychodzi..o ile udało mi się narysować wokół pochodni światło,które działa,to już sam ogień nie działa..jest tylko mały piksel nad pochodnią:/

    Proszę o jakąś radę pomoc... z góry dziękuje.Posiadam game maker studio

    tu niżej kod

     

    obj_pochodnia

     

    create

     

    GMLglobal.ps = part_system_create();

    global.pt = part_type_create();

    global.pe = part_emitter_create(global.ps);

     

     

    step

     

    GMLpart_emitter_region(global.ps, global.pe, x-1, x+1, y-1, y+1,ps_shape_rectangle, ps_distr_linear);

    part_emitter_burst(global.ps, global.pe, global.pt, 1);

     

     

    draw

     

    GMLr = random(0.2)-random(0.2);

    draw_set_blend_mode(bm_add);

    draw_sprite_ext(spr_effect, 0, x, y+14, 1-r, 1-r, 0, c_yellow, 0.5);

    draw_sprite_ext(spr_effect, 0, x, y+14, 1-r, 1-r, 0, c_red, 0.2);

    draw_set_blend_mode(bm_normal);

    draw_sprite(sprite_index, 0, x, y);

     

     

    obj_core

     

    create

     

    GMLscr_part_init();

     

     

    no i sam skrypt

     

    GMLglobal.ps = part_system_create();

    global.pt = part_type_create();

    global.pe = part_emitter_create(global.ps);

    part_system_depth(global.ps, -99);

    part_type_shape(global.pt, pt_shape_flare);

    part_type_blend(global.pt, true);

    part_type_alpha2(global.pt, 1, 0);

    part_type_color_mix(global.pt, c_red, c_yellow);

    part_type_direction(global.pt, 90, 90, 0, 0);

    part_type_speed(global.pt, 0.1, 1, 0, 0);

    part_type_size(global.pt, 0.2, 0.3, 0, 0);

    part_type_life(global.pt, 50, 75);

     

     

    Chyba,że ktoś ma prostszy sposób na stworzenie pochodni..Nie wiem już co mam z tym zrobić.

     

     

     

    Uzjel no przecież dałem wyżej cały kod pochodni calutki;)

     

    mam jeszcze sprita zrobiłem,żeby otoczka światła była jako gradient..ale z tym akurat działa.problem z tymi emiterami mam kurcze nie wiem,co jest nie tak,bo tylko mały piksel świeci się pochodnia..a nie może wydobyć się ogień z niej:/

  19. Witam wszystkich

     

    Nie wiem w czym tkwi problem...bo nie mogę utworzyć palącej się pochodni..próbuje z emiterami i coś mi nie wychodzi..o ile udało mi się narysować wokół pochodni światło,które działa,to już sam ogień nie działa..jest tylko mały piksel nad pochodnią:/

    Proszę o jakąś radę pomoc... z góry dziękuje.Posiadam game maker studio

    tu niżej kod

     

    obj_pochodnia

     

    create

     

    GML
    global.ps = part_system_create();

    global.pt = part_type_create();

    global.pe = part_emitter_create(global.ps);

     

     

    step

     

    GML
    part_emitter_region(global.ps, global.pe, x-1, x+1, y-1, y+1,ps_shape_rectangle, ps_distr_linear);

    part_emitter_burst(global.ps, global.pe, global.pt, 1);

     

     

    draw

     

    GML
    r = random(0.2)-random(0.2);

    draw_set_blend_mode(bm_add);

    draw_sprite_ext(spr_effect, 0, x, y+14, 1-r, 1-r, 0, c_yellow, 0.5);

    draw_sprite_ext(spr_effect, 0, x, y+14, 1-r, 1-r, 0, c_red, 0.2);

    draw_set_blend_mode(bm_normal);

    draw_sprite(sprite_index, 0, x, y);

     

     

    obj_core

     

    create

     

    GML
    scr_part_init();

     

     

    no i sam skrypt

     

    GML
    global.ps = part_system_create();

    global.pt = part_type_create();

    global.pe = part_emitter_create(global.ps);

    part_system_depth(global.ps, -99);

    part_type_shape(global.pt, pt_shape_flare);

    part_type_blend(global.pt, true);

    part_type_alpha2(global.pt, 1, 0);

    part_type_color_mix(global.pt, c_red, c_yellow);

    part_type_direction(global.pt, 90, 90, 0, 0);

    part_type_speed(global.pt, 0.1, 1, 0, 0);

    part_type_size(global.pt, 0.2, 0.3, 0, 0);

    part_type_life(global.pt, 50, 75);

     

     

    Chyba,że ktoś ma prostszy sposób na stworzenie pochodni..Nie wiem już co mam z tym zrobić.

×
×
  • Dodaj nową pozycję...