0
Pyglet似乎只使用点。有没有办法轻松转换?当然,必须有一个简单的方法,因为它是显而易见的重要事情,能够将像素用于文本高度。如何使用像素高度渲染文本而不是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)
谢谢你的回答。我已经尝试使用72的DPI取消了PPI或任何像素是相同的点。 出于某种原因,文本显示的比应该小的多。 我将添加我创建的类... – 2010-03-24 23:17:28
在Pyglet网站上找到了一些可能对您有用的信息。 http://www.pyglet.org/doc/programming_guide/font_sizes.html – 2010-03-25 08:17:10
非常感谢。 不幸的是pyglet似乎正在使用完全错误的像素大小的文本,我会提出一个新的问题与这个问题有关。 但这是很好的信息。 – 2010-03-29 16:15:57