Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Kenttäeditori

Dude [30.07.2007 11:58:22]

#

Mä oon teheny täs tämmöösen kenttäeditorin. Se on tehty pelinteko-oppaan pelin paranneltua versiota varten. Saa muokata omaan käyttöön sopivaks. Ää ja öö ja erikoismerkit saattaa näkyä väärin. Hiiritukea en saanu toimimaan vaikka koitin Laaksosen ja puhvelin hiiriajureita. Kentänlataussysteemi on
täältä
Se muuten väläkkyy aina ku tekee jotain
Tuon ohojelman alus näyttöön pitäis tulla isolla "PÄÄVALIKKO"

DECLARE SUB Ohje ()
DECLARE SUB TallennaKentta ()
DECLARE SUB PiirraKentta ()
DECLARE SUB LataaKentta ()
DIM SHARED tiedosto$
DIM SHARED korkeus%
DIM SHARED leveys%
DIM SHARED kentta%(1 TO 40, 1 TO 24)
korkeus% = 24
leveys% = 40
alku:
COLOR 2                       'päävalikko
CLS
WIDTH 80, 25
LOCATE 4, 10: PRINT "____   Ü  Ü     Ü  Ü                                     ___"
LOCATE 5, 10: PRINT "³   ³   /\       /\  \      /  /\    ³    ³  ³  / ³  /  /   \"
LOCATE 6, 10: PRINT "³___/  /  \     /  \  \    /  /  \   ³    ³  ³/   ³/   ³     ³"
LOCATE 7, 10: PRINT "³     /ÄÄÄÄ\   /ÄÄÄÄ\  \  /  /ÄÄÄÄ\  ³    ³  ³\   ³\   ³     ³"
LOCATE 8, 10: PRINT "³    /      \ /      \  \/  /      \ ÀÄÄÄ ³  ³  \ ³  \  \___/"
COLOR 11
LOCATE 10, 12: PRINT "1. Uusi kenttä"
LOCATE 11, 12: PRINT "2. Avaa kenttä"
LOCATE 12, 12: PRINT "3. Ohje"
LOCATE 13, 12: PRINT "4. Lopeta"
DO
  nap$ = INKEY$
LOOP WHILE nap$ = ""
WIDTH 40, 25
SELECT CASE nap$
  CASE "1"
  CASE "2": LataaKentta
  CASE "3": Ohje: GOTO alku
  CASE "4": END
  CASE ELSE: GOTO alku
END SELECT
x = 12
y = 20
ux = x
uy = y
DO
  CLS
  COLOR 7
  PiirraKentta                'näytön piirto
  LOCATE 25, 1: COLOR 10: PRINT "F1 Ohje  F2 Tallenna  F3 Avaa";
  LOCATE x, y: PRINT "*";
  DO
  nap$ = INKEY$
  LOOP WHILE nap$ = ""
  SELECT CASE nap$                          'näppäimet
    CASE CHR$(0) + CHR$(59)
      Ohje
      SLEEP
    CASE CHR$(0) + CHR$(60): TallennaKentta
    CASE CHR$(0) + CHR$(61): LataaKentta
    CASE "4": uy = y - 1: ux = x      'kursorin liikutus
    CASE "6": uy = y + 1: ux = x
    CASE "8": ux = x - 1: uy = y
    CASE "2": ux = x + 1: uy = y
    CASE "1": ux = x + 1: uy = y - 1
    CASE "3": ux = x + 1: uy = y + 1
    CASE "7": ux = x - 1: uy = y - 1
    CASE "9": ux = x - 1: uy = y + 1
    CASE "5": kentta%(y, x) = 1
    CASE "0": kentta%(y, x) = 2
    CASE ",": kentta%(y, x) = 0
    CASE CHR$(27): LOCATE 25, 1: INPUT "haluatko varmasti lopettaa?[k,e]", a$
      IF a$ = "K" THEN GOTO loppu
      IF a$ = "k" THEN GOTO loppu
  END SELECT
  IF ux > 24 OR ux < 1 THEN       'reunatarkistus
  ELSE
    x = ux
  END IF
  IF uy > 40 OR uy < 1 THEN
  ELSE
    y = uy
  END IF
LOOP
loppu:

SUB LataaKentta
CLS : LOCATE 12, 1: COLOR 1
INPUT "Avattava kenttä>", tiedosto$
tiedosto$ = tiedosto$ + ".ken"
OPEN tiedosto$ FOR INPUT AS #1
INPUT #1, leveys%, korkeus%
FOR i = 1 TO korkeus%
 FOR j = 1 TO leveys%
  INPUT #1, kentta%(j, i)
 NEXT j
NEXT i
CLOSE #1
END SUB

SUB Ohje
CLS
WIDTH 40, 25
COLOR 5
PRINT "Muista pitää NumLock päällä"
PRINT "Näppäimet"
PRINT "1-4,6-9 liikuttaa"
PRINT "5 tekee #-merkin"
PRINT "0 tekee H-merkin"
PRINT "ja ,/del-näppäin tekee tyhjää"
SLEEP
END SUB

SUB PiirraKentta
FOR i = 1 TO korkeus%
 FOR j = 1 TO leveys%
  LOCATE i, j
  IF kentta%(j, i) = 0 THEN
   PRINT " ";
  ELSEIF kentta%(j, i) = 1 THEN
   PRINT "#";
  ELSEIF kentta%(j, i) = 2 THEN
   PRINT "H";
  ELSEIF kentta%(j, i) = 3 THEN
   PRINT " ";
  ELSE
   LOCATE 25, 4
   COLOR 4
   PRINT "Virhe";
   SLEEP
  END IF
 NEXT j
NEXT i
END SUB

SUB TallennaKentta
CLS
IF tiedosto$ = "" THEN
  LOCATE 12, 1
  INPUT "tiedostonimi>", tiedosto$
  tiedosto$ = tiedosto$ + ".ken"
END IF
OPEN tiedosto$ FOR OUTPUT AS #1
WRITE #1, leveys%, korkeus%
FOR i = 1 TO korkeus%
 FOR j = 1 TO leveys%
  WRITE #1, kentta%(j, i)
 NEXT j
NEXT i
CLOSE #1
END SUB

Vastaus

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

Tietoa sivustosta