Kirjautuminen

Haku

Tehtävät

Koodit: QB: tasohyppelyn alku

Kirjoittaja: snakari

Kirjoitettu: 23.01.2003 – 23.01.2003

Tagit: pelinteko, koodi näytille, peli, vinkki

No tein nyt tämmösen. Pelissä ei voi hyppiä, mutta tippuminen ja esteinsiin osuminen on kyllä kunnossa. Koodi ei ole mitään parasta (gotoakin jouduin kerran käyttämään :).
Vinkkiä saa käyttää niin paljon kuin haluaa ja tekijän nimeä ei tarvitse mainita.
Toivottavasti tästä on jollekkin hyötyä :)

DECLARE SUB hidaste ()
SCREEN 13

ukkoy = 7  '\ ukon leveydet
ukkox = 7  '/
alkuy = 0  '\ ukon aloitus kohdat
alkux = 0  '/

DIM SHARED ukko(ukkoy, ukkox) AS INTEGER

' luetaan ukko
FOR y = 1 TO ukkoy
  FOR x = 1 TO ukkox
    READ ukko(y, x)
  NEXT
NEXT

' piirretään kenttä
' taustan tulee olla musta (väri 0)
FOR y = 8 TO 199 STEP 8
  IF NOT INT(y / 2 / 8) = y / 2 / 8 THEN
    LINE (0, y)-(310, y), 15
    ELSE
    LINE (10, y)-(319, y), 15
  END IF
NEXT
DO
  DO
    ' piirretään ukko
    FOR y = 1 TO ukkox
      FOR x = 1 TO ukkoy
        PSET (alkux + x - 1, alkuy + y - 1), ukko(y, x)
      NEXT
    NEXT
    ' onko ukon alla maata
    FOR x = 1 TO ukkox
      IF POINT(x + alkux - 1, alkuy + ukkoy) > 0 THEN EXIT DO
    NEXT
    alkuy = alkuy + 1
    hidaste
    ' tyhjennetään vanha ukko
    FOR y = 1 TO ukkox
      FOR x = 1 TO ukkoy
        PSET (alkux + x - 1, alkuy + y - 2), 0
      NEXT
    NEXT
 LOOP
  DO: nappain$ = UCASE$(INKEY$): LOOP UNTIL nappain$ <> ""
  SELECT CASE nappain$
    CASE CHR$(0) + "M"
      ' liikutetaan ukkoa eteenpäin
      IF NOT alkux > 319 - ukkox - 1 THEN
        ' tarkistetaan osuuko ukko johonkin
        FOR y = 1 TO ukkoy
          IF POINT(alkux + ukkox, y + alkuy - 1) > 0 THEN GOTO 666
        NEXT
        alkux = alkux + 1
        ' tyhjennetään vanha ukko
        FOR y = 1 TO ukkox
          FOR x = 1 TO ukkoy
             PSET (alkux + x - 2, alkuy + y - 1), 0
          NEXT
        NEXT
      END IF
    CASE CHR$(0) + "K"
      ' liikutetaan ukkoa taaksepäin
      IF NOT alkux < 1 THEN
        ' tarkistetaan osuuko ukko johonkin
        FOR y = 1 TO ukkoy
          IF POINT(alkux - 1, y + alkuy - 1) > 0 THEN GOTO 666
        NEXT
        alkux = alkux - 1
        ' tyhjennetään vanha ukko
        FOR y = 1 TO ukkox
          FOR x = 1 TO ukkoy
             PSET (alkux + x, alkuy + y - 1), 0
          NEXT
        NEXT
      END IF
    CASE CHR$(27)
      END
  END SELECT
666 :
LOOP

' ukko datana
DATA 0,0,0,12,0,0,0
DATA 0,12,12,0,12,12,0
DATA 12,0,0,0,0,0,12
DATA 12,0,4,0,4,0,12
DATA 12,0,0,0,0,0,12
DATA 0,12,12,0,12,12,0
DATA 0,0,0,12,0,0,0

SUB hidaste
' homma hidastaa :)
a = TIMER
DO: LOOP UNTIL TIMER - a > .01
END SUB

