IoT – portefølje 2, AR hololens oplevelse

I denne porteølje var opgaven at designe en Ar oplevelse til hololensen. Jeg vil i det følgende oplæg give en kort redegørelse af det spil jeg gik i gang med.

Koncept:

Konceptet med ideen var at brugeren først skulle placer nogle “spawnStations” i deres omgivelser – objekter i det digitale miljø, hvorfra at nogle objekter ville komme ud af og flyve mod brugeren. Det ville være brugerens opgave at benytte 4 egenskaber til at ødelægge disse objekter, beskytte sig mod dem og heale dem selv hvis dette ikke lykkedes dem. De 4 egenskaber er et horisontalt angreb, der rammer alle objekter der kommer i mod dem med en x-værdi højere eller lavere end brugerens kammera, et verticalt der gør det samme mod objekter med højere eller lavere y-værdier, et skjold der gør brugeren udødlig i en kort periode og et heal der giver et liv tilbage.

Screendump:

Video:

Da jeg ikke kunne nå at både optage videoen og spille spillet på samme tid, er skaden fra firkanterne slået fra, hvilket betyder at videon ikke viser den fulde oplevelse.

 

Kode highligts:

Da objekterne der kommer mod brugeren og de egenskaber man kan benytte sig af til at overleve er core-mechanics til oplevelsen har jeg valgt at fremhæve dette – dog vil jeg nøjes med at forklarer én af egenskaberne, for ikke at trække oplægget for langt.

 

Spawning:

I spawn funktionen bliver der først udregnet en vilkårlig mellem 0 og antallet af mulige cube former (der kan spawn forskellige typer af cubes til at flyve mod spilleren). Den udregnet værdi, spawnNum, anvendes til at bestemme hvilken type cube der skal instantieres.
Dernæst bliver der udregnet en ny vilkårlig værdi mellem 1 og 5, og værdien bliver gemt i variablen posNum. Varibalen bliver anvendt til at passe hvorfra at den nuværende cube skal spawnes – hvis posNum er lig 1 spawner cuben til venstre, er posNum lig 2 spawner den til højre, osv. Efter at dets position er blevet bestemt, ganges retning med en variable indeholdene distance ud til det punkt hvor cuben gerne skal spawnes. Cuben gives nu dens endelig position, og funktionen startes forfra efter et lille delay.

 

Angreb i y-retning:

Funktionen starter med en if statement, der tjekker hvorvidt cooldown til abiliten er klar. Hvis den er, strækker den opad størrelsen på et rawImage objekt der ligger midt i scenen. Cooldownen bliver sat til at være lig længden af dens cooldown (med andre ord, cooldown bliver aktiveret), RawImage texturen bliver sat til at være lig texturen for angrebet, og bliver derefter faded ind. Funktionen til at fade billedet ud igen bliver kaldt efter et lille delay.

Funktionen finder alle cubes i scenen, for derefter at gå dem igennem med et for-loop. Loopet tjekker via en if-statement hvorvidt cubesne ligger på samme x-værdi som kammeraet – hvilket vil betyde at de ligger enten direkte over eller under kammeraet. Hvis de gør, ændres deres materiale til et rød materiale for at indikere de er blevet ramt, og funktionen “Attacked” bliver kaldt i et script på cubesne – en funktion der trækker et liv fra den ramte cube.

 

Leave a Reply