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$ = ""
Eikun siitä tykkipeliä tekemään. Ja eikö tuo voisi liikkua tasaisemmin
x = 1 ' pisteen aloitus y-koordinaatti y = 20 ' pisteen aloitus x-kordinaatti
x on y ja toisinpäin...? :P
juu tuossa on pieni seloste virhe tosiaan
y ja x akseleilla. Voisihan sen pisteen koittaa
saada liikkumaan tasaisemminkin.
x y akseli virheet korjattu!
vaihdoit vaan kommentit :D
Onhan toi ihan mukava. Määkin teen nyt tykkipelin :P
Hei!!! Mitäs toi tekee:
IF p = 0 THEN
END IF
Niinpä... eli jos p on 0 niin sitten ei mitään...?
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)...
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...
Aihe on jo aika vanha, joten et voi enää vastata siihen.