Terve..
Ajattelin tehdä pienimuotoisen oppaan tänne putkaan tuosta ampumis järjestelmästä, kun kerran se on joillekkin niin vaikea tehdä/hahmottaa. Eli aloitin tekemään sitä tänään, mutta sattuikin tulemaan sellainen onglema, et Törmäyksen tunnistus temppuilee. Eli vihut käyttäytyvät kummallisesti, eli vihuille ei tapahdu mitään vaikka panos osuu niihin, tai sitten jos panos osuu yhteen vihuun kaikki vihut katoaa!
Eli funktio on tälläinen
void TormaysT(HW500 hwvihu[6],Ammukset padit[100],int score,int leveys,int korkeus) { //Lisääjät (käydään kaikki ammukset ja vihut läpi) int Lisaaja = 0; int Lisaaja2 = 0; while(Lisaaja < 100) { if(Lisaaja2 >= 6) {Lisaaja2 = 0;} while(Lisaaja2 < 6) { //leveys ja korkeus on vihun leveys + x ja vihun korkeus + y leveys = leveys + hwvihu[Lisaaja2].x; korkeus = korkeus + hwvihu[Lisaaja2].y; //Sitten itse törmäyksen tarkastus if(padit[Lisaaja].x >= hwvihu[Lisaaja2].x and padit[Lisaaja].x <= leveys and padit[Lisaaja].y >= hwvihu[Lisaaja2].y and padit[Lisaaja].y <= korkeus and hwvihu[Lisaaja2].piirto == 1 ) { //Jos vihuun osui piilotetaan se hwvihu[Lisaaja2].piirto = 0; } Lisaaja2++; } Lisaaja++; } }
"Vihun" leveyden ja korkeuden ilmoittavat muuttujat alkavat toisella Lisaaja2-silmukan kierroksella kasvaa edellisen leveyden päälle, mikä ei ilmeisesti ollut tarkoitus. Kannattaa pitää leveys ja leveys erillään, esim.
void TormaysT(HW500 hwvihu[6],Ammukset padit[100],int score,int leveys,int korkeus) { //Lisääjät (käydään kaikki ammukset ja vihut läpi) int Lisaaja = 0; int Lisaaja2 = 0; while(Lisaaja < 100) { if(Lisaaja2 >= 6) {Lisaaja2 = 0;} while(Lisaaja2 < 6) { //leveys ja korkeus on vihun leveys + x ja vihun korkeus + y int x2 = leveys + hwvihu[Lisaaja2].x; int y2 = korkeus + hwvihu[Lisaaja2].y; //Sitten itse törmäyksen tarkastus if(padit[Lisaaja].x >= hwvihu[Lisaaja2].x && padit[Lisaaja].x <= x2 && padit[Lisaaja].y >= hwvihu[Lisaaja2].y && padit[Lisaaja].y <= y2 && hwvihu[Lisaaja2].piirto == 1 ) { //Jos vihuun osui piilotetaan se hwvihu[Lisaaja2].piirto = 0; } Lisaaja2++; } Lisaaja++; } }
Ei näytä kovin lupaavalta..
Jos aikoo tehdä oppaan, kannattaa ensin opetella sisentämään koodi oikein.
Saatat olla oikeassa...Teen varmaan sitten vain koodivinkin. :) ...oho en huomannutkaan ettei leveyttä ja korkeutta aletakkaaan alustamaan. Noh on se hyvä, että edes joku huomasi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.