Question

Dans une question connexe, j'ai demandé comment obtenir des informations via IUP . Cela fonctionne très bien, sauf qu’il passe par le système et est sujet au taux de répétition, ce qui n’est pas optimal pour un match. Ce que j'aimerais vraiment, c’est la possibilité d’obtenir l’état actuel d’une clé à un moment donné. Existe-t-il un moyen de le faire (via IUP ou autrement)?

Était-ce utile?

La solution

Vous devrez probablement encapsuler les appels vers l'API Win32 appropriée, DirectX ou tout autre composant d'un module lua. La capture d'événements de frappe dans IUP nécessite d'être transmise à la fenêtre ou à la commande via le paramètre "normal". Le mécanisme de message Windows n’est probablement pas la meilleure approche dans un framework de jeu.

Vous pouvez utiliser un objet Minuterie IUP pour exécuter un rafraîchissement sur une planification, mais vous avez toujours besoin d'un moyen de collecter l'état du clavier. Si vous souhaitez utiliser une manette de jeu, une manette de jeu ou tout autre HID que le clavier et la souris, alors IUP ne vous aidera pas directement dans tous les cas.

Cela se fait facilement avec une petite quantité de code C compilée dans une DLL.

Cela peut être fait assez facilement avec SWIG , pour certains types d'API. D'autres prendront assez de travail d'installation / de démontage qu'il est plus facile de fabriquer simplement l'emballage.

Il existe également le module Alien pour Lua, qui permet d'appeler directement des API arbitraires à partir de Lua pure. Alien est inclus dans Lua pour Windows , ainsi que via sa page de projet à Luaforge. Alien lui-même est même quelque peu portable sur toutes les plates-formes, même si rien n’appelle.

Un ou plusieurs des moteurs de jeu existants doivent également être examinés. Ils cachent généralement la boucle d'événements à l'intérieur du moteur (comme le fait l'IUP), mais ils sont optimisés pour la construction de jeux plutôt que pour les applications de bureau.

Il y a un certain nombre de personnes dont j'ai entendu parler sur la liste de diffusion de Lua. La première chose qui me vient à l’esprit est la suivante: L & # 214; VE .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top