Meeskond "Eagles With Lasers"

From ICO wiki
Jump to navigationJump to search

Rühma liikmed

  • Urmo Tamme (D21)
  • Sander Baikov (D22)
  • Karl Männil (D22)
  • Aare Roosiväli (A31)

Eesmärk

Luua pealtvaatega 2d tulistamismäng kosmoses. (Midagi Asteroid stiilis.)

Link koodile

Kood

Umbkaudne tööjaotus

  • Urmo Tamme - esialgne mänguvälja kavand, menüüd, levelite revamp.
  • Sander Baikov - Vastaste AI, spawnimine, koodi revamp, graafika jpm.
  • Karl Männil - Vastaste AI, xbox puldi tugi, helid.
  • Aare Roosiväli - planeerimine, esialgsed levelid, koodi revamp.

Mängimisjuhis

Tapa kõik vastased ekraanil. Kasutatavad nupud on kirjas mängus, Help menüü all. Skoori saad iga korra eest, mil vastasele pihta saad. Mängus on ka supertulistamine, mille tekitatud kuulid tapavad kõik, kes teele ette jäävad, selle eest saab aga vähem punkte. Punkte võetakse maha kui sa pihta saad. Mäng lõppeb kui kõik vastased on hävitatud.

Leitud lahendused

Collision Detection

Collision detection käib kahes järgus. Esmalt toimub väga lihtne kontroll, kus vaadatakse kas kaks objekti on üksteise lähedal võrreldes nende pikimaid kylgi ja positsiooni. Kui objektid on üksteise lähestikku võrreldakse nende värvimaatrikseid. Värvimaatriksid luuakse mängu käima pannes laadimise ajal, mil luuakse kaks maatriksit. Esimeses maatriksis on kirjas mis pikslid objektil on läbipaistvad. Teine maatriks tähistab objekti positsiooni ja rotationit. Kui objektid on üksteisele lähedal, pannakse n.ö värvimaatriks positsiooni maatriksi peale mõlemal objektil ja võrreldakse maatriksite liikmeid omavahel.

Animatsioonid

Animatsioonnid kuvatakse ühest pildist, kus on kõik kaadrid ja eri kaadrite näitamiseks näidatakse lihtsalt ühte osa pildist.

Menüüd ja levelid

Menüüde ja levelite vahetamine käib lihtsate if tingimuste ja muutujate abil. Levelid vahetuvad kui on tapetud teatud arv vastaseid. Leveli vahetusest annab märki tausta muutumine ja kiiremad vastased.

Kuulid

Kuulide tulistamisel tekitatakse iga kuuli jaoks Bullet objekt, mida hoitakse listis. Kui ses listis on objekte siis toimub nende collision detection kas vastase või mängijaga, olenevalt sellest, kes kuuli välja laskis. Supertulistamisel tekitatakse mitu kuuli, mis erinevad tavalistest kuulidest välimuse poolest ja neid ei eemaldata ekraanilt kui vastane nendega pihta saab. Seega supertulistamine tapab kõik vastased oma teel. Kuulid eemaldatakse listist ka siis kui nad ekraani serva jõuavad.

Vastased

Vastaseid on kolme tüüpi. Esimesed liiguvad niisama, teised liiguvad vastase poole (kamikaze), kolmandad liiguvad ja tulistavad suvalises suunas. Vastased tekitatakse ekraani üleval servas, suvalise suunaga. Kuna ekraani serva sattudes liigutatakse vastased (ja ka mängija) vastasserva, siis mängija jaoks võivad vastased tekkida suvalisse serva. Samuti on ka kontroll, et vastase nurk ei oleks horisontaali ega vertikaali lähedane.

Teist tüüpi vastased liiguvad mängija poole kasutades XNA teegis olevat Vector 2 Linear Interpolationit, kus velocity on mängija ja vastase vahelise kauguse pöördväärtus, et tagada vastase konstantne kiirus. Samuti on vastase pööramise kiirus piiratud. Muidu võis tekkida olukord kus mängija oli hiljuti pihtasaamisest puutumatu ja teist tüüpi vastane värises tema peal.

Kolmandat tüüpi vastase peal on kahur, mis teatud aja tagant muudab sujuvalt oma nurka ja seejärel tulistab.

Elud

Elusid kui selliseid otseselt ei ole. Selle asemel otsustasime skoori alandada, kui mängija saab pihta kuuli või vastasega, muidu muutus mäng liiga raskeks.

Log

Tuesday, 29 September 2010

Meeskonna formeerimine. valisime mängu tüübi. Leppisime kokku, et esijalgu tutvume keskkonnaga, ning enne järgmist kokkusaamist teeme esijalgsed kavandid nii keskkonnast, kui ka kosmoselaevast.

Monday, 04 October 2010

Leppisime kokku mängu eialgse ülesehituse.

Wednesday, 06 October 2010

Tööjaotus by Aare. Täpsustasime mõnda ideed.

??? Ocotber 2010

Urmo sai valmis laeva ja sellega liikumise/laskmise.

Sunday, 17 October 2010

Sander põhjalikult refaktoreeris koodi, jagas koodi eraldi osadeks. Sander & Karl - esimest tüüpi vastased.

22, 23, 24 October 2010

Sander tekitas teist tüüpi vastased, elude osa. KArl tegeles mängu helilise poolega.

23 to ... October 2010

Aare tegeleb mängu levelite genereerimisega.

Monday, 25 October 2010

Toimib laeva liigutamine. Olemas 2 esialgset vastast, kes oskavad laeva jälitada ja keda saab lasta.

Monday, 1 November 2010

Olemas menüü, 3 tüüpi vastased, levelid, basic punktiarvetus.

Attribution

Background images by Funerium @ deviantArt. Collision detection code adapted from Riemers XNA tutorial. Explosion animation code adapted from MSDN