Tämä ohjelmanpätkä laskee kulman kahden pisteen välillä. Tämä voi olla hyödyllinen joihinkin peleihin joissa tarvitsee tietää mihin suuntaan esim. tietokonepelaaja menee. Koodiin sisältyy pieni pelin alku, jolla asian voi todeta.
DIM namiska(1 TO 4) SCREEN 12 'vaihdetaan näyttötila pi = 3.141592654# 'määritetään pii 'alkupaikat x1 = 320 y1 = 240 x2 = 100 y2 = 240 PunNop = .5 'punaisen pisteen nopeus DO 'silmukan alku DO: LOOP UNTIL (INP(&H3DA) AND &H8) <> 0 'hidastus o$ = INKEY$ n = INP(&H60) xx2 = x2 'systeemi yy2 = y2 'mitkä näppäimet pohjassa? IF n = 1 THEN END IF n = 72 THEN namiska(1) = 1 IF n = 80 THEN namiska(2) = 1 IF n = 75 THEN namiska(3) = 1 IF n = 77 THEN namiska(4) = 1 IF n = 200 THEN namiska(1) = 0 IF n = 208 THEN namiska(2) = 0 IF n = 203 THEN namiska(3) = 0 IF n = 205 THEN namiska(4) = 0 'liikutetaan vihreää pistettä IF namiska(1) = 1 THEN y2 = y2 - 1 IF namiska(2) = 1 THEN y2 = y2 + 1 IF namiska(3) = 1 THEN x2 = x2 - 1 IF namiska(4) = 1 THEN x2 = x2 + 1 'tarkistetaan ettei vihreä piste karkaa ruudun ulkopuolelle IF x2 > 630 THEN x2 = 630 IF x2 < 10 THEN x2 = 10 IF y2 > 470 THEN y2 = 470 IF y2 < 10 THEN y2 = 10 'päivitetään vihreä piste näytölle LINE (xx2 - 1, yy2 - 1)-(xx2 + 1, yy2 + 1), 0, BF LINE (x2 - 1, y2 - 1)-(x2 + 1, y2 + 1), 2, BF 'aloitetaan kaikki kulman laskemiseen liittyvät asiat a = x2 - x1 b = y2 - y1 IF a = 0 OR b = 0 THEN a = a + .0001: b = b + .0001 k = ATN(a / b) / (pi / 180) 'lasketaan kulma... l = 180 'varmistetaan IF y1 < y2 THEN l = 0 'oikea suunta IF y1 = y2 THEN l = 0 'ääritilanteissa ;-D k = k + l 'lopetetaan kulman laskemiseen liittyvät jutskat LINE (x1 - 1, y1 - 1)-(x1 + 1, y1 + 1), 0, BF 'pyyhitään punainen piste x1 = x1 + SIN(k * (pi / 180)) * PunNop 'liikutetaan punaista pistettä y1 = y1 + COS(k * (pi / 180)) * PunNop LINE (x1 - 1, y1 - 1)-(x1 + 1, y1 + 1), 4, BF 'piirretään punainen piste LOOP
ihan hieno
Hienolta näyttää, vaikka punainen piste liikkuukin väärässä kulmassa, ehkä se johtuu siitä, kun minulla on internet Macissa, ja QB Windowsissa, niin jouduin kattomaan näytöltä koodin ja kirjoittamaan sen QB:hen. Tein ehkä jonkun virheen...
Juu, virhehän siellä. Kun copypastetin, se toimi oikein hyvin. Tein vain ihan muita pikku muutoksia että se on valmis omiin peleihin. :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.