NukeBoards - Kreatywność przede wszystkim
FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  DownloadDownload
RejestracjaRejestracja  ZalogujZaloguj

Odpowiedz do tematu
Poprzedni temat :: Następny temat
[TGF] Tworzenie obiektów w losowych miejscach
Autor Wiadomość
bmatrix 
Starszy sierżant


Główny edytor: TGF
Pomógł: 4 razy
Posty: 204

2055 Prestiż
Wysłany: 02-01-2009, 20:23   [TGF] Tworzenie obiektów w losowych miejscach

Chwilę po rozwiązaniu poprzedniego problemu, niestety pojawił się kolejny (:P); ponadto wydaje mi się, że dla niektórych jest wręcz trywialny.
Chcę po prostu umieścić kilka obiektów w losowych, lecz wcześniej ustalonych pozycjach (pewnie znów niedokładnie się wyraziłem) - po prostu przypisywane im będą wartości A i chcę aby zostały umieszczone w taki sposób jak tutaj: OBRAZEK , tyle że w innej kolejności (nie kolejno od 1 do 8).
Sprawa wydawała się prosta, rozpocząłem pętlę (która powtarza się ośmiokrotnie), a w niej tworzone są obiekty:

*Początek etapu --> Start Loop#0 8 razy
*Loop#0 --> Stwórz "blok" (34,34); Ustaw pozycję X "blok" na (random(3)+1)*34;
Ustaw pozycję X "blok" na (random(3)+1)*34

Wyjaśnienie: jeden blok ma wymiary 32x32, odstępy pomiędzy blokami wynoszą 2 px - stąd liczba 34

Dzięki użyciu (random(3)+1)*34 mogłem uzyskać losowe 9 pozycji, jednak obiekty "blok" zaczęły nakładać się na siebie. Chcąc wyeliminować zjawisko do Loop#0 dodałem warunek '"Blok" NIE nakłada się na "Blok"', jednak zupełnie zatrzymało to pętlę.
Można w jakiś inny sposób sprawdzić czy bloki nakładają się na siebie, tak aby pojawiały się one tylko w "pustych" miejscach?
 
     
Slawo 
Legenda


Główny edytor: MMF2
Pojedynki: nie
Pomógł: 16 razy
Posty: 706

25566 Prestiż
Wysłany: 02-01-2009, 23:02   

Losowe rozmieszczenie w takim przypadku najłatwiej zrobisz dając SWAP POSITION WITH ANOTHER OBJECT, zaraz po stworzeniu wszystkich (np. powtórz zdarzenie 20x - swap position with another object).

Zrób obiekt aktywny "biegacz".
Zrób pętlę X np. na 10 loops.
Potem tak:
1.-pętla X
- krok pętli X mod 3 <>0
- ustaw pozycję "biegacz" na x=x+ (odstęp, szerokość klocka itp.)
- stwórz klocek w x,y biegacza
2 -pętal X
- krok pętli X mod 3 =0
- ustaw pozycję "biegacza" na y=y+(odstęp, szerokość klocka itp.)
- ustaw pozycję "biegacza" na x=0 (tzn. x początkowe planszy z klockami, in. x pierwszego klocka z lewej))
-stwórz klocek w x,y "biegacza"
I działa - ja tak mam w wielu grach z klockami.

Tam możesz mieć te klocki wpierw nie w tym miejscu planszy co chcesz, ale musisz sobie potem ustawić kolejność akcji tak, by było dobrze - tzn. musi być chyba np. podwarunek, że krok pętli>0,
bo inaczej w pierwszym kroku przesunie Ci od razu "biegacza" o y=ustawiona szerokość -klocka, siatki itp. Poradzisz sobie.

PS. Jak masz tylko mieć 9 klocków to nie lepiej je stworzyć od razu i ustawić a potem w grze robić swap position ?
_________________
http://pograjmy.webd.pl - gry z rankingami graczy i turniejami - miejsce również na Twoje gry klikowe

