Hitbox
|
Hejsan! I dagens blogginlägg tänkte jag skriva om hur jag gjorde för att skapa fiendernas och projektilernas ”hitbox” att fungera att kollidera med varandra. I vårat spelet så existerar det fiender med mål att röra sig ner mot avataren för att sedan skada den, spelaren ska då med hjälp av avataren skjuta ner fienderna med projektiler som avataren skjuter. En ”hitbox” är en form som användas för att kolla kollisionen mellan olika objekt. Så det jag gjorde var att göra passande rektanglar för fienderna och projektiler, för fienderna var det 45 pixlar bred och 22 pixlar hög, projektiler var det 20 pixlar bred och 60 pixlar hög. Det viktiga att göra här att man speltestar för att se vad som är en lämpligt ”hitbox” storlek på fienderna och projektilerna. Vi vill inte att det ska bli för svårt för spelaren att pricka fienderna med projektilerna därför får inte ”hitboxen” på fienderna vara allt för små eller på projektilen. ”Hitboxen” får heller inte vara för stor, först för att det blir för enkelt att träffa fienderna i och med det kommer inte spelet bli utmanande för spelaren. Vad jag gör sen när fiendernas och projektilernas ”hitboxes” träffar varandra är att jag raderar båda objekten, alltså både bilden av objektet och ”hitboxen”. Varför jag gör det är p.g.a. ifall jag inte raderar bort objektets bild och ”hitboxes” så kommer det sväva runt massa onödigt minne från varje objekt i spelet som kommer göra att spelet saktas ner och tills slut kommer spelet krascha p.g.a. allt överflödigt minne som inte raderas bort. För att göra det så använder jag mig utav en funktion som gör att så fort en fiende och projektils ”hitboxes” träffar den ena eller den andra så raderas bort deras bild och ”hitbox”. Ifall man skulle vilja ha fiender med mer liv t.ex. någon bossfiende som kommer ner ibland som tar 5 projektiler att döda. För att göra det så behöver jag börja med att sätta ett värde på bossfienden, då sätter jag ett värde på 5. Sedan behöver jag sätta ett värde på projektilen på hur mycket projektilen ska skada, i detta fall är det 1. Jag sätter en ny funktion där ifall en projektilen interagerar med en fiende så förlora fienden 1 värde på livet. Denna funktion händer varje gång en projektil interagerar med en fiende till värdes livet på fienden når noll. När en fienders liv når noll så utför en ny funktion som raderar bort både bilden och ”hitboxen” för just den fiende som når noll. I GIF:en under kan man se hur projektilerna interagerar med fienderna.
|
