
Noniin, nyt saa kuvan piirrettyä ruudulle.
Grafiikan piirtäminen ruudulle ei sinänsä ollut vaikea homma, mutta ongelmia tietenkin tuli..
Tilet on helppo piirtää ruudulle, jos on vain yhden ruudun kokoinen rata, mutta kun halutaan 10*10 kokoinen peliruutu ja mahdollisuus muuttaa sitä, niin ongelmia alkoi ilmetä. Nullexeptionia pukkas ja kovaa vauhtia, mutta niistä selvittiin sitten. Koska ukko on aina keskellä ruutua, niin sijainti 0,0 aiheutti hetken aikaa ongelmia. Päätin, että negatiiviset luvut ja luvut jotka ylittävät kartan leveyden, piirretään mustalla tilellä.
Sain supistettua piirto komennon yhteen kätevään functioon. TEngine on siis tile enginen ilmentymä ( olio ).
TEngine.DrawMap(spriteBatch, testx, testy, 12, 12);
Tällä hetkellä engineen voi lyödä niin monta erilaista tileä kuin tarvii. Kaikki tapahtuu helpoilla funktioilla, jotka voisi periaatteessa ulkoistaa täysin, jotta engineä voisi käyttää ilman "hard coding":ia. Peli lukee tekstitiedoston string[] taulukkoon talteen. Tällä hetkellä kartassa on vain 'w' ja '.' merkkejä, joista 'w' on seinä ja '.' on lattia. Merkiksi kelpaa kaikki ASCII merkit ja isot ja pienet erotellaan, joten kartoissa voi olla monelaista tileä.
Tile on myös oma luokkansa, kuten aikaisemmin kaiketi mainitsin. Tilelle voi antaa "IsWalkable" muuttujaan joko "true" tai "false", riippuen voiko sen päällä kävellä, sen jälkeen engine hoitaa törmäys tunnistuksen automaattisesti.
Mutta, siinä kaikki tällä kertaa. Huomenna varmaan saan aika monta tuntia tehtyä tätä, joten jotain kokeiltavaakin saattaa tulla. En mene nyt sen kummemmin lupaamaan, mutta yritetään.
Hienon kamera systeemin saa kun luo kamera luokan ja sillä on Matrixi jota päivitetään ja sitten SpritBatch.Begin(x,x,x,Camera.Matrix)
VastaaPoistaniin kaikki piirretään kameran mukaan ;-)