Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Lentävä pallo

Sivun loppuun

Touho [14.03.2004 18:55:44]

#

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 ;)

Touho [14.03.2004 18:56:53]

#

Nyt voi antaa mulle vinkkejä/korjauksia tai palautetta tuosta.

rndprogy [16.03.2004 20:39:34]

#

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)

hunajavohveli [17.03.2004 16:28:19]

#

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.

mamaze [17.03.2004 17:00:51]

#

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?

tn [17.03.2004 17:13:46]

#

Ihan hyvä muuten, mutta selvyyden vuoksi kannattaisi käyttää muuttujina x:ää ja y:tä tai vastaavia.

Touho [17.03.2004 21:10:18]

#

niin. lisäsin tonne noi loputkin pallo-ohjelmat (linkki) :P
voi pyytää, jos haluaa niistä ne koodit.

Touho [17.03.2004 21:16:09]

#

ups..
Miten tossa muuten pystyis käyttämään trigonometrisiä funktioita? :D

rndprogy [17.03.2004 21:20:56]

#

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ä.

Touho [17.03.2004 21:22:59]

#

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

hunajavohveli [17.03.2004 21:44:10]

#

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.

hunajavohveli [17.03.2004 21:46:24]

#

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$ <> ""

Touho [18.03.2004 15:23:22]

#

Mikä toi ATN(1) on?

sooda [18.03.2004 17:01:31]

#

lainaus:

Mikä toi ATN(1) on?

yhden arkustangentti.

rndprogy [18.03.2004 19:33:43]

#

eli piin neljäs osa


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta