Palikkapelien ja kaikkien muidenkin pelien tekijöille on tässä simppeli koodi-vinkki.
Tällä voi mallintaa palikoiden törmäyksiä maahan. Palikoiden muodon saa valita itse kolmioista ympyröihin.
'Palikka-fysiikkaa by JSBasic RANDOMIZE TIMER SCREEN 7, , 0, 1 ' Tässä tilassa saadaan kätevästi kaksoispuskurointi ' Kulmien määrän voi itse valita (3-100) kulmienmaara = 4 ' Kimmoisuus väliltä (0-1) kimmoisuus = .2 'Palikan x ja y sijainnit ja nopeus x = 160 y = 0 xn = 0 yn = 0 'Palikan kulma ja pyörimisnopeus k = 0 kn = (RND - .5) * .1 1 yn = yn + .05 'Painovoima vaikuttaa y-akselille x = x + xn 'Lasketaan uudet sijainnit nopeuden mukaan y = y + yn k = k + kn FOR kulma = 1 TO kulmienmaara + 1 'Tässä lasketaan joka kulmalle sijainti oskulma = k + kulma * (3.14 * 2) / kulmienmaara kx = x + SIN(oskulma) * 50 ky = y + COS(oskulma) * 50 'Törmäämislaskenta-koodi on tässä: IF ky > 199 THEN exn = xn: eyn = yn: ekn = kn 'varastoidaan nykyiset nopeudet 'Sinit ja cosinit hommiin. 'Tässä on joitain vakioita (500, 50 ja 3) joita en oikein ymmärrä ja ne 'vaativat varmaan hienosääntöä. xn = xn - SIN(oskulma) * eyn / 3 xn = xn - COS(oskulma) * ekn * 3 kn = kn - exn * eyn / 500 kn = kn + SIN(oskulma) * eyn / 50 yn = yn - COS(oskulma) * eyn * (1 + kimmoisuus) yn = yn - SIN(oskulma) * ekn * 3 xn = xn * .98 'pieni kitka x akselille ja pyörimisnopeuteen kn = kn * .98 y = y - (ky - 199) 'nostetaan palikka pois maan alta END IF IF kulma > 1 THEN LINE -(kx, ky), 15 ELSE PSET (kx, ky), 15 NEXT 'Jos painetaan ENTER, pudotetaan palikka uudelleen IF INKEY$ = CHR$(13) THEN y = 50: x = 160: kn = (RND - .5) * .1: xn = 0 'FOR hidastus = 1 TO 8000: NEXT PCOPY 0, 1 CLS GOTO 1
Aihe on jo aika vanha, joten et voi enää vastata siihen.