Tässä on vinkki, miten saa esineen liikkumaan sulavasti ilmassa. En ole mikään ammattilainen, niin en tiedä, mihin tarkotukseen tätä voi käyttää, mutta toivottavasti joku hyötyy tästä.
'peli alkaa SCREEN 12 CLS b = 300 'mistä pallo lähtee COLOR 12 DO CLS LOCATE 5, 10: PRINT "Laita pallo lentämään!" PRINT INPUT "Jääkö pallosta jäljet? (e/k) >", v$ LOOP UNTIL v$ = "k" OR v$ = "K" OR v$ = "e" OR v$ = "E" IF v$ = "k" OR v$ = "K" THEN 'varjot c = .02 d = .03 'jyrkkyys CLS FOR a = 10 TO 600 STEP c d = d - .0000022 'laitetaan painovoima b = b - d 'toteutetaan painovoima CIRCLE (a, b), 12, INT(1 + RND * 14) 'piirretään pallo IF INKEY$ = CHR$(27) THEN a = 600 'jos esc, niin pysähtyy NEXT a ELSE 'ei varjoja c = 1.5 d = 1.8 CLS FOR a = 10 TO 600 STEP c LINE (1, 1)-(700, 400), 0, BF 'tyhjennetään ruutu d = d - .01 b = b - d CIRCLE (a, b), 12, INT(1 + RND * 14) IF INKEY$ = CHR$(27) THEN a = 600 NEXT a END IF CLS LOCATE 5, 10: PRINT "Pallo lensi!" SLEEP END 'lopetetaan ohjelma ;)
Nyt voi antaa mulle vinkkejä/korjauksia tai palautetta tuosta.
Onhan tuo hyvä esimerkki siitä ettei käyrään liikkeseen tarvitse välttämättä trigonometrisiä functioita. Tuolla tavalla minäkin tuollaiset yleensä teen... (Vaikkei ehkä pitäisi)
Taas yksi hyvä esimerkki aloitteleville ohjelmoijille. Ei tuollaiseen tarvitse trigonometrisia funktioita käyttääkään, paitsi jos pallo olisi ohjattavissa kulman mukaan. Alkuun voisi pistää sellaisen, mikä kysyy kulmaa, ja sen mukaan asettaa sinillä ja kosinilla oikeat x- ja y-voimat.
hyvä koodivinkki siksi että pallon rataa ei ole aloittelijamaisesti bitti kerrallaan määritelty (siis juuri niin kuin tein 4 vuotta sitten :P) käsittikö joku?
Ihan hyvä muuten, mutta selvyyden vuoksi kannattaisi käyttää muuttujina x:ää ja y:tä tai vastaavia.
niin. lisäsin tonne noi loputkin pallo-ohjelmat (linkki) :P
voi pyytää, jos haluaa niistä ne koodit.
ups..
Miten tossa muuten pystyis käyttämään trigonometrisiä funktioita? :D
siis häh no tietenkin käytä näitä käskyjä:
cos
sin
ovat trigonometrisia. laita qb:n helppiin tai äh ei en tiedä kun en pahemmin käytä.
Kyllä mä tiedän, mitä ne on ja mitä ne tekee, mutta en älyä, miten niitä voi tässä tapauksessa käyttää... oon aika alottelija... :P
No siis pistää ohjelman kysymään kulmaa:
INPUT "kulma", kulma rad = ATN(1) * 4 / 180 xv = SIN(kulma * rad) yv = -COS(kulma * rad)
xv on se kuinka paljon x lisääntyy joka kierros ja yv on se paljonko y lisääntyy joka kierros. Kosinin edessä on miinus, koska koordinaatistossa ylöspäin luvut kasvaa, mutta näytöllä on juuri toisinpäin. Ja tuo radilla kertominen on sitä varten, että QB luulee trigonometrisille funktoille annettuja arvoja radiaaneiksi. Kertomalla rad-muuttujalla, saadaan vääristymä korjattua.
Niin ja sitten tietysti luuppi. Joudut vähän muokkaaman ja ottamaan pois tuon FOR-NEXT silmukan.
DO 'Ympyrän piirtosysteemi x = x + xv y = y + yv yv = yv + painovoima LOOP UNTIL INKEY$ <> ""
Mikä toi ATN(1) on?
lainaus:
Mikä toi ATN(1) on?
yhden arkustangentti.
eli piin neljäs osa
Aihe on jo aika vanha, joten et voi enää vastata siihen.