Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: Liikkumisalueen rajaaminen

xmetal [15.01.2005 19:15:49]

#

otsikko selittää kaiken mutta tässä se koodi:

DIM x AS INTEGER, UX AS INTEGER
DIM y AS INTEGER, UY AS INTEGER

x = 5: y = 5: UX = x: UY = y
SCREEN 10
CLS
LOCATE x, y:
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
PRINT "@"
IF UX <> x OR UY <> y THEN
LOCATE x, y: PRINT ""
LOCATE UX, UY: PRINT ""
LOCATE UX, UY: PRINT "@"
x = UX: y = UY
END IF
LOOP

että kertoisko joku?

Mod. edit: kooditagit

Blaze [15.01.2005 19:27:12]

#

Tarkistamalla (If-lauseella), meneekö ukko ruudun rajojen ylitse – jos menee, niin sitten ei liikuteta.

Törmäystarkistus toteutataan samalla tavalla – ruudun rajojen sijasta vaan tarkistellaan esteiden rajoja.

Gaxx [15.01.2005 19:27:59]

#

Ennen kuin piirrät näyttöön mitään, niin tarkistat, että "pelaaja" on sallitulla alueella(ja ei ole ruudun ulkopuolella). Jos "pelaaja" ei ole sallitulla alueella, palautetaan vahat koordinaatit, eikä piirretä mitään(näin tuossa koodissasi).

edit: buah, ja Blaze ehti sitten ensin :\

xmetal [15.01.2005 19:59:52]

#

jaa..jaa
voisko vielä yhtään tarkempaa

Antti Laaksonen [15.01.2005 20:24:03]

#

Eli sinun pitää tarkistaa, että UX ja UY ovat rajojen sisällä, ennen kuin piirrät pelihahmon uuteen kohtaan. IF-lause, jossa on neljä ehtoa, kelpaa tähän tarkoitukseen.

Heikki [15.01.2005 20:29:48]

#

Eli laitetaan nyt ihan yskinkertainen esimerkki:

dim ux as integer, uy as integer, kenttax as integer, kenttay as integer, kenttax as integer
kenttay=50 'kentän korkeus
kenttax=60 äkentän leveys

'tarkistetaan onko kentalla
if ux>0 and uy>0 and ux<kenttax and uy<kenttay then
 LiikutaHahmoa()
end if

Vastaus

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

Tietoa sivustosta