Domanda

In una domanda correlata ho chiesto come ottenere input tramite IUP . Funziona bene, tranne per il fatto che attraversa il sistema ed è soggetto al tasso di ripetizione che non è ottimale per un gioco. Quello che mi piacerebbe davvero è la capacità di ottenere lo stato corrente di qualsiasi chiave in un determinato momento. C'è un modo per farlo (tramite IUP o altro)?

È stato utile?

Soluzione

Probabilmente dovrai avvolgere le chiamate verso l'API Win32 appropriata, DirectX o qualsiasi altra cosa in un modulo lua. La cattura di eventi di battitura dei tasti in IUP richiede che vengano consegnati alla finestra o al controllo tramite il "normale" Meccanismo dei messaggi di Windows, e probabilmente non è l'approccio migliore in un framework di gioco.

È possibile utilizzare un oggetto timer IUP per eseguire un ridisegno su una pianificazione, ma è comunque necessario un modo per raccogliere lo stato della tastiera. Se desideri utilizzare un gamepad, un joystick o qualsiasi HID diverso da tastiera e mouse, IUP non ti aiuterà direttamente in nessun caso.

Questo è fatto facilmente con una piccola quantità di codice C compilato in una DLL.

Può essere fatto abbastanza facilmente con SWIG , per alcuni tipi di API. Altri eseguiranno un lavoro di installazione / smontaggio sufficiente per rendere più semplice il confezionamento manuale.

Esiste anche il Alien per Lua che consente chiamate dirette in API arbitrarie da pura Lua. Alien è incluso come parte di Lua per Windows , nonché attraverso la pagina del progetto su Luaforge. Lo stesso Alien è anche un po 'portatile su tutte le piattaforme, anche se non lo chiameresti.

Qualcos'altro da guardare mentre segui questo percorso è uno o più motori di gioco esistenti. Di solito, questi nascondono il ciclo degli eventi all'interno del motore (come fa IUP) ma sono ottimizzati per la creazione di giochi piuttosto che per le applicazioni desktop.

Esiste un numero là fuori di cui ho sentito voci sulla mailing list di Lua. Uno che viene in mente perché è stato menzionato abbastanza spesso è L & # 214; VE .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top