\chapter{Komponenter i et spil}
\begin{intro}
I dette afsnit identificeres de komponenter der indgår i et spil fra et programmeringssynspunkt.
\end{intro}

Målet med projektet er at lave et actionspil. Spillet indeholder en hovedløkke der sørger for at opdatere spillet for derefter at tegne det på skærmen. Et enkelt gennemløb af hovedløkken kan deles ind i et par komponenter der er karakteristiske for computerspil: \emph{inputhåndtering} fra brugeren, \emph{netværkslogik} fra andre brugere eller en server, \emph{intern spil logik}, og til sidst \emph{visualisering} af spillet.

\begin{figure}[h]
\begin{center}
    \begin{minipage}[t]{\textwidth}
        \begin{center}
    \scalebox{0.6}{\includegraphics{gfx/spilintroflow.pdf}}
            \caption{Flow chart for et eksemplarisk action spil}
            \label{fig:flow}
        \end{center}
    \end{minipage}
\end{center}
\end{figure}

Ved inputhåndtering forstås, at spillet påvirkes af brugerens interaktion. Det kan være spilspecifikke ting som at påvirke spillerens bevægelse, eller mere programorienterede som at afslutte spillet.

Netværkslogikken håndterer information fra andre spillere. Her modtager spillet information om hvilke spillere der tilslutter og forlader spillet samt andre spilleres placering, antal point og lignende.

Spillogikken består af at opdatere spillets tilstand. Det kan bestå af at opdatere spillerens placering i banen (ud fra forrigt input), opdatere eventuelle fjenders placering, tildele spilleren point eller fratrække spilleren noget energi, undersøge om spilleren er stødt ind i noget i banen etc.

Visualiseringen af spillet består i at tegne spillet i dets vindue. Spillerens objekt skal tegnes såvel som eventuelle fjender. Banen skal tegnes. Hvis spillet har en baggrund foruden banen, skal denne også tegnes. 