Skocz do zawartości

Sutikku

Użytkownicy
  • Postów

    738
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    3

Odpowiedzi opublikowane przez Sutikku

  1. procedura3.jpg

    Tutaj chodzi mi o coś takiego, że idę sobie do przodu i tworzy się świat przede mną w miarę logiczny sposób.

    I jeśli bym chciał taki segment stworzyć to muszę zrobić sobie

    obj1=0

    ...

    obj13=0;

    obj14=drzewko;

    obj15=0;

    obj16=kwiatek;

    Czy da sie to jakoś uprościć? Np. coś takiego żeby dało się wczytać:

    0 0 0 0

    0 0 0 0

    1 0 0 0

    1 1 2 1

     

  2. Hej, doszedłem do takiego punktu w którym chciałbym się nauczyć tworzyć świat tworzony proceduralnie, czy jak się to mówi, no i w teorii wymyśliłem coś takiego. Mam np. grid 16x16, dzielę go sobie na cztery fragmenty 4x4, i tworzę sobie zbiór jakby pokoików, które się tam łączą przejściami w danych miejscach. Ale nie wiem jak szybko wczytywać i zapisywać te gotowe pokoiki. Powiem, że jestem trochę leniwy, żeby ręcznie napisać sobie np. 16 pokoików, w każdym po 16 slotów. Jak się za to zabrać mądrzej? Albo jeśli kojarzycie grę Canabalt, tam się też świat tworzy dynamicznie i tak z "głową" żeby gracz miał szansę przeskoczyć. Takie coś mnie też zainteresowało.

  3. Problem polega na tym, że jeśli mamy parę obiektów które poruszają się przez mp_potential_step o tej samej prędkości do tego samego punktu, to jest szansa, że jakby wejdą w siebie i będą idealnie odwzorowywać swoje ruchy. Jak ominąć ten efekt? Żeby np. obiekt po styknięciu się z drugim, poczekał aż tamten sobie pójdzie. Zakładamy, że to ten sam obiekt. Zrobiłem kolizję, ale wtedy oba obiekty stopują zabawę.

  4. Jeśli gracz jest za armatką, czyli w prawo od niej to znaczy, że jego X jest większe od X armatki. Więc dodaj

    GML
    if( x>obj_player.x) //jesli x jest wieksze od x gracza

    if distance_to_object(obj_player)<150 // wartosc w pikselach odleglosc</span>

     

    EDIT:

    No i jeszcze nie chcesz żeby strzelało jak jesteś pod, lub nad armatką, więc możesz sprawdzić collision_line, albo porównywać Y. Ale to już swoją drogą.

  5. W grze którą już nie wiem ile robię, to mam to tak zrobione.

    GML (create)
    mapa=ds_grid_create(35, 35) // Tworzymy grida

    GML
    var xx=irandom(35);

    var yy=irandom(35);

     

    if(ds_grid_get(mapa,xx,yy)==0) //sprawdzamy komorke

    {

    instance_create(xx*24,yy*24, blok) //to 24, to oczywiscie dlugosc klocka

    ds_grid_set(mapa, xx, yy, 1); //ustawiamy w gridzie

    }

    Albo tak, jeśli chcesz żeby wokół klocka była wolna przestrzeń

    GML
    var xx=irandom(35);

    var yy=irandom(35);

     

    if(ds_grid_get_sum(mapa,xx-1,yy-1, xx+1, yy+1)==0) //sprawdzamy kwadracik komorek

    {

    instance_create(xx*24,yy*24, blok) //to 24, to oczywiscie dlugosc klocka

    ds_grid_set(mapa, xx, yy, 1); //ustawiamy w gridzie

    }

    To sobie w pętle wrzuć czy coś, która będzie trwać aż postawi klocek, czy jak tam chcesz.

    Ewen

  6. Mógłbyś dodać jakiś dodatkowy tryb, że wszystko jest serio przyśpieszone. Tak bardzo bardzo. Dla doświadczonych graczy, którzy ogarną jak unikać i rzucać kombosy, to cud miód orzeszki, przejść do takiego trybu gdzie nagle wszystko się znów staje trudne.

  7. Ostatnio byłem na weselu i jak są te karteczki kto gdzie siedzi, wziąłem moją i napisałem z tyłu mój numer telefonu i dałem takiej jednej dziewczynie. 14 letni romantico rośnie na gmclanach, pozdrawiam.

  8. Ostatnio chciałem zrobić coś takiego jak kladogramy, tj. takie drzewka genealogiczne. Zaczyna się od jednego obiektu, który potem tworzy swoje kopie, a sam umiera. Czasem więcej tych kopii czasem mniej. Chcę spisać informacje do pliku ini o nim, a następnie odczytać. I jak zrobić, by po wyrysowaniu obiektów nie nachodziły one na siebie bo mają wspólnego "rodzica", bądź nachodziły na obiekty sąsiadujące?

  9. Przenoś obiekt w ten sposób.

    GML (create)
    clicked=0;

    To zmienna która będzie sprawdzała czy obiekt jest kliknięty.

    Po nakliknięciu

    GML
    clicked=1;

    A po odkliknięciu

    GML
    clicked=0;

    I w step

    GML (step)
    if(clicked)

    {

    x=mouse_x;

    y=mouse_y;

    }

    Możesz też zamiast robić zmiennej sprawdzać czy obiekt jest nakliknięty, ale być może ta zmienna Ci się przyda na przyszłość

    Taki obiekt tylko zmienia pozycję, a kolizje nadal będą działały.

    Edit:

    Nie wiem czy przy bardzo dużym sensivity myszki, nie będą tak duże przeskoki, że czasem nie załapie kolizji. Jeśli tak jest, sprawdzaj czy nastąpiła kolizja pomiędzy x i y, a xprevious i yprevious;

    Edit2:

    Możesz też użyć funkcji która będzie kazała obiektowi chodzić za kursorem. Move_towards_point(mouse_x,mouse_y,10,0);

  10. Sam ekwipunek fajny, ale prostym bym go nie nazwał. Jeśli chodzi o złożoność jako tako. Jakoś tego dużo, nadal go do końca nie przejrzałem. Z jakiegoś powodu lubię mieć wszystko w małej ilości obiektów. Jedyne co mi się nie podoba to to, że czasem wystarczy kliknąć by przedmiot trzymał się kursora, a czasem trzeba trzymać. Osobiście wydaje mi się, że taki efekt można osiągnąć bez takiej zabawy w multum obiektów. Ale generalnie jest jak najbardziej na plus.

×
×
  • Dodaj nową pozycję...