Weekly Blog #4

Hej där!

Den här veckan har jag lärt mig animation i SFML och arbetat med vår Prowlers animationer, rent kodmässigt. För tillfället har två animationer för Prowlern. Den första animationen är för både idle-state och fly-state, eftersom den flaxar med vingarna oavsett om den står stilla eller flyger omkring. Den andra animationen är för Prowlerns huvudattack. Det som tog absolut längst tid (förutom att lära sig uppbyggnaden av en animationsklass) var att byta mellan de olika animationerna.

Efter att båda animationerna var inlagda så skulle jag få den att börja attack-animationen när Prowlern hade ett visst avstånd till spelaren.

 

Först försökte jag göra ett system som byggde på en ”currentAnimation” då Prowlern skulle ha en aktiv animation och jag enkelt skulle kunna implementera och byta mellan animationer hur jag ville, men det lyckades jag aldrig med. Istället har jag nu sagt att när Prowlern befinner sig längre än en viss ”distance” från spelaren så ska den specifikt byta till idle-animationen och när den är inom en viss ”distance” från spelaren så ska den byta till attack-animationen. Gjorde även så att Prowlern attackerar en viss längd innan den träffar spelaren med ett slag så att det ser ut som om den laddar upp en attack innan den faktiskt träffar.

 

Jag hade väldiga problem med att faktiskt få attack-animationen att fungera från början, men jag insåg till slut vad problemet var. Jag hade skrivit att ”if (distance < 230)” så ska den jaga spelaren med idle/fly-animationen och inom samma if statement så skrev jag att den skulle byta till attack-statet då den slår iväg och skadar spelaren och enligt min ursprungliga plan skulle byta animation också. Det fungerade inte alls, då jag redan hade en animation aktiv, så istället så ändrade jag så att valet av animation berodde helt på hur långt iväg spelaren befinner sig, oavsett vilket state Prowlern befinner sig i. Då var det också mycket enklare att starta animationen innan attacken faktiskt träffar spelaren.

Nu är statet och animationen dock inte länkade, vilket betyder att om spelaren befinner sig mellan 50 till 70 ”distance” så kommer Prowlern fortsätta attackera utan att träffa spelaren. Visserligen är det realistiskt att den skulle kunna slå efter spelaren när den är nära, men det är fortfarande fulkodadat vilket betyder att jag måste ändra animationen separat om jag ändrar på attack-statets egenskaper.

Hur som helst så fungerar det nu och det lär inte ta lika lång tid nästa gång jag behöver ändra en animation för en klass!

pattack

 

 

About Filip Swärdh

2015 Programming