Skocz do zawartości

Threef

Moderatorzy
  • Postów

    2 911
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    14

Odpowiedzi opublikowane przez Threef

  1. To rozumiem że yy_jump było w zakresach -coś do 0? Skacząc robisz tę wartość na minus?

    Może coś takiego?

    var col=instance_place(x+hspd_,y,objBLOK);
    if col && yy_jump>=col.yy_high // yy jump wysokosc skakania uwzględniająca to gdzie stoimy a yy_high to wysokość bloczku z którym kolidujemy
    {
    while !place_meeting(x+sign(hspd_),y,col)
        {
        x+=sign(hspd_)
        }
        hspd_=0
    } else {
    	// funkcja spadania
    }
    x+=hspd_;

     

  2. Ja takie rzeczy robię w bardzo prosty sposób. Tak samo jak 3D w GM. Zrób płaską maskę która jest na ziemi i wygląda jak kałuża. Stojąc na ziemi gracz nie może na nią wejść. Teraz ten obiekt ma swoją wysokość np 20.

     

    Następnie gracz skacząc manipuluje jakąś zmienną tak? Nazwijmy ją teraz H. Jeżeli H < wysokości obiektu to gracz nie może z nim kolidować. Jeżeli H jest większe to nie bierz pod uwagę kolizji. Ale teraz jeżeli H < wysokości oraz aktualnie spadałeś (coś jak vspeed tylko twój) to ustaw graczowi wartość wysokości obiektu jako aktualną wysokość podłoża i pozwól graczowi się poruszać jakby nie było kolizji z tym obiektem. Ostatnia sprawa to jeżeli wykryjesz ze kolizji znów nie ma to gracz ma znów spaść niżej.

  3. Używałem tylko betę przez 2 dni więc dużo nie mam ale zdążyłem jej nie polubić.

     

    Minusy

    • Tylko wersja 64bitowa
    • Required DirectX11
    • Interface jest mniej kompaktowy i zajmuje sporo niepotrzebnego miejsca na ekranie
    • Layers (to po części plus bo poprawiło optymalizację draw pipeline)

     

    Plusy

    • IDE dla MacOS
    • Działający edytor room
  4. Jeżeli gra spowalnia to znak że trzeba włączyć profiler i sprawdzić gdzie. Oraz to że muszę dokończyć dla was tekst o tym jak profilera używać.

    https://docs.yoyogames.com/source/dadiospice/001_advanced use/profiling.html

    Nie możesz próbować szukać rozwiązań problemu jeżeli nie wiesz co go powoduje.

     

    - Jeżeli jest za dużo obiektów to możesz spróbować dezaktywować albo ukrywać te które nie są potrzebne.

    - Jeżeli za często jest sprawdzane czy możesz stworzyć wodę to możesz to ograniczyć

    - Może elementy tworzą się nie tam gdzie chcesz? Na przykład poza room?

     

    Jedno co na pewno możesz zrobić to podejście identyczne jak jest w Minecraftcie. Zrób stan który oznacza że woda się updatuje. Coś takiego

    create:

    update=true

     

     

    step:

    if(update)
    {
    if place_free(x,y+32)
    {
        instance_create(x,y+32,obj_water)
    }
    if place_free(x+32,y)
    {
        instance_create(x+32,y,obj_water)
    }
    if place_free(x-32,y)
    {
        instance_create(x-32,y,obj_water)
    }
    
    update = false
    }

     

    W ten sposób sprawdzenie wykona się tylko raz. Jeżeli chcesz z jakiegoś powodu ponownie wykonać sprawdzenie, bo np zabrałeś wodę, to wystarczy że w którymś obiekcie wody znów zmienisz update=true

  5. A żyje, żyje. Jakoś nie było za bardzo okazji by coś postować bo były zmiany w edytorze map i refactoring. Doszło kilka rzeczy ale postowałem je w Nad czym aktualnie pracujesz i w galerii grafik.

     

    Muszę domknąć aktualne zmiany żeby móc dodawać nowe feature.

×
×
  • Dodaj nową pozycję...