.[ ČeskéHry.cz ].
Level Editor s SDL

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Houp



Založen: 28. 07. 2007
Příspěvky: 672

PříspěvekZaslal: 4. červenec 2010, 13:02:24    Předmět: Level Editor s SDL Odpovědět s citátem

Nechci, aby můj editor zabíral veškerý čas procesoru, tak používám pro načítání událostí z fronty :

SDL_WaitEvent( &event );

Problém mi teď nastal, když potřebuji/chci posouvat mapu pomocí držení klávesy, což vyvolá pouze event zmáčknutí klávesy, pak se nic neděje dokud klávesy nepustím.

Jak byste to řešili? Napadá mě v tomto případě posíalt do fronty eventu nějaký event, aby mi to nezastavilo aplikace a já se mapu mohl posunout, jak chci.

Druhé řešení, nepoužívat SDL_WaitEvent( &event ), ale SDL_Delay() pro nezatížení procesoru.

Je nějaké jiné, elegantnější řešení?
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
frca



Založen: 28. 07. 2007
Příspěvky: 1552

PříspěvekZaslal: 4. červenec 2010, 13:28:30    Předmět: Odpovědět s citátem

Použít jak WaitEvent, tak PollEvent (ten v případě stisklé klávesy).
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Houp



Založen: 28. 07. 2007
Příspěvky: 672

PříspěvekZaslal: 4. červenec 2010, 15:41:32    Předmět: Odpovědět s citátem

Dík, super nápad. Problém řeší skvěle. Smile
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
gindar



Založen: 05. 10. 2007
Příspěvky: 86

PříspěvekZaslal: 4. červenec 2010, 17:47:14    Předmět: Odpovědět s citátem

SDL_EnableKeyRepeat(delay, interval)
http://www.libsdl.org/docs/html/sdlenablekeyrepeat.html

Nevýhodou je, že nastavuje opakování pro všechny klávesy.
Teď nevím jestli radím dobře.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Ladis



Založen: 18. 09. 2007
Příspěvky: 1533
Bydliště: u Prahy

PříspěvekZaslal: 5. červenec 2010, 14:04:52    Předmět: Odpovědět s citátem

Já použil řešení, co píše Gindar:
kód:
SDL_EnableKeyRepeat(250, 33);   // opakovani klaves (prodleva 250 ms, opakovani 30/s)

_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna