Collision checking à la regulární výrazy

Sem vkládejte editovatelné kusy kódu a tutoriály.
Odpovědět
Uživatelský avatar
D-Sheep
Příspěvky: 768
Registrován: září 7, 2011, 10:17 pm
Facebook: http://facebook.com/sheepdave
Bydliště: Praha, CZE
Kontaktovat uživatele:

Collision checking à la regulární výrazy

Příspěvek od D-Sheep » červen 19, 2014, 1:58 pm

Zase nějaký další zlepšováček...
Určitě se vám někdy stalo, že jste potřebovali zjistit, zda má do mřížky položená instance nějaké sousedy. Možná jste potřebovali trochu složitější tvary a podmínky a nevěděli jste, jak na to.
Připravil jsem pro vás malý skript, který to zjistí za vás. Stačí mu říct, jak chcete, aby byly objekty vedle sebe poskládané a on vám řekne, jestli to tak skutečně je.

V praxi: Potřebuju zjistit, jestli objekt plošiny ve skákačce má sousedy vlevo, vpravo a pod sebou... Uff, no pustím se do toho.

Kód: Vybrat vše

if (instance_position(x - sprite_width, y, object_index) != noone && instance_position(x + sprite_width, y, object_index) != noone && instance_position(x, y + sprite_height, object_index) != noone)
NE! To už nikdy!
ještě, že znám tohle:

Kód: Vybrat vše

if (check_instances_around("XXX111X1X", object_index))
Jéje, to mi krásně ušetřilo čas a nervy... Ale co to je a jak to použít? Musím skriptu předat svojí představu o rozmístění objektů tak, aby to pochopil. Určím mu, jak má vypadat každá z 9 pozic okolo dané instance pomocí znaků 0: pozice je volná, 1: na pozici má být instance, X: je mi to jedno.
Určím mu to po řádcích shora dolů, ať to má rychle hotový. Na řádku nad instancí je mi to fuk, tam se neptám. Instance vlevo a vpravo? To je vlastně plný řádek, tam budou tři jedničky. A pode mnou mě to zajímá pouze přímo vespod. A chci jen instance stejného typu. Woohoo! Nádhera!

A uměl by ten skript i povědět, jak to doopravdy okolo vypadá? Jistě, zavolám jeho bráchu get_instances_around(object_index) a ten mi řekne přesnou situaci. Co to vlasně vrátí? (jeden z mnoha příkladů)
Obrázek
Nechť jsou pro vás skripty tak užitečné, jako pro mě!

-> Stáhnout <-

Uživatelský avatar
Loric
Příspěvky: 208
Registrován: srpen 6, 2011, 9:01 am

Re: Collision checking à la regulární výrazy

Příspěvek od Loric » červen 22, 2014, 11:20 pm

Možná by se hodili ještě verze, kde zadáš jako parametr i jméno vlastního skriptu, který provadí kontrolu kolize. Vhodné, když provádíš kolize vlastním způsobem. Pak by bylo potřeba ještě sjednotit nějaké rozhraní pro tyto funkce.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host