Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Liikkuminen (QB)

Sivun loppuun

The Ohjelmoija [21.06.2003 19:53:47]

#

Miten saan esim. neliön liikkumaan?

Esim. Paqinan vasemmalle, niin se liikkuu vasemmalle.

Voisitteko kirjoittaa esimerkin.

(olen tekemässä ensimmäistä peliäni missä on grafiikkaa)

vipemype [21.06.2003 21:19:15]

#

Vähennät x:ää yhellä ja plänttäät neliön siihen. Vanha neliö tosin kannattaa pyyhkiä pois.

Jotenkin tälleen puolipseudona.

x=160,y=100
piirra_nelio x,y
if vasen then x--
piirra_nelio x,y
pyyhi_edellinen
if alas then y++
piirra_nelio x,y
pyyhi_edellinen

tomaattigeeni [21.06.2003 23:03:25]

#

ois hyvä laittaa jonku luupin sisään toi ja jonkinnäkönen näppäinhandleri mukaan.
Ja järjenkäyttö ja oppaiden lukeminen on luvallista myös tässä tapauksessa ;)

Antti Laaksonen [22.06.2003 02:00:19]

#

Tarvitset silmukan, joka jatkuvasti tarkistaa, onko nuolinäppäimiä painettu. Jos on, vanha neliö pyyhitään, neliölle lasketaan uusi paikka, ja uusi neliö piirretään. Silmukan loppuun kannattaa laittaa pieni hidastus, jotta liike ei olisi liian nopea.

Yksinkertainen mutta toimiva esimerkki:

'muuttujien tyyppi kokonaisluku
DEFINT A-Z

'320x200-resoluutio, 256 väriä
SCREEN 13

'aloituskoordinaatit
x = 100
y = 100

DO
  SELECT CASE INKEY$
  CASE CHR$(0) + CHR$(75) 'vasemmalle
    x = x - 1
  CASE CHR$(0) + CHR$(77) 'oikealle
    x = x + 1
  CASE CHR$(0) + CHR$(72) 'ylös
    y = y - 1
  CASE CHR$(0) + CHR$(80) 'alas
    y = y + 1
  CASE CHR$(27)           'Esc
    END
  END SELECT
  'jos x- tai y-koordinaatti on muuttunut, päivitetään näyttö
  IF x <> vx OR y <> vy THEN
    'pyyhitään vanha neliö
    LINE (vx, vy)-STEP(10, 10), 0, B
    'piirretään uusi neliö
    LINE (x, y)-STEP(10, 10), 1, B
    'tallennetaan vanhat koordinaatit
    vx = x
    vy = y
  END IF
  'hidaste
  WAIT &H3DA, 8
LOOP

Täydellinen lista näppäinkoodeista löytyy osoitteesta https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=napk

odys [22.06.2003 13:35:01]

#

Seuraavaksi teet semmoisen mikä tarkastelee kahta nappia samaan aikaan niin että pystyy liikkumaan myös vinosti :)

The Ohjelmoija [22.06.2003 14:35:00]

#

lainaus:

Seuraavaksi teet semmoisen mikä tarkastelee kahta nappia samaan aikaan niin että pystyy liikkumaan myös vinosti :)

Se on jo tuossa koodiesimerkissä mahdollista. Jos haluat mennä yläviistoon, niin näpytät esim. oikealle-ylös-oikealle-ylös jne.

Vilikki [22.06.2003 18:36:50]

#

lainaus:

lainaus:

Seuraavaksi teet semmoisen mikä tarkastelee kahta nappia samaan aikaan niin että pystyy liikkumaan myös vinosti :)

Se on jo tuossa koodiesimerkissä mahdollista. Jos haluat mennä yläviistoon, niin näpytät esim. oikealle-ylös-oikealle-ylös jne.

Siis ehkäpä Jope tarkoitti sellaista, että nimenomaan yhdellä liikahduksella liikutaan yläviistoon, oikea-ylös -yhdistelmällä tulee kaksi liikahdusta.

odys [22.06.2003 18:38:37]

#

Juuri sitä tarkotinkin :)

Jaqqo [26.06.2003 19:22:00]

#

Nuolinäppäimet voi tehdä muutenkin kuin numeroilla:
vasen:
CHR$(0) + "K"
oikea:
CHR$(0) + "M"
ylös:
CHR$(0) + "H"
alas:
CHR$(0) + "P"

Gix [27.06.2003 18:46:04]

#

niin voi, tota mä käytän yleensä.


Sivun alkuun

Vastaus

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

Tietoa sivustosta