Code Review: Space Giraffa

Space Giraffa’s spelar klass har två bindningar, en bindning till entitymanagern och en bindning till input samt bindningar till vissa allmänna/globala funktioner som extendedmath och vec. Från dessa bindningar plockar den in projektiler från entitymanagern och knappintryckningar från input.

Input bindningarna är självklara och så vitt jag vet så finns det inte någon bättre sätt att kontrollera ett objekt utan att binda det till input på detta vis, man kan göra det utanför dess egna klass men då blir det onödigt många funktioner. Entitymanagern å andra sidan är jag tveksam på, eftersom den skapar projektiler i själva spelarklassen istället för i entitymanagern själv, eller i en gamestate. I spelarklassens update funktion kollar man om spelaren har tryckt på musknappen samt var musen befinner sig när musknappen var tryckt och jämför positionen mellan musen och spelaren och använder de värden för att skapa projektilerna. Den ända anledningen till att denna kod ligger i spelarklassen är så att man kan använda spelarklassens position, ett värde som man kan enkelt returnera ut genom en funktion, till att bestämma vart projektilen ska skapas. Det skulle vara mycket bättre att bara sätta denna kod i entitymanagern eller i en gamestate istället, och slippa att mata in en entitymanager pekare i spelarklassen.

Lämna en kommentar