Skocz do zawartości

lenin

Użytkownicy
  • Postów

    2 280
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez lenin

  1. Mam problem, stworzyłem sobie patha, którego kopiuje i potrzebuje przestawić o odpowiednią odległość w danym kierunku żeby wyszło z tego coś takiego:path.png

    wymyśliłem sobie, że wyciągnę sobie kierunek punktu i lengthdirami przesune sobie na bok o odpowiednią odległość. Prawie się udało 

    screenpath.png

    ,

    for(j=0; j<=path_count; j+=1)
    {
        _path = path_duplicate(j)
        for(i=0; i<path_get_number(j); i+=1)
        {  
            px=path_get_point_x(j,i)
            py=path_get_point_y(j,i)
            pl=path_get_length(j)
            do
            {
                pp+=10/pl
            }
            until (point_distance(px,py,path_get_x(j,pp),path_get_y(j,pp)) < 11 )
            pdir = round(point_direction(path_get_x(j,pp),path_get_y(j,pp),path_get_x(j,pp+0.001),path_get_y(j,pp+0.001)))
            path_change_point(_path,i,px+lengthdir_x(250,pdir-90),py+lengthdir_y(250,pdir-90),100)
         }
     }

    to część kodu która odpowiada za to. Potrzebowałem znaleźć pozycje na pathu w któryej znajduje się każdy punkt, i sprawdzać kierunek. trochę niedokładnie może ustawiać kąty ale chyba sam zamysł jednak jest zły...
    Ktoś ma jakiś pomysł?

  2. ogólnie przyjemny ale:

    -zbyt monotonny, to samo tempo non stop

    - brak przejścia w moment zwolnionego rytmu.

    -i czasem zaczyna mielić jakby miał zaraz wskoczyć dubstep ale nic z tego nie wychodzi i wraca z powrotem do równego bitu i imo nie ładnie to brzmi

     

    A na początku czułem jakbym odpalił jakiegoś bejsa sprzed 10 lat, co dla mnie na plus:)

  3. [mały doublepost]

    znalazłem takie coś gmc.yoyogames

    I tam gościu zrobił testy na dużych i małych tilesach i wychodzi na to, że jednak lepiej lecieć na większych

    I have just conducted a small benchmark that draws many 16x16 tiles to fill the screen, and few 64x64 tiles. With small tiles 350fps, with large tiles 800fps. This is a 2048x2048 room, drawing views at 640x480. Conducting the same test with the viewport at 320x240 shows minimal difference in performance, with 700fps using large tiles and 320fps using small tiles.

     

    From this I would conclude that yes, using larger tiles does reduce the drain on performance, however game maker does not seem to stop tiles from drawing outside the viewport.

     

    I hope this helps :) (The test: http://prntscr.com/1qg7qx)

     

    Chyba jednak zostanę przy większych tilesach i nie będę kombinował:)

  4. a myślałem, że rysowanie na surface nie zabiera pamięci, dopiero samo jego rysowanie już tak:/

    Dobra zostawię narazie tilesy tak jak są. Jak będę zmieniał testowego rooma już na tego właściwego( większego) i zobaczę jakiś znaczący spadek wydajności to machnę własny edytor ( pomysł na niego już mam ale nie chciałbym siedzieć nad tym nie potrzebnie)

  5. GML
    image_angle = direction;

    if distance_to_object(obj_bohater)<90

    {

    if obj_bohater.x>x image_xscale=1;

    else image_xscale=-1;

    if (place_free(x+image_xscale*5,y) && instance_position(x+image_xscale*5,y+32,par_sciana)) x+=image_xscale*5;

    }

     

    if place_meeting(x,y,par_solid) || place_meeting(x,y,par_solid_entity) && image_xscale = 1

    {

    image_xscale = -1;

    }

    if place_meeting(x,y,par_solid) || place_meeting(x,y,par_solid_entity) && image_xscale = 1

    {

    image_xscale = 1;

    }

     

    // Odwracanie wroga od obj_niewidzialna_przeszkoda

    if place_meeting(x+5,y,obj_niewidzialna_przeszkoda) && image_xscale = 1

    {

    image_xscale = -1;

    }

    if place_meeting(x-5,y,obj_niewidzialna_przeszkoda) && image_xscale = -1

    {

    image_xscale = 1;

    }

     

    //Zachowanie bohatera na pif place_meeting(x+5,y,par_przeswitujaca_platforma) && image_xscale = 1

    {

    image_xscale = -1;

    }latformy z nalozona par_przeswitujaca_platforma

     

    if place_meeting(x-5,y,par_przeswitujaca_platforma) && image_xscale = -1

    {

    image_xscale = 1;

    }

    Każdy z tech warunków może być spełniony w danym stepie, dlatego image_xscale zmienia się co chwila.

    wykonuje się to

    GML
    if obj_bohater.x>x image_xscale=1;

    nastepnie to

    GML
    if place_meeting(x+5,y,par_przeswitujaca_platforma) && image_xscale = 1

    {

    image_xscale = -1;

    bo oba mogą być spełnione, i zaczyna Ci skakać.

    Zdecyduj co pierwsze ma być sprawdzane, zrób z tego logiczną całość, dodaj else jakieś i powinno być dobrze

  6. Chcę żeby wróg uciekając omijał przeszkody i żebym widział drogę którą sobie obrał

    Taki oto kod zrobiłem napisałem

     

    GML
    ucieczka=path_add()

    mp_potential_path(ucieczka, instance_nearest(x,y,enemy_safezone).x, instance_nearest(x,y,enemy_safezone).y, 1, 8, false)

    draw_path(ucieczka, x, y, true);

     

    niestety, wróg kieruje się wtedy w stronę enemy_safezone i gra się zacina :(

    Co robię nie tak?

    a rysuje Ci tego patha? zapisz mp_potential_path do zmiennej i sprawdź jej wartość. może nie znajduje ścieżki i gdzieś zapętla i wiesza się.

     

     

  7. w 2 ostatnich argumentach nie podajesz pozycji tylko siłę poruszania się obiektu.

    możesz zrobić:

    GML
    physics_apply_force(x,y,lengthdir_x(sila_ruchu,point_direction(obiekt.x,obiekt.y,x,y),lengthdir_y(sila_ruchu,point_direction(obiekt.x,obiekt.y,x,y))

    jeśli będzie szedł w drugą stronę to zamień argumenty w point_direction lub dodaj przed '-', bo zawsze się gubie w nich

  8. a jak z trudnością?

    dodaj początkowy tor lotu kulki (właśnie jak w angry birds), przyda się. Tak to na oślep się celuje i ciężko porównać nowy ruch do poprzedniego.

    Ew. pokaż graczowi jak poprzednio uderzał, żeby miał możliwość korekty w odpowiednim kierunku

  9. niezbyt wciągająca jak narazie. Imo przydała by się linia pokazująca początkowy tor lotu kulki bo tak to mimo wszystko ciężko trafić. no i przede wszystkim daj automatyczny restart bo to najbardziej mnie irytowało.

    Ale działaj dalej, zobaczymy co z tego wyjdzie:)

×
×
  • Dodaj nową pozycję...