Kommentit

snakari [24.01.2003 15:05:17]

#

Kommentteja, kiitos

progo [24.01.2003 15:11:33]

#

Ihme esimerkki :) Kyllä tuosta jollekkin on hyötyä (!)

Yew [24.01.2003 16:25:12]

#

Kiitti!! Tosta on tosi paljon hyötyä!...
...paitsi, että miten saa ukon hyppimään???

snakari [24.01.2003 16:31:45]

#

no sun pitää vähentää alkuytä ja sit tehdä tarkistus osuuko sen pää seinään.

kaviaari [24.01.2003 16:42:43]

#

Tosi mahtava!

KimmoKM [24.01.2003 17:15:01]

#

Hyvä! ;)

T.M. [24.01.2003 20:33:41]

#

no jaa, aika hidas on, mutta mutta.. hyvin on koodattu. itse en tollaista osaisi :P

Mv [24.01.2003 21:53:44]

#

Tässä on yksi todiste siitä, ettei Quick Basic ole kunnollisten pelien tekemiseen. Kyllä tämä kuitenkin melko hyvä QB peliksi on, tai no... pelin aluksi.

snakari [24.01.2003 22:32:51]

#

mitenniin todiste? kyllähän tuo toimii ;)

kala [27.01.2003 18:28:01]

#

Pitääkö tänne postata joka ikinen keskeneräinen sorsanpätkä?

snakari [28.01.2003 20:51:37]

#

tietty :)
ja sitä paitti en tehny tätä ittelleni vaan johonkin keskustelun vastaukseen.

terex [04.02.2003 15:23:04]

#

Tämä oli avuksi.

InvalidCo [14.04.2003 14:53:46]

#

Eks vois laittaa jonkinmoisen "16"-värin jonka kohalla se ei ollenkaan pistäis mitään pistettä siihen?
Muuten hyvä esimerkki, hieno tausta ja monimutkasempi DATAan sijotettava taso vaan puuttuu.

-The PC-Master-

nomic [29.05.2003 23:48:51]

#

miksi kaikki valittaa keskeneräsistä ohjelmista taikka peleistä jne...
mun mielestäni on taas hyvä että jotkut on kesken koska niistä voi oppia uutta kun itse yrittää tehdä jonkun jutun loppuun
eihän se aina oo hyvä että kaikki on valmista silloin et opi esimerkiksi mitään mutta jos haluat oppia kannattaa kopsaa joku systeemi joka on vielä vaikka kesken jotta voit itse miettiä erilaisia ratkaisu vaihtoehtoja
vaikka kyllä pitää myös olla valmiita ohjelmia sekä pelejä koska niistäkin voi oppia itse en ennen edes tiennyt miten gotoa voisi välttää :D
vaikka nykyään käytän harvemmin gotoa (onneksi)
senkin opin vain jostain pelistä joka ei ollut valmis ja jossa oli käytetty älypaljon gotoa aloin miettimään miten sen voisin korjata ja nykyään se onnistuu
eli:
älkää aina valitakko keskeneräisistä töistä
niistä on aina hyötyä jollekkin
jos ei muille niin sitten edes aloittelijoille jotka saavat vaikutteita ja oppivat hyvän tavan koodaa...
jne...
AAMEN!!!

Pasikki [19.09.2004 12:16:37]

#

oisko tästä valmista bassia jossakin?

Kipperi [08.02.2005 18:59:47]

#

Ei tota oikeestaan peliksi voi sanoa, kun ei oo mitään pisteitä tai örkkejä tms. Mutta koodaus on hyvä, ainakin minunlaisen alottelijan mielestä...

Juhko [20.07.2006 12:38:11]

#

Tosi kiva, mutta vauhtia voisit vähän lisätä.
Hyppimisenkin aion varmaan laittaa.

Dude [07.11.2007 22:54:38]

#

Mä olisin teheny erilailla, mutta kyllä tuo toimii. Vähä hiras

Kirjoita kommentti

Muista lukea kirjoitusohjeet.
Tietoa sivustosta