2010-03-24 2 views
0

Pyglet ne semble utiliser que des points. Y a-t-il un moyen de convertir facilement? Sûrement il doit y avoir un moyen simple, car c'est quelque chose d'évident, pour pouvoir utiliser des pixels pour la hauteur du texte.Comment rendre un texte avec des hauteurs de pixel plutôt qu'avec des points dans pyglet?

class Font(): 
    def __init__(self,font,size): 
     self.size = size 
     self.font = font 
    def return_surface(self,label): 
     surface = Surface((label.content_width,label.content_height)) 
     surface.set_background_alpha(0) 
     setup_framebuffer(surface,True) 
     label.draw() 
     end_framebuffer() 
     return surface 
    def render(self,text,colour): 
     colour = fix_colour(colour) 
     label = pyglet.text.Label(text,font_name=self.font,font_size=self.size,color = colour,dpi=72) 
     return self.return_surface(label) 
    def render_wordwrap(self,text,width,colour,alignment): 
     if alignment == 0: 
      alignment = 'left' 
     elif alignment == 1: 
      alignment = 'center' 
     else: 
      alignment = 'right' 
     colour = fix_colour(colour) 
     label = pyglet.text.Label(text,font_name=self.font,font_size=self.size,color = colour,width=width,halign=alignment, multiline=True,dpi=72) 
     return self.return_surface(label) 

Répondre

0

Le nombre de pixels pris par une certaine taille de point dépendra de vos écrans DPI. Par exemple, "14pt" est la distance couvrant 14 points, qui à un défaut DPI de 96 est d'environ 18 pixels.

Cette site donne une bonne explication de la taille des points de conversion en pixels.

+0

Merci pour la réponse. J'ai essayé d'utiliser 72 pour la ppp pour annuler le ppi ou quoi que ce soit, donc les pixels sont les mêmes que les points. Pour une raison quelconque, le texte est plus petit qu'il ne devrait l'être. Je vais ajouter la classe que j'ai faite ... –

+0

J'ai trouvé plus d'informations sur le site Pyglet qui pourraient vous être utiles. http://www.pyglet.org/doc/programming_guide/font_sizes.html –

+0

Merci beaucoup. Malheureusement pyglet semble utiliser des tailles de pixels complètement erronées pour le texte et je vais faire une nouvelle question relative à ce problème. Mais c'est une bonne information. –

Questions connexes