Ponad 150 gier wydanych
Od 2003 w klikach
Od 2001 w hiscoresach na www

http://pograjmy.webd.pl/typer/ (typuj wyniki Mundialu)
Czytam: http://kontrowersje.net
 
     
jarlfenrir 
Generał brygady


Główny edytor: Fusion 2.5
Drugi edytor: TGF2
Pomógł: 82 razy
Posty: 1731

37283 Prestiż
Wysłany: 03-01-2009, 00:08   

Można też zrobić "spawm pointy".
Tworzysz 8 obiektów aktywnych spawm point i umieszczasz je w miejscach, gdzie chcesz mieć klocki.
on loop "spawm"
+ klocek is out of play area (lub jakiekolwiek inne zdarzenie identyfikujące, czy klocek był już ustawiany, czy nie)
+ Pick klocek at random
--> Set position klocek at (0,0) from spawm point

I drugie zdarzenie
on loop "spawm"
+ klocek zachodzi na spawm point
--> destroy spawmpoint
 
     
Slawo 
Legenda


Główny edytor: MMF2
Pojedynki: nie
Pomógł: 16 razy
Posty: 706

25566 Prestiż
Wysłany: 03-01-2009, 01:52   

Fenrir napisał/a:
Można też zrobić spawm pointy.
Tworzysz 8 obiektów aktywnych spawm point i umieszczasz je w miejscach, gdzie chcesz mieć klocki.

Coś koło tego mam w Szalonych Autobusach - ponieważ tam są drzewka i inne duperele a klocki i autobusy chadzają po siatce w miejscach drzew nie mogły tworzyć się nowe autobusy - poustawiałem na planszy niewidoczny obiekt aktywny "tło" i w momencie tworzenia się autobusów jest wybierany jeden losowy "tło" i w jego pozycji x,y tworzy się autobus a "tło" jest niszczone. Podobnie mam chyba w Magicznych Puzzlach.

A najlepszą metodą na losowe ustawienia jest wtedy:

- powtórz 10-50x - by lepiej się ymieszało - Uwaga ! Nie działa z loopem ! Zawiesza się.
- swap position with another obiekt (akcję ustawiasz pod obiektami, które mają się wymieniać pzycjami, najlepiej jeden rodzaj lub ten sam obiekt postawiony wiele razy na planszy lub grupa obiektów)
_________________
http://pograjmy.webd.pl - gry z rankingami graczy i turniejami - miejsce również na Twoje gry klikowe

Ponad 150 gier wydanych
Od 2003 w klikach
Od 2001 w hiscoresach na www

http://pograjmy.webd.pl/typer/ (typuj wyniki Mundialu)
Czytam: http://kontrowersje.net
 
     
bmatrix 
Starszy sierżant


Główny edytor: TGF
Pomógł: 4 razy
Posty: 204

2055 Prestiż
Wysłany: 03-01-2009, 14:35   

To swap position jest rzeczywiście ciekawym sposobem, na planszy mam jednak więcej obiektów niż same klocki (są jeszcze detektory i inne bzdety), więc TGF zamienia mi klocki na dowolny inny (niekoniecznie na kolejny klocek).
Co do spawn position, to jeśli nie będzie innej możliwości - użyję (po prostu nie chcę mieć zbyt wielu obiektów aktywnych na mapie, a samych bloków do ustawiania będzie więcej [z 8 pracuję teraz, aby po prostu opracować silnik, który pozwoli mi na funkcjonowanie większej ilości obiektów]).

EDIT:

http://www.bmatrix.elsat.net.pl/losowosc.gam - dlaczego jeden klocek znika po zamianie pozycji z innym obiektem?
 
     
Slawo 
Legenda


Główny edytor: MMF2
Pojedynki: nie
Pomógł: 16 razy
Posty: 706

25566 Prestiż
Wysłany: 03-01-2009, 22:48   

bmatrix napisał/a:
To swap position jest rzeczywiście ciekawym sposobem, na planszy mam jednak więcej obiektów niż same klocki (są jeszcze detektory i inne bzdety), więc TGF zamienia mi klocki na dowolny inny (niekoniecznie na kolejny klocek)


On zamienia też między obiektami teo samego typu, tzn. Obiekt A z Obiekt A lub Grupa Obiektów A z Grupą Obiektów A - może trzeba pogrupować obiekty ? I wtedy swap dajesz pod ikonką grupy.
_________________
http://pograjmy.webd.pl - gry z rankingami graczy i turniejami - miejsce również na Twoje gry klikowe

Ponad 150 gier wydanych
Od 2003 w klikach
Od 2001 w hiscoresach na www

http://pograjmy.webd.pl/typer/ (typuj wyniki Mundialu)
Czytam: http://kontrowersje.net
 
     
bmatrix 
Starszy sierżant


Główny edytor: TGF
Pomógł: 4 razy
Posty: 204

2055 Prestiż
Wysłany: 04-01-2009, 12:13   

No tak racja, tym niemniej jednak tak jak pokazałem w przykładzie powyżej (http://www.bmatrix.elsat.net.pl/losowosc.gam ), podczas niektórych losowań jeden z klocków znika (nie zawsze, ale często to się dzieje).

PS. Dzieje się tak zarówno gdy pogrupuję obiekty, jak i gdy są "wolne".
 
     
Slawo 
Legenda


Główny edytor: MMF2
Pojedynki: nie
Pomógł: 16 razy
Posty: 706

25566 Prestiż
Wysłany: 04-01-2009, 12:37   

Masz niby kolejność akcji OK, wpierw stwórz obiekty a potem loopem je mieszasz (odradzam loopem mieszać bo się gra wiesza na większej liczbie mieszań), ale to, że loop startuje jako start of frame podejrzewam, że jeszcze nie zawsze zdąrzą się te 9 klocków stworzyć, gdy startuje loop. Bo tworzenie obiektów trwa w czasie - wiele razy są z tego błędy.
Daj start loopa po 1-2 sekundach i powinno być OK-nie mam teraz zainstalowanego TGFa i nie zrobię Ci tego oraz nie przetestuję ... nie chce mi się.

Ja w takich grach stosuję obiekt "Active System Box" - nie wiem czy jest w TGF ? (niestety nie działa na nim akccja zachodzenia na obiekty aktywne, ale to można obejść.
Poza tym skoro tam ma być 8-9 klocków to nie lepiej je postawić na planszy w grze i tylko mieszać ? Jak puste pole ma być w różnych miejscach to robi je się jako dziewiąty niewidoczny klocek i miesza z resztą.
_________________
http://pograjmy.webd.pl - gry z rankingami graczy i turniejami - miejsce również na Twoje gry klikowe

Ponad 150 gier wydanych
Od 2003 w klikach
Od 2001 w hiscoresach na www

http://pograjmy.webd.pl/typer/ (typuj wyniki Mundialu)
Czytam: http://kontrowersje.net
 
     
bmatrix 
Starszy sierżant


Główny edytor: TGF
Pomógł: 4 razy
Posty: 204

2055 Prestiż
Wysłany: 04-01-2009, 19:36   

No tak, nie przewidziałem że TGF nie zdążył jeszcze stworzyć klocków.
Chyba zrobię tak, jak sugerujesz, wydaje mi się że na potrzeby tej gry jest to najlepsze rozwiązanie.

Dziękuję wszystkim za pomoc :) .
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

PSK Cytaty Klikibaza - kopia wszystkich klików Klikipedia - encyklopedia o tworzeniu gier Discord KlikCzat Zaproszenie Wielkie Muzeum Klikowe

Powered by phpBB modified by Przemo © 2003 phpBB Group