Terve! Ajattelin kysäistä ns. Muistio ominaisuudesta.
Eli siis miten ihmeessä voidaan tehdä ohjelma, missä ylärivillä on nämä nappulat "Tiedosto, Muokkaa, Apua" esimerkiksi nuo ja niitä kun painaa alapuolelle aukeaa rivistö missä on esim "uusi, lataa, lopeta" tai muokkaan alla "korvaa" jnejne.
Sitten kun tähän notepadiin on kirjoitettu jotain. Esim:
"v = 2"
Miten kun se tallennetaan se voitaisiin "debugata" niin, että tuo tarkoittaa, että objektia liikutetaan nopeudella 2.
Kyseessä on uusi TehoGamesin suunnittelema työkalu, mihin olisi tarkoitus pistää hieman koodausta todellakin pois ja tehdä pienemmällä vaivalla kaikkea.
Kirjastoja Windowsin ikkunointiin
mika132 kirjoitti:
Sitten kun tähän notepadiin on kirjoitettu jotain. Esim:
"v = 2"
Miten kun se tallennetaan se voitaisiin "debugata" niin, että tuo tarkoittaa, että objektia liikutetaan nopeudella 2.
?
E: Jos haluat siis tuoda muuttujille arvoja tiedostoista, lue tideosto ja parsi sieltä arvo, jonka annat muuttujalle.
Lisäys:
Itse asiassa kirjoitin joskus C++:lla tuohon parsimiseen funktion.. en nyt uskalla luvata paljoa, mutta omassa käytössä toiminut hyvin ;)
std::string parse_setting (std::string line) { bool start = false; std::string ret; for (unsigned i = 0; i < line.length(); i++) { if (line[i] == '=') { start = true; continue; } if (start && line[i] != ' ') { ret.push_back(line[i]); } } if (!start) { throw OtherError ("Invalid settings-file!"); } return ret; }
OtherError on tietysti virheidenkäsittelyä varten tehty luokka.
Luin itsekkin wxWidgetsistä, mutta ei toimi. Jostain syystä en saa sitä lainkaan toimimaan. Jos yritän perustaa projektia käyttäen wxWidgetsiä niin se kysyy jotain include ja lib tiedostojen hakemistoa. Painan nappia "..." sen vieressä etin includet ja koitan painaa jatka niin valittaa, ettei jotain löydy?
Jos taas yritän tehdä tavallista console applicationia niin järjestelmä väittää että "wx/wx.h" ei ole olemassa? Vaikka se kyllä on "MinGW/include/wx" kansiossa.
Varmaan jotain polkuja saat määrittää jonnekin linkkerin asetuksiin. Sitten on tietysti Qt ja se toinen, jota en mainitse x) Lataa ja asenna QtSDK.
Ja muuten tuohon tiedostoon tallentamisesta. Meinasin enemmän, että kyseinen "notepad" ohjelmaan kirjotettaisiin scriptiä. Miten ne saadaan suoritettua. Siis miten voin ohjelmoida scripti alustan? Olisiko se helpoin. En usko, että se toimii niin, että ohjelma tarkistaa esim näin:
tarkistetaan tiedostosta rivi kerrallaan tietoa. Tallennetaan esim muuttujaan RIVI aina yksi rivi
Sitten
for(line = 0; line <= tiedosto.size(); line++) { if(RIVI == "move_object()") { //TEHDÄÄN TÄMÄ. } }
Mod. korjasi kooditagit!
No nyt mennään jo ohjelmointikielen kehittämiseen. Jos siis skriptikielen haluat tehdä niin ei varmaan ole ihan pieni koodinpätkä tai edes projekti.
Laitapa tuo nykyinen liikuta_objektia() funktion toteutus erille. Sieltä pitäisi löytyä muutuja, jolla nopeutta hallitaan. Arvon lukeminen tiedostosta pitäisi olla aika triviaalia.
Joku tällainen koodirivistö sieltä koodistasi kaiketi löytyy.
void liikuta_objektia(auto& kaara) { double x_muutos = kaara.anna_nopeus() * asetukset["ajan_muutos"] * std::cos(kaara.anna_kulma()) * asetukset["skaalaus"]; std::clog << "x_muutos = " << x_muutos << std::endl; double y_muutos = kaara.anna_nopeus() * asetukset["ajan_muutos"] * std::sin(kaara.anna_kulma()) * asetukset["skaalaus"]; std::clog << "y_muutos = " << y_muutos << std::endl; double uusi_x = kaara.anna_x() + x_muutos; double uusi_y = kaara.anna_y() - y_muutos; kaara.aseta_paikka(uusi_x, uusi_y); }
Taas tuntuu, että olet (tapasi mukaan) menossa kovaa vauhtia "perse edellä puuhun". Jos, et saa tehtyä edes perus GUI:ta, niin ei ole mielestäni mitään järkeä yrittää koodata jotakin editoria/koodigeneraattoria ym. makro/skriptikieli systeemiä, tai mitä lie kummallista yritätkään tehdä...
Aihe on jo aika vanha, joten et voi enää vastata siihen.