Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Tasohyppely asciilla

Megant92 [23.02.2005 20:51:28]

#

Tässä on merkkigrafiikalla tehty tasohyppelymoottori.
Olisin muuten tehnyt tämän "oikealla" grafiikalla, mutta mielestäni tämä sopii peliini ehkäpä paremmin.
Jos haluat oman kentän printtaa se vain game-subissa.Muista poistaa minun tekemä kenttä.Noiden seinien ascii koodi on 219.
Tässä voit itse valita kuinka korkealle voit hypätä ja kuinka kauan pysyt ilmassa.

'Merkki Grafiikka Taso Hyppely Moottori
DECLARE SUB game ()
DIM SHARED x, y, A$, B$, C$, d$, hyppy, ags  'näkyviin
game

SUB game
 x = 4                                'aloitus kordinaatit(yllätys yllätys):)
 y = 10
 CONST maxhyppy = 3                   'en laittanut muuttujaksi
 CONST maxpysyvyys = 1                'kuinka kauan pysyy ilmassa  huom. tippuu jos hyppy=maxhyppy
 CLS
 SCREEN 13
 SCREEN 0
 PRINT "  ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ"
 PRINT "  Û                    Û"     'kenttä
 PRINT "  Û         Û          Û"
 PRINT "  Û    Û       Û       Û"
 PRINT "  Û Û     Û        Û   Û"
 PRINT "  Û           Û        Û"
 PRINT "  Û    Û         Û     Û"
 PRINT "  Û      Û             Û"
 PRINT "  Û  Û       Û         Û"
 PRINT "  Û     Û      Û   Û   Û"
 PRINT "  ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ"
 DO
  PRINT " "
  B = SCREEN(y, x - 1)
  A = SCREEN(y, x + 1)
  C = SCREEN(y - 1, x)                      'katsoo suunnat
  e = SCREEN(y, x)
  IF e = 219 THEN y = y - 1                    'menee päälle
  d = SCREEN(y + 1, x)
  IF d = 219 THEN
   hyppy = 0                                    'kun maassa ei hyppyä
   ags = 0
  END IF
  LOCATE y, x
  PRINT CHR$(2)       'laittaa smilen ruudulle
  IF hyppy = maxhyppy THEN hyppy = 0       'kun hypätty tarpeeksi
  lyppy = hyppy
  ff = TIMER
  DO
   hghj$ = INKEY$
  LOOP UNTIL TIMER - ff > .3 OR hghj$ <> ""    'hidastusta peliin
  SELECT CASE hghj$
  CASE CHR$(0) + "M"                      'oikealle
   IF A <> 219 THEN                       'oikealla ei ole seinää?
    LOCATE y, x
    PRINT " "                             'tyhjää tilalle
    x = x + 1
   END IF
  CASE CHR$(27)                           'esc
   END
  CASE CHR$(0) + "H"                      'ylös
   IF hyppy < maxhyppy THEN                      'ettei hyppää liikaa
    IF C = 32 THEN                        'ylhäällä tyhjää
     IF d = 219 OR hyppy > 0 THEN         'alla palikka tai on hypänny aikasemmin
      LOCATE y, x
      PRINT " "
      y = y - 1
      hyppy = hyppy + 1                   'on hypännyt
     END IF
    END IF
   END IF
  CASE CHR$(0) + "K"                      'vasen
   IF B <> 219 THEN                       'tsekataan onko tyhjää
    LOCATE y, x
    PRINT " "
    x = x - 1
   END IF
  END SELECT
  LOCATE y, x                             'piirretään hahmo
  PRINT CHR$(2)
  IF d = 32 AND hyppy = 0 THEN            'tippuu
   LOCATE y, x
   PRINT " "
   y = y + 1
  END IF
  IF lyppy = hyppy AND hyppy > 0 THEN ags = ags + 1     'ei hypätty lisää
  IF ags = maxpysyvyys AND hyppy > 0 THEN
   ags = 0
   hyppy = 0                                         'tippuu
  END IF
 LOOP
END SUB

Vastaus

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

Tietoa sivustosta