Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB, VB6: Merkkipohjainen peli

Sivun loppuun

ttuoppi [30.07.2004 14:18:50]

#

Juu, kertokaapas minulle pari juzkaa kun ei tahdo jotkin asiat millään upota paksun kalloni läpi ;)

1) Tämän kyllä oasaisin tehdä (ja olenkin tehnyt) mutta pääsi unohtumaan. Eli, miten saatiin esim. jokin kirjain liikkumaan nuolinäppäinten mukaan. (QB)
2) kuinka saa kaksi kirjainta reagoimaan toisiinsa jos ne kohtaavat? (QB)
3) Ja jos vielä valaisisitte minulle kuinka tilekarttojen käsittely käy visual basicilla? Antakaa vaikka pikku esimerkki kuinka jonkun 32*32 kuvan saa liikkumaan pikkuruisella alueella ja reagoimaan jos se törmää esteeseen. (VB)

tuomas [30.07.2004 14:20:34]

#

Tuohon kolmos kysymykseen vastaten:
kurkkaa putkassa olevaa jakija esimerkki peliä.

hunajavohveli [30.07.2004 14:28:09]

#

1) Tallennat kirjaimen koordinaatit taulukkoon ja muutat koordinaatteja ennen kuin tulostat kirjaimen uuteen paikkaan.
2) Tarkistat, onko kirjaimilla samat koordinaatit.
3) Yhdyn tuomakseen.

ttuoppi [30.07.2004 14:40:09]

#

Hupsista! Juu tosiaan, minähän eilen vilkaisin sitä opasta ja aattelin tännä lukea kunnolla... Alkaa ikä viemään jo muistia ;)

nomic [30.07.2004 14:41:01]

#

if ukkox + 1 = maatax then 'jos edessä on maata eikä muuta rojua sitten
  kuvamaatax = ukkox 'laitetaan vanhaan kohtaan maata
  ukkox = ukkox +1
  kuvaukkox = ukkox 'piirretään ukkoxi uuteen paikkaan
end if

siinä miten homma toimii karkeasti

ja jos haluat reagointia niin:

 if ukkox + 1 = vihux then 'eli jos edessä on vihulainen
   end
 end if

ja suosittelisin katsomaan koodivinkkejä, perehtymään niihin ja sisäistämään asiat, se on enemmän kuin järkevää, opit samalla erilaisia tekniikoita miten mikäkin asia luodaan sekä erilaisia algoritmeja löytyy ja kaikkea kivaa ;) kunhan ite saan taas netin himaan niin vois pistää jonkun karun esimerkin jostain asiasta joka sinä hetkenä vaivaa monia (niinkuin vähän aikaan sitten kaikki oli luomassa roolipelejä, 3d:tä, picture:n liikuttamista pelin grafiikkana(eih!) ja muuta...)

ttuoppi [30.07.2004 14:43:42]

#

HUNAJAVOHVELI!!! Et viittis tulla meseen ja lähettää mulle sen VB vitosen ku mulla ei toimi mikään visual basic enää...

hunajavohveli [30.07.2004 15:00:20]

#

No eikös sen nyt saa ilmaiseksi netistä?

ttuoppi [30.07.2004 15:06:16]

#

Saa saa mutta vaikka latasin uudestaan niin ei toiminu... Nyt olen varmaan poistanut sen... Ja VB kolmonen valittaa että "Error in loading DLL" kun yrittää avata projektia (uutta tai tallennettua, ei väliä).

hunajavohveli [30.07.2004 16:10:33]

#

No ei kai se sitten toimisi, vaikka mä lähettäisinkin sen. Samahan se nyt on, mistä se on ladattu. Jos ei toimi, niin ei toimi, mutta uskon kyllä, että tuon DLL-errorin saisi jotenkin korjattua.

nomic [30.07.2004 16:20:57]

#

mitä dll-erroria se herjaa?

ttuoppi [30.07.2004 16:26:55]

#

Hunajavohveli: No miten sen sitten vois korjata?

Nomic: Paha sanoa tarkemmin kuin että siihen tulee messagebox: "Error in loading DLL.". Ohjelma toki toimii mutta projekteja ei voi aloittaa. (hmm... Eli oikestaan ohjelma ei toimi.)

nomic [30.07.2004 16:30:42]

#

ttuoppi, et ole sattumoisin tehnyt koneellee mitään radikaaleja muutoksia? esim säätänyt jotain omaa joissakin wintoosan kansioissa tj?
eli ennen toimi vb sulla, ja nyt ei. mutta onko tässä välissä jotain tapahtumaa esim wintoosan päivitys tj?

