webForumDet fria alternativet

Hittest med ofyrkantiga former

Flash

3 svar · 485 visningar · startad av oskob

Medlem sedan maj 20021 558 inlägg
Frågan#1

Hallå!

Jag sitter och försöker gör ett marioliknande spel, mest för att lära mig flash lite bättre.
För at tfå gubben att gå på marken använder jag hittest men det fungerar inte riktigt som jag vill.
Hittest verkar dra en rektangel runt objektet och kör hittest på den rektangeln. Om man t.ex. tar två cirklar och för dem nära varandra så ger hittest utslag innan de möts.
Detta är extremt irriterande eftersom jag inte vill ha en platt bana.
Någon som vet hur man ska göra?'

Tack på förhand.

Medlem sedan dec. 200384 inlägg
#2

Du kan lägga till 'false' som en parameter till hitTest(), då använder Flash inte en 'bounding box' runt ditt objekt utan den synliga grafiken (såvida det inte är en importerad png med alfakanal).

Medlem sedan maj 2003750 inlägg
#3

hitTest kan göra "pixelperfect" hitTester men bara mot en enda punkt i taget.

Så vad du behöver göra är helt enkelt att definera en eller flera pixlar på det ena föremålet som du testar för kollision mot ett annat. Men med tanke på att varje hitTest drar systemresurser så gäller det att snåla med antalet punkter. Med dina gubbar borde du komma undan med att jämföra med en eller ett fåtal punkter kring gubbarnas fötter mot platformarna.

Det går ju också ofta att *beräkna* om en kollison skett snarare än att göra hitTests.

/Mirandir

Medlem sedan maj 20021 558 inlägg
#4

Hur gör man då? Det räcker egentligen med en enda punkt.

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)