Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: Merkkipohjainen seikkailupeli

Sivun loppuun

Jyri [01.10.2004 17:16:44]

#

Eli olen tekemässä merkkipohjaista seikkailupeliä QB:llä. Nyt on valmiina liikkuminen ja esteen tarkistus.

Ongelmana on se, että kun tarkistan esteen, niin ukko jää liian kauas esteestä, jopa n. 2cm päähän. Jos lähestyn estettä sivuilta, niin ukkeli menee ihan esteen viereen, mutta jos tulen ylhäältä, niin ukko jää juuri tuon 2cm päähän.

Esteen tarkistus näyttää tältä:

IF ux = estex + 1 AND uy = estey THEN
   ux = ux + 1

IF ux = estex - 1 AND uy = estey THEN
   ux = ux - 1

IF ux = estex AND uy = estey - 1 THEN
   uy = uy - 1

IF ux = estex AND uy = estey + 1 THEN
   uy = uy + 1

Ja esteenä käytetään O:ta (O)
este ohjataan paikalleen näin:

LOCATE estey, estex: PRINT "O"

eli miten ukkelin saisi (jos tullaan ylhäältä tai alhaalta) tulemaan lähemmäs estettä?

Metabolix [01.10.2004 17:26:18]

#

Tuossa koodissa ei näy päätä eikä häntää. Jos edessä on este, siirryt siitä taaksepäin? Tuo tarkistus suoritetaan ennen liikkumista, ja jos edessä on este, ei tehdä mitään, siis jätetään liikkumatta.

hunajavohveli [01.10.2004 17:49:36]

#

En oikein ymmärtänyt tuota senttimetri-selostusta. Eihän näytöllä mitään mitata senttimetreinä vaan merkkipohjaisessa pelissä merkkeinä, eli mikä tuossa nyt siis ongelma?

Jyri [01.10.2004 17:59:14]

#

Siis se on ongelma, että kun liikutan ukkelia estettä päin, niin ukkeli ei mene esteeseen kiinni, vaan jää siitä kauemmaksi.

Latska [01.10.2004 18:03:31]

#

Niin siinä vaan käy. Minäkin tein sellaisen pikkupelin, jossa ukko lentää matolla. No se ikäänkuin levitoi sen päällä. Jos todella haluaisit ukon esteeseen kiinni, este jäisi ukon päälle. Sinun muuttujillasi näin.

ux = estex
yx = estey

Metabolix [01.10.2004 18:23:07]

#

Tarkoitti ilmeisesti tätä, mutta pystysuunnassa:

Näin:
.........
..X...O..
.........
Ei näin:
.........
..XO.....
.........

Jyri [02.10.2004 09:05:18]

#

Heh! nyt sain toimimaan; melkein :D
Nyt ukkeli menee ylhäältä ja sivuilta tarpeeksi lähelle, mutta alhaalta ei toimi :D
vaikka kaikki onkin samalla periaatteella :DDDDDD

Eli tässä vielä selventävä kaavio:

O = este
X = ukko

...x...
..xox..
.......
...x...

eli nyt käy noin :D

Latska [02.10.2004 11:36:30]

#

uy = estey + 1

Eikö tuolleen onnistu?
:D
:D
:D
Vois muuten :D vähentää näiden ":D" -hymiöiden käyttöä. :DDDD

Gaxx [02.10.2004 12:49:34]

#

Tee vain niin kuin Metabolix sanoi, että kun käyttäjä painaa johonkin suuntaa, tutkit ruutua johon pitäisi liikkua. Jos ruutu on este, niin sitten ei tehdä mitään. Muussa tapauksessa liikutaan kyseiseen ruutuun.

Esimerkki ylöspäin liikuttaessa

if käyttäjä_painaa_ylös then 'Jos käyttäjä painaa ylös
   if estey <> uy - 1 then   'Jos yläpuolella olevassa ruudussa ei ole estettä
      uy = uy - 1            'liikutaan siihen
   end if
end if

Muut suunnat saat rustata itse, jotta varmasti ymmärrät idean.

Edit: Tyylivirhe

Jyri [03.10.2004 08:30:43]

#

Joo, sain toimimaan. Kiitti


Sivun alkuun

Vastaus

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

Tietoa sivustosta