Miten saa QBasicilla DATA-taulukossa olevan kuvan vaikka 73 asteen kulmaan?
Entäs jos laitan aluksen liikkumaan 2d-tähtikentän läpi GET/PUT-toiminnoilla, miten saan mahdolliset aluksen "alle" jääneet tähdet näkymään, kun alus siirtyy pois tähden edestä?
lainaus:
Miten saa QBasicilla DATA-taulukossa olevan kuvan vaikka 73 asteen kulmaan?
Esimerkiksi näin:
DEFINT A-Z SCREEN 13 l% = 24 'kuvan leveys k% = 20 'kuvan korkeus k! = 73 'piirtokulma asteina kx% = 160 'keskipisteen x ky% = 100 'keskipisteen y 'luetaan kuva DATAsta taulukkoon DIM t(l%, k%) AS INTEGER FOR j = 1 TO k% FOR i = 1 TO l% READ t(i, j) NEXT NEXT 'kulma radiaaneina k! = k! * (3.14159 / 180) 'matka keskipisteestä kulmaan p! = SQR((l / 2) ^ 2 + (k / 2) ^ 2) 'ensimmäinen suorakulmion kulmista a! = ATN(1) + k! + 3.14159 'lasketaan neljän kulman koordinaatit FOR i = 1 TO 4 x!(i) = SIN(a!) * p! y!(i) = COS(a!) * p! a! = a! - 3.14159 / 2 NEXT 'vaakasuuntainen askel xa1! = (x!(2) - x!(1)) / 24 ya1! = (y!(2) - y!(1)) / 20 'pystysuuntainen askel xa2! = (x!(4) - x!(1)) / 24 ya2! = (y!(4) - y!(1)) / 20 'aloituskohta x! = x!(1) y! = y!(1) FOR i = 1 TO k% FOR j = 1 TO l% 'siirretään koordinaatteja vaakasuunnassa x! = x! + xa1! y! = y! + ya1! 'luetaan pisteen väri taulukosta v% = t(j, i) 'piirretään piste LINE (kx% + x!, ky% + y!)-STEP(1, 1), v%, B NEXT 'lisätään koordinaatteja pystysuunnassa x! = x!(1) + i * xa2! y! = y!(1) + i * ya2! NEXT DATA 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9 DATA 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9 DATA 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9 DATA 9,9,9,3,3,3,3,3,3,3,3,3,3,9,9,9,2,2,2,2,9,9,9,9 DATA 9,9,9,3,3,3,3,3,3,3,3,3,3,9,2,2,2,2,2,2,2,9,9,9 DATA 9,9,9,9,9,9,9,9,9,9,3,3,9,9,2,2,9,9,9,2,2,2,9,9 DATA 9,9,9,9,9,9,9,9,9,3,3,9,9,9,9,9,9,9,9,9,2,2,9,9 DATA 9,9,9,9,9,9,9,9,3,3,9,9,9,9,9,9,9,9,9,9,2,2,9,9 DATA 9,9,9,9,9,9,9,9,3,3,9,9,9,9,9,9,9,2,2,2,2,9,9,9 DATA 9,9,9,9,9,9,9,9,3,3,9,9,9,9,9,9,2,2,2,2,9,9,9,9 DATA 9,9,9,9,9,9,9,3,3,9,9,9,9,9,9,9,9,9,2,2,2,9,9,9 DATA 9,9,9,9,9,9,9,3,3,9,9,9,9,9,9,9,9,9,9,9,2,2,9,9 DATA 9,9,9,9,9,9,3,3,9,9,9,9,9,9,9,9,9,9,9,9,2,2,9,9 DATA 9,9,9,9,9,9,3,3,9,9,9,9,9,9,2,9,9,9,9,9,2,2,9,9 DATA 9,9,9,9,9,9,3,9,9,9,9,9,9,9,2,2,9,9,9,2,2,2,9,9 DATA 9,9,9,9,9,3,3,9,9,9,9,9,9,9,9,2,2,2,2,2,2,9,9,9 DATA 9,9,9,9,9,3,9,9,9,9,9,9,9,9,9,9,2,2,2,2,9,9,9,9 DATA 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9 DATA 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9 DATA 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
lainaus:
Entäs jos laitan aluksen liikkumaan 2d-tähtikentän läpi GET/PUT-toiminnoilla, miten saan mahdolliset aluksen "alle" jääneet tähdet näkymään, kun alus siirtyy pois tähden edestä?
Aluksen peittämä tausta täytyy joka kerralla kopioida talteen, ja aluksen siirtyessä jälleen kopioida takaisin. Näin on tehty mm. sprite-oppaan esimerkkiohjelmassa, joten katsopa sieltä (https://www.ohjelmointiputka.net/oppaat/
Aihe on jo aika vanha, joten et voi enää vastata siihen.