Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: apua peliin

Sivun loppuun

malkkis [07.03.2005 16:34:32]

#

Olen tekemässä (QB)seikkailupeliä, jossa pitäisi pystyä liikkumaan kuten nethacissa.(joo, surkee räpellys siitä kumminkin tulee)Kysyisinkin nyt vain, miten pelimaailma pitäisi tehdä(ASCII-grafiikoilla) eli piitäkö liikuttaa huonetta vai pelihahmoa?Kuinka tämän voisi hoitaa? Älkää kiitos pitäkö n00bin kysymystä tyhmänä.

eraggo [08.03.2005 06:19:27]

#

kannattaa käyttää inkey$ -komentoa...

lue helpistä miten se toimii... :-)

eraggo [02.04.2005 16:44:03]

#

ja pieni lisäys: älä liikuta huonetta... Se on erittäin vaikeaa (kokemusta on). Ehdottaisin että liikkuminen on eri kerrosten välillä olisi saman tyylistä kuin NetHackissa... Eli siis etsitään portaikko ja painetaan jotakin näppäintä, jotta pelaaja voisi siirtyä seuraavaan kerrokseen... :)

Tämä pieni projekti saattais kiinnostta myös minua...

hunajavohveli [02.04.2005 16:56:06]

#

Kirjoitan juuri opassarjaa tuollaisten pelien tekemisestä. Toivon mukaan saan toisen osan piakkoin valmiiksi, niin voin julkaista sen yhdessä ensimmäisen kanssa.

tgunner [02.04.2005 22:37:57]

#

Jee minäkin olen tekemässä sen tyylistä peliä (vaikka QBASIC on aika huono kieli siihen)
Voin antaa aluksi esimerkin liikkumistyylistäni:

WIDTH 80, 50 ' Koko
x1 = 1: y1 = 1 ' Tämä on se @ merkkiukko
DO
painallus$ = INKEY$

IF vanhax1 <> x1 OR vanhay1 <> y1 THEN ' Tämä on aika kömpelö tyyli tehdä ukon poistaminen, mutta en viitsi kertoa minun tyyliäni koska se oli aika vaikea tehdä :)
CLS
vanhax1 = x1: vanhay1 = y1
LOCATE vanhay1, vanhax1: PRINT " "
LOCATE y1, x1: PRINT CHR$(64) ' 64 on @
END IF

'Liikkuminen
IF y1 >= 6 THEN IF painallus$ = CHR$(0) + CHR$(72) THEN LOCATE y1, x1: PRINT " ": y1 = y1 - 1 'Ylös
IF y1 <= 49 THEN IF painallus$ = CHR$(0) + CHR$(80) THEN LOCATE y1, x1: PRINT " ": y1 = y1 + 1 'Alas
IF x1 >= 2 THEN IF painallus$ = CHR$(0) + CHR$(75) THEN LOCATE y1, x1: PRINT " ": x1 = x1 - 1 'Vasen
IF x1 <= 79 THEN IF painallus$ = CHR$(0) + CHR$(77) THEN LOCATE y1, x1: PRINT " ": x1 = x1 + 1 'Oikee


LOOP UNTIL painallus$ = CHR$(27) ' Loopataan kunnes painetaan ESC

Mutta ei ole tietenkään sopivaa vain kysellä valmiita koodeja, joten kokeile kehittää omakin, tuo on vai opetukseksi.

hunajavohveli [02.04.2005 22:41:02]

#

Ei sitä piirtämistä ja kumitusta pidä tehdä kuin yhden kerran. Menee aivan sekaisin koko koodi, jos rupeaa laittamaan erikseen jokaiselle liikkumissuunnalle. Malttakaa odotella sitä opassarjaa. Yritän selittää asiat siinä niin hyvin kuin osaan.

tgunner [02.04.2005 23:10:09]

#

Täh miten niin erikseen jokaiselle liikkumissuunnalle?
Pitäisikö noi liikkumiset sijoittaa johonkin ton DO LOOP:n ulkopuolelle ja sitten lataa ne jotenkin tohon?

Valaise vähän tuolla ideallasi jos sopii ;)

Metabolix [02.04.2005 23:46:40]

#

Ensin luetaan näppäin, sitten kumitetaan, sitten liikutaan, ja lopuksi piirretään. Vaikkapa niin.

rndprogy [02.04.2005 23:47:47]

#

Noita printtejä ja locateja ei tarvitse ollenkaan noissa if lauseissa koska vain koordinaatteille tehdään jotakin.

Metabolix [03.04.2005 09:34:30]

#

Ja vaikka eraggo sanoo toista, minä suosittelen mieluummin tason liikuttamista, koska silloin voit tehdä maailmoja, jotka ovat suurempia kuin pelaajan näyttö. Tällöin on järkevintä piirtää aivan kaikki silmukan lopussa (ensin taso, sitten tyyppi kaiken keskelle) eikä mitään aiemmin.

hunajavohveli [03.04.2005 11:39:32]

#

R.Nyrhinen kirjoitti:

Valaise vähän tuolla ideallasi jos sopii ;)

Valaisen asiaa kyllä siinä oppaassa sitten. :) Pääsin eilen taas hyvin vauhtiin kirjoittamisessa. Toinen osa saattaa valmistua jo ensi viikolla. Kerron myös mahdollisesti tulevissa oppaissa tuosta tasonliikuttamisvaihtoehdosta, jossa pelaaja pysyy keskellä näyttöä ja taso liikkuu vastakkaiseen suuntaan kuin pelaaja. Mutta ensin käsittelen sen, että pelaajan liikuttama merkki itse liikkuu, koska näin se on useimmissa merkkigraafisisssa peleissä (ainakin mitä itse olen pelannut).

tgunner [03.04.2005 12:15:44]

#

Joo kiitos, kokeile kirjoittaa se vauhdilla :D. Milloin se muuten ilmestyy?

hunajavohveli [03.04.2005 12:41:33]

#

Ensimmäinen osa on jo valmis, ja ajattelin julkaista sen yhdessä toisen osan kanssa. Ja toinen osa, kuten sanoin, valmistunee toivon mukaan jo ensi viikon puolella.

E.K.Virtanen [03.04.2005 16:06:00]

#

Metabolix kirjoitti:

Ja vaikka eraggo sanoo toista, minä suosittelen mieluummin tason liikuttamista, koska silloin voit tehdä maailmoja, jotka ovat suurempia kuin pelaajan näyttö. Tällöin on järkevintä piirtää aivan kaikki silmukan lopussa (ensin taso, sitten tyyppi kaiken keskelle) eikä mitään aiemmin.

Aivan totta, ei koko näyttöä kannata kerrallaan valloittaa. Näyttämällä vain osan pelattavasta maailmasta esim. 20x20 boksissa antaa mahdollisuuden tehdä muita tarvittavia "bokseja" näyttöön.

hunajavohveli [05.04.2005 22:41:28]

#

Olen nyt saanut kirjoitettua toisen osan valmiiksi. Sitä tarkistellaan nyt, ja oppaat julkaistaneen heti, kun saan mahdollisesti löytyvät virheet korjattua. Eli kaippa sitä uskaltaa piakkoin odottaa. :)

hunajavohveli [09.04.2005 13:28:41]

#

No nyt on julkaistu, jos et ole vielä etusivulta huomannut.
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=qbmgpo1
Tuossa lähdetään liikkeelle aivan alusta, joten ei tarvitse tietää mitään ennalta tällaisen pelin tekemisestä, mutta QB:n ja ohjelmoinnin perusteet yleensä pitäisi olla kyllä hanskassa.


Sivun alkuun

Vastaus

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

Tietoa sivustosta