Jeps jeps, tuota olen pohtinut, kuinka sillä saa helposti tehtyä wikatoosa sovelluksia. Olen kehitellyt erästä autopelimoottoria, joka on jo melko pitkällä ja teen sen päälle joskus pelinkin, mutta ihan dos pelinä ei taida upota kehenkään... Onko c++:lle mitään Visual Basicin kaltaista, mieluiten sellaista jonka saa ilmaiseksi?
Olen toki kuullut jostain .net systeemeistä ynnä muista mutta vain sekavaa paskanjauhantaa..
.NET-systeemejä ei voi oikein C++:ksi kutsua, kun sama koodi ei edes algoritmien osalta käsittääkseni toimi.
Mitään ilmaista VB:n tyylistä en oikein tiedä (Dialog Editor ei ole tätä varten), mutta jos meinaat pelin tehdä, niin et tosiaan tarvitse Windowsilta kuin ikkunan (mihin kelpaavat raa'an WinAPIn ohella SDL, wxWidgets ja monet muut) ja viestinkäsittelyn, joka myös löytyy noista edellä mainituista. Kun kerran grafiikan kanssa joutuu kuitenkin väkertämään, niin kannattaa saman tien hoitaa kaikki valikot ja muutkin samalla eikä sotkea palikka-Windowsia niihin.
Noin muuten Windows-ohjelmien kannalta, wxWidgets on aika hyvä. Noita Drag'n'Drop-systeemejä ei hirveästi löydy, mutta sillä hakusanalla voi etsiä. Tietysti kunnon resurssieditorilla voi tehdä resurssitiedostoon dialogin, jonka saa sitten esille ShowDialog-funktiolla, mutta se ei varsinaisesti ole tätä varten. Valmis kirjasto (tai vaikka yksinkertainen itse tehty) on minusta peräti helpompi tapa, kun tuollaiset suunnitellut ohjelmat tahtovat usein mennä sijoiltaan, kun Windowsin fonttikokoa muuttaa.
Vaikka monien mielestä Windows API:n grafiikkarajapinta on huono, niin mun mielestä se yksinkertainen, tehokas ja suoraviivainen työkalu, kunhan vain ensin koodaa sen windows paskan alimmaiseksi, ja värkkää grafiikkafunktiot reilaan. Grafiikan, hiiren, bittikarttojen, äänen, yms. käsittely on helpppoa stantardi Windows-komponenteilla.
Mäkin kiinnostuin siitä STL-kirjastosta, tai sinne päin, mutta kun yritti saada sitä wörkkimään Borlandin 5.02 ja Builderin alla, niin kiinnostus kuihtui siihen.
Turbo Pascalissa oli aikoinaan tosi hieno ja simppeli grafiikkarajapinta. Windowssilla samanmoinen grafiikka onnistuu yhtä suoraviivaivesti, paitsi että se windows-mössö-munkki-latina pitää ensin toimittaa omiksi standarti-jutuiksi. Ei kannata turhaa koodia tähän lykätä, mutta jos kiinnostaa, niin sitten, ja jos jollakulla muulla ei nyt just sattuisi olemaan semmoista valmista windows-mössö-pohjaa valmiiksi koodattuna.
Kokeilin ruveta värkkäämään SDL:n kanssa, muuten ok mutta ilmeisesti cout ja muut tavalliset jutut ei sitten toimi?
Mitäs niillä, kun on graafinen käyttöliittymä? SDL ohjaa stdout- ja stderr-streamit vastaaviin tekstitiedostoihin stdout.txt ja stderr.txt. SDL:n voi toki kääntää uudestaan ilman tätä ominaisuutta, jos haluaa, mutta varsinaisestihan konsolia ei enää tarvitse.
Tietyssä määrin tuon (ja monen muun SDL:n heikkouden) takia henkilökohtaisesti mieluummin väännän WinAPIlla sen, mikä ei tule OpenGL:llä. Eipä sitä niin hirveästi ole. On kuitenkin kiva päästä debugaamaan ohjelmaa konsoliin tulostamalla.
Eli SDL:llä ei voi edes tekstiä tulostaa..? Onpa alkeellista... :D
E: Eipä näemmä toimi edes cin... Eli SDL = hienoja kuvia mutta mitään muuta ei voikaan tehdä... Mitä vittuu?
Saathan sillä tekstiä aikaan.. :-)
Piirrät vain sanan "TERVE" kuvatiedostoon ja piirrät sen näytölle, riippuen siitä mitä käyttäjä painaa. Sen saat selville SDL:n näppistapahtumafunktioiden avulla. Ja vissiin siellä on joitakin valmiita fonttifunktioita, joiden avulla tekstin saaminen näytölle tuskin on kovin ylivoimainen haaste.
Cout ja Cin on iostreamin valmiita tietovirtojen käsittelyyn tehtyjä olioita. Käytännössä suoraa komentoriville tulostettavaa / komentoriviltä luettavaa jutskaa.
Eh, SDL ei nyt ole ohjelmointikieli vaan hassu rajapinta graffaan ja kavereihin - nimikin sanoo, ettei sillä coutata. Cin, cout ja kaverit on C++-hommaa, ja niitä voi tietenki käyttää SDL:n ohessa :)
Niin ^_^
Ja SDL on kiva kirjasto, se kun ei ole mikään kumman .net systeemi joista kukaan ei todellisuudessa tiedä mitä ne sisältää ja miksi ne ovat..
Niillä voi lähinnä viillellä ranteisa jos Assemblyillä ei saakkaan konetta nettiin.. ;P
Tai se vanha kunnon frisbee-ajatus toimii kanssa :oo
Aihe on jo aika vanha, joten et voi enää vastata siihen.