Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Kuinka tehdä roguelike (C++)?

Sivun loppuun

Wisva [17.04.2007 18:55:19]

#

Olen vasta aloittelija c++ohjelmoinnissa (ja ohjelmoinnissa muutenkin) ja tarvitsen keinon tehdä ns. roguelike-pelejä. Luin aiempia keskusteluja aiheesta, muttei juttu vielä selvinnyt. Jos joku viitsii vastata niin selittäkää neuvonne kohtuullisen tarkasti, en tiedä vielä täysin perus asioitakaan, kuten olioiden käyttämistä.

Kiitos vastauksista jo etukäteen!

tgunner [17.04.2007 19:47:11]

#

Lue putkan qbasicille kirjoitettu rogue-tutoriaali. Opettele käyttämään ncursesia (tai pdcursesia windowsissa) ja lue uusiksi ne vanhat keskustelut.

Ja tietenkin kannattaa opetella koodaamaan ennen pelien tekemistä!

Aruviel [17.04.2007 20:52:20]

#

PaulKP:n viisauksia:

http://koti.mbnet.fi/paulkp/articles/rlcrash.htm

Hyvin mukavaa luettavaa.

Wisva [18.04.2007 16:13:45]

#

Kiitos vastauksesta TGunner, mutta kun se opas on qbasicille, niin en tiedä millä sanalla pitäisi korvata, vaikka WIDTH tai CLS.
Kiitos Aruvielillekin, mutta taidan olla liika huono englanninkielessä, että tarpeeksi ymmärtäisin tota sivua.

tgunner [18.04.2007 16:19:14]

#

No en meinannutkaan sitä, että lukisit qbasicin mukaan. Teoria ja toteutuskeinot siitä oppaasta kantsii lukea.

Metabolix [18.04.2007 18:12:39]

#

Kuten lukuisista aiemmista aiheista selviää, peliä ei tehdä periaatteella "moi, aloitin juuri koodauksen, auttakaa minua tekemään peli". Pelinteosta on turha haaveilla, jos ei ensin osaa tehdä vaikka silmät kiinni kaikenlaisia perusasioita. Edes pienikokoinen "iso projekti" ei ole oikea paikka opetella kielen komentorakenteita, ja käytettävistä kirjastoistakin kannattaa olla jonkinlainen peruskäsitys. On syytä osata itse etsiä niitä "komentoja" eli tässä kielessä funktioita. Sekään ei vielä riitä, koska varsinainen ohjelmointi ei ole vain hassujen komentojen lätkimistä peräkkäin vaan toiminnallisten kokonaisuuksien ymmärtämistä.

hunajavohveli [18.04.2007 21:30:04]

#

Wisva kirjoitti:

Kiitos Aruvielillekin, mutta taidan olla liika huono englanninkielessä, että tarpeeksi ymmärtäisin tota sivua.

Aruvielin linkin takana kerrotaan, että rogueliket ovat yksinkertaisesta ulkonäöstään huolimatta kaikkea muuta kuin helppoja projekteja, mikä pitää täysin paikkansa. Kielen perusasioiden lisäksi jo yksinkertaisenkin rogueliken toteutus vaatii melko lailla kokemusta ohjelmoinnista yleensä. Suosittelen siis aloittamaan jostain helpommasta.

Wisva [19.04.2007 16:42:05]

#

Joo ei tämä nyt ensimmäinen asia, jota yritän ohjelmoida. Enkä varsinkaan sen jälkeen kun olette selittäneet kuinka vaikeaa on tehdä kunnon roguelike, aio tehdä mitään monimutkaista. Tarvisen vain tiedon siitä miten merkin saa ilmestymään juuri tiettyyn paikkaan näytölle, katoamaan siitä ja ilmestymään toiseen nimenomaiseen paikkaan. Kunnon tekoälyä tai satunnaisgenerointi laitetta en tässä vaiheessa edes yritä.

kayttaja-4976 [19.04.2007 17:45:47]

#

Kuten jo edellä mainittiin, tutustuisit ncursesiin.

Grez [19.04.2007 17:46:56]

#

Käytännössä merkin katoaminen tapahtuu kirjoittamalla toinen merkki samaan kohtaan, esimerkiksi välilyönti eli tyhjä.

Merkin kirjoittaminen tiettyyn kohtaan ruutua riippuu ympäristöstä. Eri ympäristöille löytyy erilaisia kirjastoja, esim. unix-tyylisissä ympäristöissä käsittääkseni ncurses. (Käsittääkseni siksi että en ole koskaan tehnyt moista itse)

TsaTsaTsaa [19.04.2007 19:07:48]

#

Tai sitten voi käyttää ANSI-koodeja: http://www.corecoding.com/getfile.php?file=4

Eli esim näin:

#include <string>
#include <iostream>

using namespace std;

int main() {
  string teksti = "ESC[5,4HTämä teksti tulostuu riville 5, sarakkeeseen 4\n";
  cout << teksti;
  return 0;
}

Joku viisaampi voikin sitten kertoa, minkälaisissa ympäristöissä nuo toimivat. Minulla ainakin toimii.

Muoks: Tosin enpä tiedä sitten kuinka tuo pelittää, jos tulostuskohta halutaan ottaa jostain muuttujasta.

Wisva [20.04.2007 14:43:10]

#

Kiitos vastauksista, ihmiset. Lueskelin juuri ohjelmointiputkan Ncurses opasta, ja luulen että nyt alkaa pikkuhiljaa onnistua pelin väkertäminen. Kiitos vielä kaikille.

Deewiant [20.04.2007 15:32:18]

#

TsaTsaTsaa kirjoitti:

Tai sitten voi käyttää ANSI-koodeja
<..>
Joku viisaampi voikin sitten kertoa, minkälaisissa ympäristöissä nuo toimivat. Minulla ainakin toimii.

DOS-pohjaisissa, eli Windows ME/9x/3.x/2.x/1.x, ja tietenkin itse DOS:ssa.

EDIT: näköjään ansi.sys löytyykin myös uudemmista Windowseista. Oletuksena se ei vain ole käytössä.

Pekka Karjalainen [20.04.2007 17:18:48]

#

TsaTsaTsaa kirjoitti:

Muoks: Tosin enpä tiedä sitten kuinka tuo pelittää, jos tulostuskohta halutaan ottaa jostain muuttujasta.

No kyllä tiedät, koska osaat käyttää sprintf-funktiota, tai C++-kielessä kirjoittaa stringiin muuttujan arvon. Tuon ANSI-koodiväkkyrän kun voi rakentaa ajonkin aikana.

Stringstreameista: http://www.cppreference.com/cppsstream/index.html

Aiheeseen liittyen: Kyllä se ncurses on minusta parempi. Putkassakin on siihen alkeisopas.


Sivun alkuun

Vastaus

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

Tietoa sivustosta