![](https://forum.gmclan.org/uploads/set_resources_5/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
Sutikku
-
Postów
738 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
3
Typ zawartości
Profile
Forum
Wydarzenia
Odpowiedzi opublikowane przez Sutikku
-
-
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.
-
Zagrałem, doszedłem maksymalnie do 30 sekund. Nie wiem jak to skomentować XD
-
len=point_distance(x,y,xlufy,ylufy)
dir=point_direction(x,y,xlufy,ylufy)+direction
tak jakos latwiej :P
To tłumaczy wszystko ;v
-
To troszku smutne, że za bezpłatny dodatek trzeba zapłacić. Ja też wyczytałem, że jest za darmo.
-
Jak się liczy ile miejsca weźmie surface?
-
Edit: Pisząc zapomniałem że pytasz o mp_potential_step a nie mp_grid. :D
W sumie mogę skorzystać z mp_grid, ale czy to nie będzie zbyt spowalniało gry? A dokładnie tworzenie jednego gridu co step w jednym obiekcie i udostępnianie go innym?
-
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ę.
-
To nie umarło, naprawdę. Tylko wakacje i te sprawy.
Zmieniłem troszku pomysł na grę, dodałem jedną postać (typka z mieczem), dźwięki bez zmiany (najlepiej je wyciszyć w sumie), ale znów się za to biorę. Zrobiłem od nowa sposób spawnowania się stworków, trochę bardziej ogarnięty.
No i trochę screenów
-
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
GMLif( x>obj_player.x) //jesli x jest wieksze od x graczaEDIT:
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ą.
-
Najprościej.
GMLi.direction=point_direction(x,y,gracz.x,gracz.y); -
Nie obciąży Ci gry to, że podzielisz kod na czytelniejszy.
-
W grze którą już nie wiem ile robię, to mam to tak zrobione.
GML (create)mapa=ds_grid_create(35, 35) // Tworzymy gridaGMLvar 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ń
GMLvar 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
-
Jakoś tak, dziwnie uciekają wierzchołki spode mnie. Nie wiem, wygląda podejrzanie ;d
-
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.
-
-
Tak, inaczej kod zawarty w obiekcie się nie wykona, skoro nie jest w roomie.
-
Gra bardzo ładna, jak pisali wcześniej, myślałem, że to ta gra od TeeGee. Wygląda ładnie, ale powinna być dużo dynamiczniejsza. Dużo dużo.
-
Po włączeniu automatycznie się wyłączają, bo ten X jest w miejscu kursora. Ja tak często, aż za często mam. Włącz jedno okno, zmień jego pozycję i sprawdź.
-
Co on mówi w 26 sekundzie szeptem? Jakoś mój poziom słuchania po angielsku jest na to za słaby.
-
117 Mb?
Tyle to chyba mój telefon nawet pamięci nie ma :)
Już wolałbym brak oświetlenia, a mniej zżeranego miejsca, niż jakiś bajer który i tak ledwie zobaczę w tego typu grze.
-
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?
-
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
GMLclicked=1;A po odkliknięciu
GMLclicked=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);
-
Zamiast takiego formatu
GMLmessages[0][1]=0;Rób tak
GMLmessages[0,1]=0;I trochę zmień wyświetlanie dialogów, mam nadzieję, że wiesz o co chodzi. Zamiast takich [][], ma być [,].
-
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.
Proceduralne tworzenie świata gry
w Pytania zaawansowanych
Opublikowano
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