Tässäpä qbasicille keskeneräinen matopeliesimerkki, jossa käännös asteittain, tosin astelukua suosittelen muuntamaan sopivaksi... Napit a-vasemmalle, d-oikealle, w-kasvata matoa, q-lopeta...
' tehnyt Ville Kumpulainen
SCREEN 12
RANDOMIZE TIMER
mato.pituus = 60
mato.kulma = 30
DIM mato.pix(999, 2)
mato.vauhti = 1
mato.vari = 2
kuolema = 0
kaannos = 1
pisteet = 0
mato.pix(1, 1) = 200
mato.pix(1, 2) = 200
WHILE kuolema = 0
GOSUB nappaimisto
GOSUB siirra.mato
GOSUB tormays.mato.ja.reuna
GOSUB piirra.mato
FOR i = 0 TO 999: NEXT i
WEND
END
piirra.mato:
PSET (mato.pix(1, 1), mato.pix(1, 2)), mato.vari
PSET (mato.pix(mato.pituus, 1), mato.pix(mato.pituus, 2)), 0
RETURN
siirra.mato:
vali.x = mato.pix(1, 1)
vali.y = mato.pix(1, 2)
rad.kulma = mato.kulma * (3.1415926535# / 180)
mato.pix(1, 1) = mato.pix(1, 1) + SIN(rad.kulma) * mato.vauhti
mato.pix(1, 2) = mato.pix(1, 2) + COS(rad.kulma) * mato.vauhti
FOR i = 2 TO mato.pituus
vali2.x = mato.pix(i, 1)
vali2.y = mato.pix(i, 2)
mato.pix(i, 1) = vali.x
mato.pix(i, 2) = vali.y
vali.x = vali2.x
vali.y = vali2.y
NEXT i
RETURN
tormays.mato.ja.reuna:
FOR i = 7 TO mato.pituus
IF INT(mato.pix(1, 1)) = INT(mato.pix(i, 1)) AND INT(mato.pix(1, 2)) = INT(mato.pix(i, 2)) THEN kuolema = 1
NEXT i
IF INT(mato.pix(1, 1)) < 1 OR INT(mato.pix(1, 1)) > 639 THEN kuolema = 1
IF INT(mato.pix(1, 2)) < 1 OR INT(mato.pix(1, 2)) > 479 THEN kuolema = 1
RETURN
nappaimisto:
syotto$ = INKEY$
IF syotto$ = "a" THEN mato.kulma = mato.kulma + kaannos
IF syotto$ = "d" THEN mato.kulma = mato.kulma - kaannos
IF syotto$ = "w" THEN mato.pituus = mato.pituus + 5
IF syotto$ = "q" THEN kuolema = 1
IF mato.kulma > 359 THEN mato.kulma = 0
IF mato.kulma < 0 THEN mato.kulma = 359
RETURNEi toimi. Tulee pres a key to continue
QB 4.5
Jaa... omalla koneella se ainakin toimi hyvin... ja qbasiccini tais olla se 4.5. Kaannos kannattaa ehdottomasti vaihtaa johonkin 15....
Ai niin, ja kaksi viimestä if-ehtoa kannattaa korjata, elikkä:
if mato.kulma>360 then mato.kulma=mato.kulma-360
if mato.kulma<0 then mato.kulma=mato.kulma+360
Oletko sattumoisin Oulusta? Tuli vain
mieleen että tunnen yhden sen nimisen
www.sunpoint.net\~imbator
En ole Oulusta, vaan Lapinlahdelta (Lapinlahdella tarkoitan sitä Savossa sijaitsevaa käpykylää, en Helsingin mielisairaalaa ;-) ) Minulla on viimeistelyä vaille oleva valmis matopeli, josta en vielä tiedä, lähettäisinkö sen kilpailuun, kun kääntäminen ei suju. Se tulee jokatapauksessa kaikkien nähtäviksi kilpailun jälkeen ;-)
Ja vielä mainostaakseni, kuvia pelistäni löytyy osoitteesta http://koti.mbnet.fi/~vilikki/index.htm Kolmasosan matopeliin käyttämästäni ajasta olen käyttänyt sellaisen piirto-ohjelman tyylisen ohjelman tekoon, jonka aion myös julkaista kilpailun jälkeen. Seuraavaksi olisi varmaan vuorossa jäätelömatoteema.
Ja jos jollakulla on hyvä ehdotus teemaksi ennen kilpailun loppua, niin mailia vaan! Pelissä on muuten myös äänet, elikkä voi ehdottaa jotain ääntä. Ääni kuuluu, kun:
-omena syödään
-banaani syödään
-pääsee listoille
Jäätelöteemaan on luonnollisestikin tarkoitus pistää fanfaariksi jäätelöauton ääni...
Teoria toimii. Sisennyksistä tosin huomauttaisin, ja hidastustakin pitää lisätä.
Ihan hyvä vinkki ainakin minä tykkään tästä...
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARRRRRRRRRRRRRGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!! SSSSSSSSSSSEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEIIIIIIIIII TTTTTTTTTTTTTTTTOOOOOOOOOOOOOOIIIIIIIIIIIIIMMMMMMMMMMMIIIIIIIIIIIIII!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Muuten hyvä, mutta heti aloituksessa mato osuu reunaan. mistähän mahtaisi johtua?
Aihe on jo aika vanha, joten et voi enää vastata siihen.