jos koodaaminen on tärkeää niin sitten vaa formattia :D

ttuoppi [30.07.2004 16:34:45]

#

En ole tehnyt tietääkseni tehnyt mitään. Windowsin kansion olen ehkä puolen vuoden aikana aukaissut kahdesti... Ja itseasiassa olen niin vähän puuttunut koneen asioihin että en ole edes vaivautunut hakemaan viimeisintä virussuojaus päivitystä :)

ttuoppi [30.07.2004 17:36:33]

#

Jaa kai minä sittenkin olen jotain tehnyt koska ongelma ratkesi järjestelmän palauttamisella. No...Pääasia että pääsen taas koodaamaan! :D

nomic [30.07.2004 21:23:30]

#

noni! :) jos saat pelin tynkää tehtyä niin voit tietysti lähetellä minulle esimakua jos vaan sopii? voin sitten vastaavasti lähetellä takaisin jotain omia ja vertaillaan :)
tai no tämäkin onnistuu vasta sitten kun saan himaan netin takas :<

ttuoppi [31.07.2004 13:23:50]

#

nomic: Juu, voinhan minä lähettääkkin kun (ja jos) saan jotain sen arvoista aikaiseksi :) Nyt ajattelin alkaa kyhäämään Visual Basicilla fantasia peliä (olenkin tainnut jo mainita sen jossain keskusteluissa ja kotisivuillani)... Mutta homma edistää aika hitaasti, siihen on kaksi syytä:
1) Olen ohjelmoinut aika vähän.
2) Vanhemmat kyttää kokoajan etten ole liikaa koneella :(

Olenkin tässä miettinyt että miten hoidan siinä pelissä maailmassa liikkumisen. Ensin ajattelin tehdä pelin CoolBasicilla mutta päätin etten sorru käyttämään mokomaa kieltä... Ja VB:llä en osaa käyttää vielä tilejä... Taidan tehdä ykkösversion merkkipohjaiseksi.

Taistelusysteemi ei ole ongelma, olen jo saanut aikaan aika hyvän. Löysin jopa hyvän (laillisen) musiikin taisteluun. Pitää vaan opetella soittamaan musiikkia VB:llä...

ttuoppi [31.07.2004 17:10:39]

#

Kuinkas muuten onnistui näppäinten luku QB:llä ilman inputia?

EDIT: ilmeisesti tämä oli niin tyhmä kysymys ettei kukaan viitsi vastata :s

Claw [31.07.2004 17:31:27]

#

(ei oo qb ollu käytössä muutamaan kuukauteen ni en tiiä toimiiko ollenkaa mutta vaikka näin:

do
Select case inkey$
case "W"
YkkoY = UkkoY -1

case "D"
YkkoX = UkkoX +1

case "S"
YkkoY = UkkoY +1

case "A"
YkkoX = UkkoX -1

case chr$(27)
end
end select
loop
eikä toi oo todellakaan mikään hyvä ratkasu varmaankaaa, mut pitäis toimia silti...

ttuoppi [31.07.2004 17:38:21]

#

Claw kirjoitti:

(ei oo qb ollu käytössä muutamaan kuukauteen ni en tiiä toimiiko ollenkaa

Kyllä toimii. Kiitti.

hunajavohveli [31.07.2004 18:49:17]

#

INPUT$(1)-funktio löytyy myös. Se odottaa kunnes jotain näppäintä painetaan, ja sitten vasta jatkaa ohjelman suoritusta. Tavallaan INPUT$(1) on sama asia kuin DO-LOOP:iin laitettu INKEY$, jota kannattaa käyttää silloin, kun silmukka saa pyöriä, vaikkei näppäintä painettaisikaan.
Eli siis näin:

Select case input$(1)
case "W"
YkkoY = UkkoY -1

case "D"
YkkoX = UkkoX +1

case "S"
YkkoY = UkkoY +1

case "A"
YkkoX = UkkoX -1

case chr$(27)
end
end select

ttuoppi [31.07.2004 21:10:03]

#

Mikähän olisi järkevin keino tehdä pelikenttään kaikki elementit kuten seinät, ovet, ihmiset jne (merkkipohjaisesti). Ja vielä silleen et saa laitettua helposti mitä tapahtuu jos vaikka jotkin kaksi kirjainta tai seinä kohtaavat...

hunajavohveli [31.07.2004 23:04:11]

#

Tallenna kenttä taulukkoon, jossa tietty numero vastaa esim. seinää, ovea, maata jne. Kaikki liikkuvat oliot kannattaa pistää omaan taulukkoonsa, ja piirtää kentän päälle. Ja kahden kirjaimen kohtaamisen tarkistus tehdään edelleenkin tarkistamalla, onko kirjaimilla samat koordinaatit. Jos on, ne ovat samassa kohdassa.

nomic [31.07.2004 23:25:21]

#

hunajavohveli muuten hyvä mutta tuo osumakohtaus-juttu sen tekisin itse eritavoin, en ala kyseenalaistamaan mitään mutta eikös olisi järkevämpää tehdä näin ennemmin:
(ei mitään koodiesimerkkiä kun ei enään ole mitenkään muistissa qb)
aluksi tarkistetaan vaikkapa että onko edessä mitään
jos ei ole, niin sitten vasta pyyhitään nykyinen kohta ja siirrytään seuraavaan?

if seuraavapaikka = " " then
 kirjoitetaan nykyiseen kohtaan " "
 siirrytään
 piirretään ukko uusiksi
else
 jotainonedessä
end if

funkkari jotainonedessä
 katotaas mitä on edessä
 esim
 edessä = "*" then
  print "edessä on puu!"
endi funkkarii

kuin se että liikutaan ja katotaan vasta sitten mitä on samaan aikaan päällä koska siinä syntyy helposti bugi ja kone työntää eteenpäin vaan koodia :)

hunajavohveli [31.07.2004 23:58:37]

#

Nomic: Jos edessä on jotain, niin eihän se välttämättä tarkoita sitä näytöllä näkyy siinä kohdassa jotain. Voivathan viholliset olla vaikka näkymättömiä yms.
Olen itsekin merkkigrafiikkaisia pelejä tehdessäni ensin tarkistanut näytöltä kaiken, mutta olen sittemmin tullut siihen johtopäätökseen, että se on huono tapa, ja on parempi lukea tiedot taulukosta. Ja olen sen verran tehnyt näitä merkkigrafiikkapelejä, että minulla on niistä melko runsaasti kokemusta.

nomic [01.08.2004 23:05:53]

#

hunajavohveli, ei vaan luetaan kaikki taulukosta, sitä mä meinasin :)

mutta millä tavoin on huonoa tarkistaa näytöltä? minusta se johdattaa samaan tilanteeseen kuin taulukko koska kaikki mikä on näytöllä on taulukossa samalla tavoin

eli taidamme samaa asiaa takaa erikohdista katsottuna :)
nyt jätetään tämä offtopikki-hössötys, viestinaloittaja on varmasti jo saanut jotain käsitystä asiasta johon hän halusi vastauksia... :]

