Blogginlägg nr 1

Hittills den här veckan har jag jobbat med att få färdigt de sista prototyperna, ”turrets” och ”power-up EMP” dvs. Utöver det har jag även implementerat lite olika texturer här och där som grafikerna ändrat eller blivit klara med och justerat en del saker rent allmänt. I detta blogginlägget tänkte jag endast skriva om turrets:en dock.

När jag började och skulle koda turrets:en så hade jag gjort sen innan en klass som heter ”TurretSlot” så jag hade redan positionerna för var man skulle kunna placera ut turrets:en. Turretslots:en fungerar så att om man trycker tangenten”O” så visas alla turretslots:en och trycker man igen så försvinner dom osv (att det just är O är bara provisoriskt i prototypen, i framtiden kommer vi nog inte ens använda en tangent).

Håller man musen över ett turretslot byter slot:et färg (”highlight:as”) och om man då trycker Space (också provisoriskt) samt att turretslot:et inte redan är fyllt (detta kontrolleras av en bool) så placerar man en turret där. Detta var något som jag programmerade denna veckan. Jag skapade klassen ”Turret” och fixade de två texturerna och sprites:en då den har en överdel och en nederdel som ritas ut på/bredvid varandra, ritade ut dom på skärmen samt fixade positionen till turretslots:en som jag nämnt ovan. Än så länge hade allt gått rätt smidigt och överlag stötte jag inte på några jätteproblem med denna ”artifakt:en”.

Nu när jag kunde placera ut dom på skärmen och ritade ut dom så hade jag två saker kvar jag ville att att dom skulle kunna göra, rotera och skjuta. Jag började med att försöka få dom att rotera. Själva koden för att få dom att rotera var jättesimpelt att fixa vilken jag hade i en funktion. Jag hade en counter som började på 1 som sa att när countern blir 3 ska den byta håll och när counter blir 5 ska den byta håll igen och sätta countern till 1. Detta funkade bra men när jag provade och satte ut flera turrets så gav det mig lite huvudvärk för jag hade bara en ”counter” till att börja med så när jag i koden sa till programmet att rotera åt ett håll så ökade countern för alla turrets. Jag löste det med en ”member”-variabel så att alla turrets hade var sin counter och var sin bool som avgjorde om den skulle rotera höger eller vänster. Det var väll inte så svårt egentligen men jag fick tänka till lite där.

Sen skulle jag få dom att skjuta också och då använde jag mig av en klass som jag också redan hade med projektiler eller som klassen heter ”Rockets”. Tanken från början var att dom skulle skjuta i en rak linje i den vinkel som dom var riktade åt efter rotationen. Sen tidigare har jag programmerat en huvudkanon som skjuter samma projektiler men som skjuter dit åt man har muspekaren. Jag vet inte varför riktigt men jag provade iaf att använda samma uträkning för turrets:en bara för och testa vilket gav resultatet att projektilerna från turrets:en åkte parallellt med projektilen som ”spelaren” sköt från huvudkanonen (detta kan man se på bilden ovan). När jag provsköt lite så slog det mig att det kanske inte var en så dum idé ändå. Vi hade tänkt oss att spelaren fick sikta huvudkanonen och turrets:en var hjälpmedel bara som var AI styrda men på detta sättet fick man på sätt och vis styra turrets:en med samtidigt som dom ändå var AI styrda på sätt och vis iochmed att dom skjuter vid en viss tidpunkt istället för vid ett knapptryck. Jag tyckte det kändes som en ganska rolig grej då man på sätt och vis skulle kunna sikta på två olika skepp samtidigt och ”slå 2(3, 4, 5) flugor i en smäll? Ett problem som skulle kunna uppstå med detta dock framöver är iochmed att vi kommer ha två 2-4 sektorer (2-4 spelplaner bredvid varandra som körs samtidigt) och man bara ser en åt gången så kommer alla turrets i alla sektorer skjuta dit åt man siktar vilket inte hade blivit så bra. Ett alternativ kanske skulle vara att använda detta systemet i sektorn man för tillfället ser och använda det ursprungliga systemet i dom sektorerna man inte ser? Vid den här frågeställningen fastnade jag lite och beslöt mig vänta med att fortsätta programmera turrets:en tills vi hade bestämt hur de skulle fungera inom gruppen och om dom tyckte iden var lika bra som jag.

 

About Mathias Henningsson

2015 Programming