Kirjoittaja: Dude
Kirjoitettu: 30.01.2008 – 30.01.2008
Tagit: pelinteko, koodi näytille, peli, vinkki
Alunperin tämä oli UGL-grafiikkakirjastoon pohjautuva peli. Tästä nyt jäi se skrollaus, koska Quick Basicin PUT valittaa jos kuva menee näytön ulkopuolelle.
Näppäimet:
vasen ja oikea liikuttaa
shift hyppää
ctrl juoksee(super mariosta)
Hidastus, joka ei ole valmiiksi käytössä on soodan koodivinkistä.
DECLARE SUB Valmistele () DECLARE SUB PiirraLevu () DECLARE SUB pause (tickit) '$STATIC DIM x AS INTEGER, y AS INTEGER DIM SHARED k(20, 5) AS INTEGER DIM SHARED tile1(31, 31) AS INTEGER DIM SHARED tile2(31, 31) AS INTEGER DIM SHARED ukko(19, 19) AS INTEGER DIM nap(1 TO 128) AS INTEGER ON ERROR RESUME NEXT SCREEN 7, , 1, 0 Valmistele x = 1: y = 1 ilmassa = 1 FOR q = 0 TO 5 FOR w = 0 TO 19 READ k(w, q) NEXT w, q 'pääluuppi DO CLS a = INP(&H60) 'näppäinhandleri eräästä IF a < 128 THEN nap(a) = 1 ELSE nap(a - 128) = 0 POKE &H1A, PEEK(&H1C)'koodivinkistä muokattuna nul$ = INKEY$ PiirraLevu PUT (x, y), ukko, PSET IF nap(75) = 1 THEN x = x - 1 IF nap(77) = 1 THEN x = x + 1 IF nap(54) = 1 AND ilmassa = 0 THEN h = 80: ilmassa = 1 IF nap(75) = 1 AND nap(29) = 1 THEN x = x - 2 IF nap(77) = 1 AND nap(29) = 1 THEN x = x + 2 IF h > 0 THEN y = y - 1 h = h - 1 ELSEIF POINT(x + 10, y + 21) = 0 THEN y = y + 1: ilmassa = 1 ELSE ilmassa = 0 END IF IF x > 299 THEN x = 299 IF x < 0 THEN x = 0 IF y > 240 THEN END IF y < 0 THEN y = 0 PCOPY 1, 0 'pause 'tähän voit laittaa pause-subilla hidastuksen 'kopioin sen soodan vinkistä LOOP UNTIL nap(1) DEF SEG END DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DATA 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DATA 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 SUB PiirraLevu DIM q AS INTEGER, w AS INTEGER FOR q = 0 TO 5 FOR w = 0 TO 20 SELECT CASE k(w, q) CASE 3: PUT (w * 32, q * 32), tile1, PSET CASE 2: PUT (w * 32, q * 32), tile2, PSET END SELECT NEXT w NEXT q END SUB SUB Valmistele LINE (0, 10)-(31, 63), 2, BF 'piirretään GET (0, 0)-(31, 31), tile1 'ja getataan GET (32, 32)-(63, 63), tile2 'tilet CIRCLE (160, 100), 10, 11 'ukolle PAINT (160, 100), 11 LINE (163, 101)-(169, 103), 4 CIRCLE (160, 96), 2, 1 'sama GET (150, 90)-(170, 110), ukko CLS END SUB DEFINT A-Z SUB pause (tickit) 'hypätään alimuistiin(vai mikä se nyt on toi 0) DEF SEG = 0 'loopataan kunnes on venattu tarpeeksi DO UNTIL TestiTikki > tickit 'IF LEN(INKEY$) THEN EXIT SUB 'unremmaa jos napin painalluksella häivytään VikaTikki = Tikki 'haetaan nykyinen ticki Tikki = PEEK(&H46C) 'PRINT Tikki 'unremmaa niin näät kuin tää toimii 'jos yks ticki mennyt niin setataan vähän IF VikaTikki <> Tikki THEN testiTikki = TestiTikki + 1 LOOP END SUB
Hmm, milläs tätä itse pyörität? Minun QB valittaa ainakin "ON ERROR RESUME NEXT"-rivillä gotoa ja piirtofunktiossa laittomia funktiokutsuja.
ON ERROR RESUME NEXT on QB 7.1 juttuja. Vanhemmissa se tehdään tällä tavalla.
ON ERROR GOTO hupsis 'koodi hupsis: RESUME NEXT
Tai toinen vaihoehto on korjata virheet koodista.
Joo tää jäi vähä kesken ku ei oo ny huvittanu käyttää QBeetä ku mä oon innostunu PHPstä.