Bookmark and Share

Svårighetsgrad
Svårighetsgrad
Betyg (3 röster)
BetygBetygBetygBetygBetyg
 

2D Kamera

Inledning

I många spel behöver man ett enkelt och smidigt sätt att flytta den statiska kameran, dvs i förlängningen betraktarens ögon. Vi ska därför titta på en enkel lösning för att ta hand om de vanligaste transformationer vi kan behöva. Vår kamera kommer att stödja följande.

Vår lösning använder den inbyggda funktionalitet i SpriteBatch.Begin() som stödjer just detta nämligen strukturen Matrix.

Allt som renderas mellan denna Begin och dess avslutande End kommer att transformeras om efter den Matris som anges. Vi nöjer oss med att bara använda den här strukturen utan att gå in närmare på hur matriser fungerar.

Camera2D

Här är vår lilla klass som sköter hela matrisens transformation. Ännu en gång väljer vi att inte gå in närmare på hur transformeringen fungerar, man behöver kunskaper i linjär algebra Just nu får vi acceptera att det är ren magi :-D. I en kommande artikel kan vi går vidare med matrisberäkning och en annan tillämpning vilket är 3D. En sak kan vi dock säga, i vilken ordning man gör transformationen är viktig. Dvs A*B är INTE samma sak som B*A. Det är därför viktigt att göra multiplikationen i ordningen ovan för att det ska bli rätt.

Game

Vår Draw metod ser nu ut så här:

Detta är allt som behövs för att göra ett enkelt test. I vårt exempel så används följande tangenter för styrning av kameran.

Demo projekt

Slutligen finns ett demo projekt att ladda hem

Kommentarer

1 inlägg