Individual uppgift
|
Om inte titeln redan har sagt det så är denna post inte en del av spelutveckling intruduktion. Denna post är en del av en uppgift som vi fick i programmering 2 kursen. Hej mitt namn är Emil och jag har läst igenom eran kod för att försöka analysera och hitta möjliga förbättringar till den klass som representerar spelaren. Det var ganska lätt att hitta klassen men mycket svårare att hitta vart den inte används någonstans. Men låt mig börja med att förklara vad klassen behöver för att fungera. Först och främst så är spelar klassen(OwlMom) en subklass till IEntity, så för att klassen ska fungera så måste den innehålla alla virtual funktioner som IEntity har. Utöver det så använder sig OwlMom av flera extra funktiner, ett antal klasser och ett antal pekare. De flesta pekarna är bra men jag förstår inte varför ni inte använder er av sfml:s movement. Ni behöver egentligen ingen InputManager om ni använder allt som sfml har att erbjuda. Ni skulle få färre rader kod och det skulle bli enklare att förstå. Ni har även en Utility klass som ni inte använder. Andra klasser som används är collider som tar in två parametrar, spritens höjd och längd. Används sedan för att upptäcka kollision. SpriteManager används för att fixa animation. En annan klass är Projectile klassen som jag inte riktigt förstår varför den är med. borde det inte räka med att ha den i GameState. Skulle bli en mindre if sats och en mindre parameter. Om vi går vidare till er cpp så är det fäldigt mycket som händer i er konstruktor. Jag skulle kanske ha flyttat på annimationen och ljudet till andra funktioner. Bara för att få lite bättre struktur. Som jag sa tidigare kan ni strunta i InputManager och bara använda sf::keyboard t.ex.if (sf::Keyboard::isKeyPressed(sf::Keyboard::A)) do stuff. Utöver detta så ser jag inte så mycket mer som kan förbättras i er OwlMom klass. I GameState finns m_pxOwlMom, som är en pekare av klasse OwlMom. Den används i skapandet av alla fienden samt Owletsen/barnen. Ni kallar även på OwlMoms Update och om IsVisible är false så bytter ni state. Ni gör även så att uglan kan skjuta, ritar ut hon och kontrollerar kollision. Inga konstigheter här. Anledningen till att OwlMom skickas in i alla fienden är att den används för att skapa alla fiendens olika attack mönster. Det kanske låter som att jag bara är negativ men det kan inte vara längre från sanningen. Jag är mycket imponerad utav de arbete ni har gjort och det kan även vara mängden arbete som gjorde det så svårt att läsa er kod och komma in i det hela. Hoppas att ni tänker på de saker som jag har nämt och jag önskar er lycka till och en god fortsättning.
|