Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Näppis ja joystick input library

pieslice [24.04.2007 01:23:54]

#

Olisi siis hakusessa input-device library joka toimisi itsenäisesti, ei kuten SDL joka vaatii että ohjelmaa ajetaan SDL-ikkunassa.

Natiivia Windows-APIA käyttämällä näppisinputtiin tulee lagia jollain systeemeillä enemmän kuin laki sallii.
Ja haluaisin myös joystick-tuen.

En välttämättä haluaisi käyttää DirectInputia koska muuten käytän OpenGL rendausta ja minulla ei välttämättä ole halua vaatia peliltäni Feb2007 DX runtimeä pelkän inputin vuoksi.

Alusta on siis Win32(XP), OpenGL/Cg graffalle ja FMOD Ex (WinMM/DirectSound) äänille.

Onko tolle inputille mitään muuta vaihtoehtoa kuin DirectInput?

Markus [24.04.2007 21:05:44]

#

Oletko varma, että SDL vaatii, että ohjelmaa ajetaan SDL-ikkunassa. Kokeile alustaa SDL pelkällä joystick-lipulla. Minulla nimittäin on sellainen kuva, että SDL:ää voi käyttää pelkkään syötteen lukemiseen.

Miksi muuten, et voi käyttää SDL-ikkunaa?

pieslice [25.04.2007 14:16:12]

#

Lähinnä siksi että WinMain tyypisen ohjelman porttaus konsoliohjelmaksi vaatii työtä, ja tietääkseni refresh ratea ei voi asettaa SDL ikkunassa, mikä on vaatimus projektissani?
Ja konsoliohjelma ja "sdl_main" ikkuna samassa ohjelmassa on muutenkin tosi epäpron näköistä.

Niin kyllähän varmaan toi SDLlän joystick toimiikin ilman sdl-ikkunaa, mutta näppis ei. olisi kuitenkin tarve saada myös näppis luettuja jotenkun muuten kuin GetAsyncKeyStatella.

Markus [26.04.2007 11:24:04]

#

pieslice kirjoitti:

Lähinnä siksi että WinMain tyypisen ohjelman porttaus konsoliohjelmaksi vaatii työtä

Mitä muuta muka tarvitsee tehdä, kuin vaihtaa pääfunktion nimi?

pieslice kirjoitti:

ja tietääkseni refresh ratea ei voi asettaa SDL ikkunassa, mikä on vaatimus projektissani?

En mene vannomaan, mutta muistan lukeneeni jostakin, että refresh raten voisi vaihtaa asettamalla jonkin ympäristömuuttujan. Miksi refresh rate pitäisi pystyä vaihtamaan? Se on esim. täysin merkityksetön litteissä näytöissä.

pieslice kirjoitti:

Ja konsoliohjelma ja "sdl_main" ikkuna samassa ohjelmassa on muutenkin tosi epäpron näköistä.

Jos "konsoliohjelmalla" tarkoitat sitä, että ohjelma avaa sen mustan konsoli-ikkunan, niin se ei riipu pääfunktion nimestä, vaan kääntäjän parametreistä. Voit avata (tai olla avaamatta) konsoli-ikkunan käyttäessäsi kumpaa pääfunktion nimeä tahansa.

C++ standartin mukaan pääfunktion nimi on "main". Windows on ainut alusta, joka tarjoaa vaihtoehtoisen pääfunktion nimen (en tosin ole aivan varma miksi). Kaikilla muilla alustoilla (esim. Linux ja Mac) pääfunktion nimi on aina main riippumatta siitä luoko ohjelma ikkunan vai ei.

lainaus:

Niin kyllähän varmaan toi SDLlän joystick toimiikin ilman sdl-ikkunaa, mutta näppis ei. olisi kuitenkin tarve saada myös näppis luettuja jotenkun muuten kuin GetAsyncKeyStatella.

Voit tietenkin pitää yllä taulukkoa näppäinten tilasta ja muuttaa sen arvoja aina WM_KEYDOWN ja WM_KEYUP tapahtumissa.

Mazzimo [26.04.2007 15:52:01]

#

OIS?

pieslice [27.04.2007 11:23:17]

#

Käytän DirectInputia. Se vaatii vaan jonkun dx9.0c version, ei välttämättä sitä (tai uudempaa) versiota millä SDK:lla peli on devattu.

Vastaus

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

Tietoa sivustosta