游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4238|回复: 1

【吐血求助】Python(Pygame/Pyglet) 实现流畅滚动字幕的三种方

[复制链接]

1

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2012-2-17 21:34:00 | 显示全部楼层 |阅读模式
最近一直被这个流畅滚动字幕(跑马灯)的问题搞得焦头烂额,试过很多方式。这里作下总结,还请各位高手指下路。

1 . PyQt 框架下实现,这个下面我没有常使用OPENGL,而是试过两种方式,一种是移动QLABEL及类似方式,一种是用QANIMATIONPROPRTY的方式,性能都不行。都遇到,文本多卡的问题



2.PYGAME下实现, 这里下面性能相对还行,因为底层是用SDL实现的,窗口化时无法实现双缓冲,所以也是比较卡。



3.PYGLET, 这个下面调的是GDI+(WIndows)字体渲染库,,我建立了一个OPENGL CONTEXT,然后用 font.Text() 然后text.draw()方法渲染文本, 但比PYGAME更卡,但有个好处,不用分割文本,超长文本都支持。

最后被逼到绝路上了,可能只有放弃PYTHON搞这个东西了,因为我想用
FTGL渲染字体加上OPENGL这个方式,听说性能不错。


PYGLETDRAW的 代码:
def draw(self):
  glClear(GL_COLOR_BUFFER_BIT)
  glClearColor(self.bColor[0],self.bColor[1],self.bColor[2],self.bColor[3])
  self.x= self.x -self.step

  if self.text.x < - self.text.width:
    self.x = 0
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();
  self.text.x =self.win.width + self.x
  self.text.draw()
  self.fps.draw()

我想问下,我这样调PYGLET的 TEXT.DRAW() ,是不是用OPENGL渲染出来的?

5

主题

752

帖子

855

积分

高级会员

Rank: 4

积分
855
发表于 2012-2-29 17:52:00 | 显示全部楼层

Re:【吐血求助】Python(Pygame/Pyglet) 实现流畅滚动字幕的三

谁能每行解释下 似懂非懂啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-1 00:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表