Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Pisteen ampuminen

Sivun loppuun

comi [07.12.2003 19:17:50]

#

Kirjoitin tämän koodinpätkän puoliksi vahingossa. Se simuloi tykillä ampumista ampumalla pisteen, jonka vauhti hitaasti hidastuu ja jonka maan veto voima vetää alas.

' Pisteen liikuttaminen! Programmed by Comi!

SCREEN 12

CLS

jaljet = 0 'poistetaanko vanhat pisteet? 0 = ei 1 = kylla

suunta = 1 'suunta jonne piste liikkuu. 1 = oikea 2 = vasen!

x = 1      ' pisteen aloitus x-koordinaatti
y = 20     ' pisteen aloitus y-kordinaatti
p = 20     ' kuinka nopeasti putoaminen alkaa
d = -5     ' putoamisnopeus. Negatiivinen luku ampuu pisteen yläviistoon

SLEEP 2  'viive aloituksessa

DO
PSET (x, y), 15
oldy = y: oldx = x
k = k + 1
IF suunta <> 2 THEN x = x + (p / 2)
IF suunta = 2 THEN x = x + (p / 2 * -1)
IF k = p THEN
k = 0
p = p - 1
END IF
IF p < 1 THEN p = 0
IF p > 0 THEN
IF suunta <> 2 THEN x = x + 1
IF suunta = 2 THEN x = x - 1
d = d + 1
y = y + d
END IF
IF x > 640 THEN END    ' Lopettaa ohjelman jos piste poistuu ruudulta.
IF x < 0 THEN END
IF y > 480 THEN END
FOR i = 1 TO 60000     ' Hidaste. Suurenna jos piste liikkuu liian
NEXT                   ' nopeasti.

IF jaljet = 1 THEN PSET (oldx, oldy), 0 'pyyhkii vanhat jaljet jos
                                        'niin on valittu
LOOP WHILE INKEY$ = ""

rndprogy [09.12.2003 16:28:36]

#

Eikun siitä tykkipeliä tekemään. Ja eikö tuo voisi liikkua tasaisemmin

T.M. [09.12.2003 19:14:11]

#

x = 1      ' pisteen aloitus y-koordinaatti
y = 20     ' pisteen aloitus x-kordinaatti

x on y ja toisinpäin...? :P

comi [09.12.2003 19:24:29]

#

juu tuossa on pieni seloste virhe tosiaan
y ja x akseleilla. Voisihan sen pisteen koittaa
saada liikkumaan tasaisemminkin.

comi [09.12.2003 20:04:53]

#

x y akseli virheet korjattu!

Gwaur [09.12.2003 21:08:42]

#

vaihdoit vaan kommentit :D

sooda [10.12.2003 10:10:43]

#

Onhan toi ihan mukava. Määkin teen nyt tykkipelin :P

sooda [10.12.2003 11:18:30]

#

Hei!!! Mitäs toi tekee:
IF p = 0 THEN
END IF

hunajavohveli [10.12.2003 17:30:58]

#

Niinpä... eli jos p on 0 niin sitten ei mitään...?

J.J. [12.12.2003 21:08:31]

#

Tässä on vastaavanlainen. Ei YHTÄ nopea kuin yllä oleva,
mutta fysiikan kannalta todenmukaisempi :)

SCREEN 12
CONST pi = 3.141592654#
CONST g = 9.81          ' Vetovoima
PRINT "KULMA:"
INPUT kulma
PRINT "VOIMA:"
INPUT speed
StartX = 1       ' Aloituskordinaatit
StartY = 200     '
t = 0            '
DO UNTIL (y + StartY) > 480
t = t + .1       ' Päivitetään pisteen paikka 0.1
                 ' sekunnin välein. Mitä pienempi luku,
                 ' sitä yhtenäisempi lentorata :)
x = speed * COS(kulma * pi / 180) * t
y = (speed * SIN(kulma * pi / 180) * t - .5 * g*(t * t))* -1
PSET (x + StartX, y + StartY), 14
FOR a = 1 TO 1000    ' Ohjelma tehty hitaalla koneella,
NEXT a               ' siksi viive on pieni...
LOOP                 ' ...(kiinnostava tieto)...

comi [14.12.2003 19:53:00]

#

sooda. Joo toi if p = 0 then: end if juttu on vissiin
jäänyt vaan tohon, koska poistin sen sisällön yhessä vaiheessa, koska keksin helpomman tavan tehä saman.
Poistanpas sen nyt sitten...


Sivun alkuun

Vastaus

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

Tietoa sivustosta