|
Jag har denna vecka för det mesta suttit och pysslat med att få fiender till att fungera. Måttligt framgångsrikt hittills men det ska nog gå att lösas under helgen.
Jag började med att skriva en fiende klass som håller koll på dom gemensamma sakerna för fiender. Fiende klassen ärver från våran spelobjekt klass som jag skrev förra veckan. Spelobjekt klassen håller koll på vad saker och ting är, vad dom har för sprite, vad dom har för collider och flaggor (ifall att vi skulle vilja ha något speciellt på spelobjekt nivå). Fiendeklassen håller sedan koll på saker som är speciella för fiender. Exempel på dessa saker är: Hälsa, om dom kan skjuta eller inte och rörelsehastighet. Sedan har vi själva fiendetyp klassen, den första är våran standard fiende, dom slöa barnen. Den jag hade mest problem med att skriva, mestadels för att jag inte kom på riktigt vad den skulle innehålla. Efter en stunds funderande kom jag dock på att den bara behöver innehålla rörelsemönstren och attackmönstren för fienden, efter som att det är det enda som skiljer som olika fienderna åt. Så för standard fienden fick det bli ett väldigt enkelt rörelsemönster. Är spelaren inom räckvidd ska dom springa mot honom/henne och när dom kommit fram ska dom börja smutsa ner spelaren. För att hålla minnet på en stabil nivå har jag även gett våran motor en variabel som håller koll på vilken sprite som ska användas till dom vanliga fienderna. Detta för att slippa ladda in bilden om och om igen och därmed skapa minnesläckor. Jag lärde mig att detta kunde vara en bra idé i mitt förra projekt där programmets ram andvändning ökade med 5-10mb/s, vilket inte är riktigt optimalt. Med andra ord, jag ska se till skriva koden mer eftertänksamt den här gången, så att detta projekt inte har några läckor alls. Dock eliminerar det ju min möjlighet att åter vinna tävlingen om vem som har mest minnesläckor, men man kan ju inte vara bäst på allt =p Här är ett screenshot av hur spelet ser ut för tillfället:
När jag var färdig med själva fiendeklassen (med sub-klasser) började jag att skriva på en timer som kan hålla koll på när det ska komma fram en ny fiende. Det hela tog inte väldigt lång tid eftersom jag redan hade experimenterat lite med hur man skulle kunna göra en timer i SFML (biblioteket vi skriver emot). Det som gjorde det så lätt var att det redan fans vissa enklare inbyggda funktioner i SFML som räknade uppåt, så det enda som behövde göras var att lägga in ett värde som man skulle börja på och sen när den inbyggda klockan räknar upp, får man ett värde att ticka neråt.
Men men, nog skrivande här. Dags att återgå till kodandet.
|
