Blog 3 25/2

Ny Fiende och Projektiler

Tim Rojo,  Grupp 5.

Hej!

Denna vecka har jag fokuserat på att arbeta med att implementera en ny fiende i vårt projekt. Denna fiende jämfört med den tidigare fienden skulle istället ha förmågan att skjuta mot spelaren. Till en början gick arbetet bra och jag skapade en vector iterator och en array för  dessa nya fiender. Jag gjorde även en counter för min nya fiender och satte värdet till -1. Sedan skrev jag en for loop där jag använde iteratorn och arrayen för den nya fienden och skrev in  shootenemyArray[counter].update() och window.draw(shootenemyArray[counter].sprite) funktioner i denna for loop.Det sista jag jag  skrev in är en counter–.

För att senare rita ut mina nya fiender så använde jag en randomizer som jag fick lite tips om av en klasskamrat hur man gjorde. Randomizern  gör att fienderna spawnar slumpmässigt. Det hela var väldigt simpelt då jag började med att skapa en int och ge värdet 1 = rand() modulus 150. Efter detta skapar jag en if sats som kollar om int ==1. Därefter använde jag shootenemyArray.push_back(shootenemy) för att rita ut spriten. Jag använde även denna if sats i update konstruktorn i den nya fiendeklassen för att få ett slumpmässigt värde i fiendernas position i x-led.  Skillnaden var att jag här skapade en bool som jag kallar randomCheck. Jag satte senare denna bool till false i en while loop. I denna while loop använde jag random if satsen och satte int = true istället.  Jag ändrade även modulus värdet här till ett specifikt värde då jag ville begränsa vart mina nya fiender skulle kunna spawna någonstans. Vi har designmässigt bestämt ett specifikt område där våra fiender skall spawna och attackera ifrån.

Allt detta tog kortare tid att göra än vad jag tidigare hade planerat. Men jag stötte på ett tidskrävande problem när jag senare började arbeta med fiendens projektiler. Jag använde samma kod som vi använt för att göra spelarens projektiler. Här har vi använt trigonometri för att få  rätt rotation och vinkel på spelarens projektiler som i sin tur går mot vårat sikte. Detta underlättade oerhört då jag lyckats få fiendens projektiler att gå mot spelaren.

Jag har även lyckats få projektilerna att skjutas random på samma sätt som jag nämt ovan. Problemet är att projektilerna inte spawnar på mina skjutande fiender. De spawnar istället slumpmässigt över hela spelskärmen och även utanför  den för att senare gå mot spelaren.

Jag har använt en shootenemyArray[counter].sprite.getPosition().y och x. och även i satt projektilernas position i samma värde som jag använder för mina skjutande fiender. Jag har för tillfället ingen aning om hur jag löser detta problem. Jag har även spenderat väldigt många timmar med att försöka lösa detta problem under veckan.  Men för att vara lite mer effektiv med mitt arbete så lade jag detta problem lite åt sidan för att börja implementera ljudeffekter och musik i spelet.

 

Blogg bild

Eftersom våra grafiker ännu inte har fixat en sprite sheet för dessa nya projektiler så behövde jag använda en temporär sprite under veckans arbete.

 

Blog 3 25/2

3 reaktioner på ”Blog 3 25/2

  1. Hej Tim!

    När jag läser ditt blogginlägg och märker snabbt att du ofta förklarar vad du har gjort med lite för mycket programmerings språk. Det är nästan att du kopierar direkt från ert projekt in i blogginlägget. Detta gör att de flesta programmerings kunniga kan förstå vad du har gjort men kanske inte de mindre kunniga. Det gör också att man kan bli lite förvirrad övar vad du faktiskt gjorde med en blandning av vanlig text och ”programmerings språk”.

    Lite om samma problem men en annan fråga men när du blandar text typer på det sättet kanske du tycker att du förklarar hur du gjorde saker men det skulle vara ekvivalenten till att fråga en grafiker hur hen skapade en viss grafik till ett spel och att grafikern hade visat projekt filen istället för att förklara hur hen gjorde egentligen.

    Varför är en svår fråga att ställa sig själv, speciellt när man inte riktigt vet vad man gör och det vet jag att jag har haft problem med men jag ser inte riktigt några motivationer i ditt blogginlägg men som sagt är det inte riktigt ett jätte stort problem.

    Inlägget kan definitivt förbättras om du bara förklarar i stället för att copy pasta från projektet och vid det laget blir blogginlägget och framtida blogginlägg bättre och värdefulla.

    Med vänlig hälsning Gustav

    Gilla

  2. Hej Tim!

    Du skriver vad du har gjort och vilket problem på ett bra sätt, men jag har svårt att förstå helheten av texten då jag inte är programmerare. Många termer och ord du använder vet jag inte vad det är eller vad det betyder, exempelvis meningen;

    ”Sedan skrev jag en for loop där jag använde iteratorn och arrayen för den nya fienden och skrev in shootenemyArray[counter].update() och window.draw(shootenemyArray[counter].sprite) funktioner i denna for loop.”

    Jag förstod egentligen ingenting av det som stod där så i framtiden skulle jag rekommendera att använde ett mer vardagligt språk för att beskriva vad du gjort och hur du löst dina problem, så att även icke programmerare kan förstå.

    Vad som är bra är att du gått tillbaka till tidigare koder för att underlätta en framtida liknande kod vilket jag kan tänka mig måste spara in en massa tid.

    Vad jag tror att du måste göra i nästa inlägg är att försöka tänka på hur du förmedlar dina problem och lösningar. Försök att förklara i ett sånt språk så att alla kan förstå, och inte bara de som är insatta i ämnet (alltså andra programmerare) så tror jag att inlägget kan bli riktigt bra.

    // Niklas E.

    Gilla

Lämna en kommentar