Wpis z mikrobloga

Za sprawą @dieow i @dredyk tagiem, do uczenia się będzie:
#gamedevpraktyka

Kto nie wie o co chodzi, poprzedni wpis:
http://www.wykop.pl/wpis/13159633/ma-ochote-ktos-z-was-zalozyc-grupe-uczacych-sie-tw/

Możecie wrzucać swoje pytania, dzielić się skryptami, modelami, texturami, spritami.
Pomagać sobie w skryptach, a może nawet... stworzymy wspólnie jakąś grę?

Zapewne non-profit, bo dzielić tego na 20-30 osób nie warto, a i zysk mały z tego by był.

Ja mogę pomóc chętnie przy Unity i grafice. Widziałem propozycje C++ SFML i Java Cocos2D i Corona SDK.
Tylko wydaje mi się, że może to być ciężki punkt wejścia dla początkujących, choć jak uprzecie się na biblioteki, to możemy coś spróbować :)

Całkiem sporo mirków programuje w Unity3D, jest to dosyć luźny silnik i szybko widać efekty. I łatwo się eksportuje na urządzenia z androidem.

Dla osób początkujących spod tagu #gry mogę trochę pomóc wejść w świat tworzenia gier. Sam mało umiem, ale jednak coś tam umiem.

Żeby post nie był nudny, to zadam wam pytanie, a raczej problem i jestem ciekawy jak byście go rozwiązali (Opieram się na silniku Unity3D, ale w innych też się da zapewne to zrobić).

Mamy mapę 100 x 100 pikseli i chcemy zaprogramować spadające obiekty (jak w tetrisie) o rozmiarze 1 x 1 piksel, które spadają losowo, ale się nie powtarzają, to co musimy zrobić?

Pewnie pytanie bez ładu i składu, ale mam trochę problemy z formułowaniem swoich myśli :)

#gamedev #programowanie

Wołam interesantów:

@gupilogin: @Noct: @hakuna-matata: @kalectwo: @voroshmitov: @stawrocek: @Anubis94: @sortris: @Atomic_Cookie: @kawior2007: @Marcysiek: @makary89: @Maixior:
  • 12
  • Odpowiedz
Mamy mapę 100 x 100 pikseli i chcemy zaprogramować spadające obiekty (jak w tetrisie) o rozmiarze 1 x 1 piksel, które spadają losowo, ale się nie powtarzają, to co musimy zrobić?


@Rezix: Zrobić zmienną określającą jak wiele pikseli ma spadać (lekki opad, średni, duży) - dodatkowy feature byśmy mogli sobie to regulować.
Hmm powtarzanie - tablica o wymiarze 100x100 gdzie byśmy trzymali jeden bit informacji to tylko ~1KB pamięci. Ale do
  • Odpowiedz
Mamy mapę 100 x 100 pikseli i chcemy zaprogramować spadające obiekty (jak w tetrisie) o rozmiarze 1 x 1 piksel, które spadają losowo, ale się nie powtarzają, to co musimy zrobić?


@Rezix: Losować pozycję spadania dopóki nie będzie inna niż poprzednia pozycja.

Chyba, że nie chcemy mieć w ogóle obiektu dwa razy w tym samym miejscu. Wtedy bym zrobił tablicę 100x100 i trzymał informacje czy w danym miejscu coś już jest.
  • Odpowiedz
@dieow: Właściwie masz rację z tą tablicą 100x100. Ja zacząłem kombinować z optymalizacją i bardziej jakby to miał być deszcz jakiś. Jeśli to ma być tetris to nie ma co kombinować. Prosta logika, tablica, element albo jest albo nie ma. Warunek na powtarzanie, trzymanie ostatniego wektora (x, y) pozycji gdzie wygenerowano. I w sumie to tyle.

Co innego gdyby myśleć nad takimi rzeczami jak deszcz. Tam już myślę trzeba bardziej kombinować
  • Odpowiedz
Mamy mapę 100 x 100 pikseli i chcemy zaprogramować spadające obiekty (jak w tetrisie) o rozmiarze 1 x 1 piksel, które spadają losowo, ale się nie powtarzają, to co musimy zrobić?


@Rezix: Tworzysz tablicę 100x100 z pozycjami i losujesz element z tej tablicy. Po wylosowaniu go, usuwasz element, a długość tablicy zmniejsza się i siłą rzeczy później go już nie wylosujesz.
  • Odpowiedz
@kuhar: O, to jest to w czym mam braki. Słyszałem o quadtree nie raz, ale nadal nie wiem jak to zastosować.

Chodzi o podzielenie naszej mapy najpierw na cztery części, wrzucenie obiektów i jeśli mamy w którejś części dużo obiektów to tę część dzielimy znów na cztery?
  • Odpowiedz
@dieow: Tak, o to mi chodziło. Wtedy w każdym węźle pamiętasz ile elementów już tam wsadziłeś (suma po wszystkich dzieciach - propagowane w górę przy oznaczaniu, że wykorzystałeś któreś pole/komórkę), a losowanie sprowadza się po rekurencyjnym schodzeniu po drzewie i wchodzeniu tylko do niewypełnionych wierzchołków.
  • Odpowiedz
@Rezix: tworzysz kolekcję z parametrami i jak generujesz to losujesz punkt z kolekcji równocześnie usuwając go z kolekcji

Kolekcję możesz stworzyć stosując podwójną pętlę for która będzie sprawdzać czy coś tam jest, jak nie ma to dodaję punkt i to stosujesz na samym początku i myślę że wtedy na każdą mapę mozna to zastosować
  • Odpowiedz