Blaze [02.08.2004 00:04:45]

#

nomic kirjoitti:

mutta millä tavoin on huonoa tarkistaa näytöltä? minusta se johdattaa samaan tilanteeseen kuin taulukko koska kaikki mikä on näytöllä on taulukossa samalla tavoin

Kun tarkistaa taulukosta, hökötys on helppo muuttaa myöhemmin graafiseksi.

nomic [02.08.2004 04:48:08]

#

blaze, jep. aluksi viedään mappi taulukkoon ja sen jälkeen piirretään näytölle
kun liikutaan tarkistetaan taulukosta onko mitään edessä verraten omiin koordinaatteihin? eikös se näin suju? vai onko multa mennyt nyt taas jotain pahasti ohi? :D

hunajavohveli [02.08.2004 09:55:28]

#

nomic kirjoitti:

mutta millä tavoin on huonoa tarkistaa näytöltä? minusta se johdattaa samaan tilanteeseen kuin taulukko koska kaikki mikä on näytöllä on taulukossa samalla tavoin

Ei ole. Jos vaikka kentän päälle on piirretty monsteri, se peittää alleen, sen mikä kuuluu kenttään. Näin ollen on siis parempi pitää kenttä taulukossa. Mutta hyvä, jos kerran tarkoititkin taulukosta lukemista.

Blaze [02.08.2004 10:57:06]

#

nomic kirjoitti:

kun liikutaan tarkistetaan taulukosta onko mitään edessä verraten omiin koordinaatteihin? eikös se näin suju?

Kyllä, jos liikutaan vasemmalle, katsotaan, onko ukon vasemmalla puolella olevassa ruudussa vapaata. Jos on, niin sitten vasta liikutaan, muuten istutaan ja idlataan paikoillaan.


Sivun alkuun

Vastaus

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

Tietoa sivustosta