40 votes

Bibliothèque Haskell pour le dessin 2D

Je veux essentiellement créer une fenêtre plein écran et y dessiner du texte en différentes couleurs et tailles (et aussi mettre à jour l'écran). J'ai utilisé pygame pour cela en python et je suis à la recherche d'une bibliothèque similaire (qui devrait être assez facile à utiliser).

+1 s'il gère aussi les entrées...

0 votes

Merci pour toutes les réponses : Je vais essayer à la fois haskgame et SDL.

1 votes

Donc, après presque 2 ans, qu'avez-vous choisi comme lib, avez-vous fait quelque chose d'utile, quelle a été une expérience générale avec Haskell 2D... ?

68voto

Don Stewart Points 94361

Au lieu de choisir des bibliothèques individuelles, je vais essayer de faire un tour d'horizon rapide de toutes les bibliothèques, telles qu'elles sont répertoriées dans la base de données de l'UE. Section graphique sur Hackage .

Cadres de base :

OpenGL

GTK

cabal install cairo

QTHaskell

  • Relativement peu utilisé, mais quand il l'est, il l'est notablement.
  • Pas sur Hackage, trouvé aquí en raison de problèmes liés au C++
  • Utilisateurs notables : Nikki et les Robots un jeu commercial.

SDL

cabal install sdl

X11

cabal install X11

Vénérables interfaces utilisateur Unix.

Exemples : xmonad .

GD

cabal install gd

Le système graphique GD. Paquet sur le piratage .

Exemples : nuage de mots , sparklines .

HOgre

cabal install hogre

Liaisons avec le jeu Ogre système graphique .

Outre ces couches de jeu, il existe de nombreux cadres et outils de niveau supérieur :

Diagrammes

cabal install diagrams

Diagrammes vectoriels 2D (par exemple pour les mathématiques), construits sur cairo.

Brillant

cabal install gloss

Graphiques en 2D, interface très facile, relativement nouveau. Voir le commentaire de TomMD.

Cal3D

cabal install cal3d

Liaisons avec le Cal3D pack d'animation .

Tableau noir

cabal install chalkboard

Combinateurs basés sur OpenGL pour générer des images, utilisés dans l'enseignement.

TeaHS

cabal install TeaHS

Une bibliothèque simple pour la création de jeux en 2D, inspirée de la Thé de la bibliothèque Rubis .

0 votes

J'oublie toujours que Chalkboard a été mis à jour pour compiler/exécuter (il a été cassé pendant un moment). Bon travail Gill et al. et merci pour le rappel.

0 votes

Superbe liste ! Les gloss et les diagrammes semblent particulièrement intéressants et pertinents pour ce que je veux faire.

21voto

Jeff Burka Points 2111

Si vous êtes à la recherche d'une ludothèque spécialisée, plusieurs options s'offrent à vous aquí . FunGEn est probablement votre meilleure option parmi ces bibliothèques. Cependant, votre question semble suggérer qu'une bibliothèque de jeux serait un peu excessive, si tout ce que vous cherchez à faire est de dessiner du texte et de recevoir des entrées. Dans ce cas, vous pourriez opter pour quelque chose de plus simple comme HOpenGL o hsSDL . Il existe également plusieurs autres bibliothèques répertoriées aquí .

Edit : Après une recherche un peu plus poussée, vous pourriez faire l'affaire en utilisant haskgame . Je ne l'ai jamais utilisé moi-même, mais il semble qu'il ait plusieurs fonctions. aquí qui font exactement ce que vous recherchez.

16voto

Don Stewart Points 94361

Je recommande le nouveau Glossothèque comme un moyen facile d'obtenir de bons résultats.

Le gloss masque la douleur du dessin simple graphiques vectoriels derrière un joli de données et quelques fonctions d'affichage. Gloss utilise OpenGL et GLUT sous le capot, mais sous le capot, mais vous n'aurez pas à vous inquiéter de tout cela. Affichez quelque chose de cool sur l'écran en moins de 10 minutes.

Il existe également de bons exemples comme :

hello world

enter image description here

et un bel exemple de bâtiment simulateurs de flocage

Par contre, si ce sont des vecteurs et du texte que vous voulez manipuler, la fonction diagrammes un paquet sur le sommet du Caire peut donner de très bons résultats.

7 votes

Gloss est facile, mais sa fonctionnalité est incomplète pour tout ce qui dépasse son utilisation prévue pour l'éducation. J'ai créé une application de dessin simple dans Gloss et j'ai constaté que certains de ses bogues (traduction de l'emplacement du texte défectueuse, redimensionnement de la fenêtre défectueux, du moins dans XMonad, utilisation de 100 % du processeur lors du rendu dans un environnement Gnome, pour n'en citer que quelques-uns) m'ont gêné, tout comme son incapacité à afficher et à traduire les images (ex : PNG, JPG). Ce dernier point a été partiellement résolu, il peut maintenant afficher des bitmaps. Pour résumer : J'ai trouvé Gloss vraiment chouette et facile à utiliser, mais il a besoin de quelques jours de corrections et d'améliorations de la bibliothèque elle-même.

0 votes

Est-ce que ça va pour quelque chose de très simple ? Je veux l'utiliser pour visualiser un simple roguelike. Ce qui compte le plus, c'est un dessin bitmap sans bogues (je vais utiliser des tuiles).

3voto

Tyr Points 1336

Vous pourriez utiliser Qt. C'est ce que la plateforme croisée Nikki et les robots utilise. Vous pouvez voir leur code source et jeter un coup d'œil à ce qu'ils font.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X