*QB* Tämä ohjelma tarjoaa Piirrä -subin, jolle ilmoitetaan DRAW -käskystä tutut käskyt (esim. "U25 D50") sekä x,y -koordinaatit, kuten myös kulma ja väri.
Ei huolta, kaikki selviää kyllä koodista.
DECLARE SUB Piirra (komento$, x!, y!, kulma!, vari!) CLS SCREEN 13 'toimii muissakin, esim SCREEN 12, SCREEN 9 jne. vari = 3 kulma = 0 x = 100 y = 100 IF kulma > 360 THEN kulma = 0 ELSE 'nämä kannattaa pistää mukaan, IF kulma < 0 THEN kulma = 360 ELSE 'ainakin jos teet silmukan. 'seuraava piirtää vasemmalle 10, ylös 20, oikealle 30 ja alas 40 pix. Piirra "L10 U20 R30 D40", x, y, kulma, vari SUB Piirra (komento$, x, y, kulma, vari) DRAW "BM" + STR$(x) + "," + STR$(y) 'liikutaan oikeaan kohtaan, DRAW "Ta" + STR$(INT(kulma)) 'käännytään annetut asteet, DRAW "C" + STR$(vari) + " x" + VARPTR$(komento$)'ja piirretään. END SUB
kulma = (kulma+(ABS(kulma)\360+1)*360) mod 360
auttaa eroon noista kahdesta rajoittavasta if-lauseesta
Hauskoja nää ikivanhojen vinkkien "nostot".
lainaus:
kulma = (kulma+(ABS(kulma)\360+1)*360) mod 360
auttaa eroon noista kahdesta rajoittavasta if-lauseesta
Mielestäni selkeämpi ja nopeampi versio olisi:
kulma = ((kulma mod 360) + 360) mod 360
Jopa seuraavakin riittäisi:
kulma = kulma mod 360 'Draw hyväksyy Ta:lle arvot -360 - +360
Täytyy kuitenkin huomata, että niin edellisen kirjoittajan kuin minunkaan koodit eivät tee tasan samaa kuin alkuperäisen koodivinkin if-lauseet.
Grez kirjoitti:
Hauskoja nää ikivanhojen vinkkien "nostot".
Tuleepa jollain aikataululla tarkastettua vanhat vinkit ja eroteltua jyvät akanoista. Monet vanhat QB-vinkit tosiaan joutavat romukoppaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.