Tämmösen alun oon peliini tehny mut siin on noi ohjaukset vähä pieles...Toshan ne o ihan oikein mun mielest laitettu.Mitä vikaa tos on?
DIM x AS INTEGER, ux AS INTEGER DIM y AS INTEGER, uy AS INTEGER x = 10: y = 10: ux = z: uy = y SCREEN 13 CLS LOCATE x, y: PRINT "@" DO button$ = INKEY$ IF button$ = "w" THEN uy = uy - 1 LOCATE ux, uy PRINT "@" LOCATE x, y PRINT " " x = ux y = uy END IF IF button$ = "s" THEN uy = uy + 1 LOCATE ux, uy PRINT "@" LOCATE x, y PRINT " " x = ux y = uy END IF IF button$ = "a" THEN ux = ux - 1 LOCATE ux, uy PRINT "@" LOCATE x, y PRINT " " x = ux y = uy END IF IF button$ = "d" THEN ux = ux + 1 LOCATE ux, uy PRINT "@" LOCATE x, y PRINT " " x = ux y = uy END IF IF button$ = "q" THEN END END IF LOOP
EDIT:Koodi tehty pitkällä tavalla...
Älä ihmeessä laita ukon piirtoa erikseen jokaiselle liikutussuunnalle, vaan ainoastaan yksi ukon piirto luupin alkuun, sitten näppäimen lukeminen, sitten ukon kumitus, ja sitten näppäimen mukaan koordinaattien muuttaminen. Kaikki tämä pitää olla luupin sisällä. Ja sitten kun luuppi kertautuu, ukko on eri paikassa.
Nyt tajusin,et mul oli x:ät ja Y:t väärinpäin... :D
DIM x AS INTEGER, ux AS INTEGER DIM y AS INTEGER, uy AS INTEGER x = 10: y = 10: ux = x: uy = y SCREEN 13 CLS LOCATE x, y: PRINT "@" DO button$ = INKEY$ IF button$ = "w" THEN ux = ux - 1 IF button$ = "s" THEN ux = ux + 1 IF button$ = "a" THEN uy = uy - 1 IF button$ = "d" THEN uy = uy + 1 IF button$ = "q" THEN END IF ux <> x OR uy <> y THEN LOCATE x, y: PRINT " " LOCATE ux, uy: PRINT "@" x = ux: y = uy END IF LOOP
Sinun kannattaa vielä muuttaa luettu näppäin pieneksi LCASE$-funktiolla, jotta ohjaus toimii Caps Lockin painamisen jälkeen. Ja koodin lukeminen on helpompaa sisennettynä, joten ota tavaksi sisentää se. :)
Antti Laaksonen kirjoitti:
Ja koodin lukeminen on helpompaa sisennettynä, joten ota tavaksi sisentää se. :)
Toi koodi on otettu sisennyksinee päivinee mun BAS tiedostosta mut sisennys ei näytä toimivan.Ylemmäs koodis se toimi.
Ylemmässäkään koodissa sisennyksestä ei juuri ole hyötyä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.