Pyglet の ScrollableTextLayout でテキストを下ではなく上にスクロールする方法を見つけようとしています。わかりやすくするために、「アップ」の意味を示す簡単なスナップショットを次に示します。(念のため)
どのように動作させたいですか:
ドキュメントによると、この動作は view_y プロパティを介して実現できますが、あらゆる種類の異なる値を試しましたが、すべて目立った変化はありませんでした。
コード:
import pyglet
class LoadDialog(pyglet.sprite.Sprite):
def __init__(self):
self.lbatch = pyglet.graphics.Batch()
self.loading_window = pyglet.image.load('..\\resources\\loading_base.png')
super(LoadDialog, self).__init__(self.loading_window, batch=self.lbatch)
self.doc = pyglet.text.decode_text('Hello world!'.ljust(40))
self.doc.set_style(0,12, dict(font_name='Arial', font_size=12,
color=(0,0,0,255)))
self.layout = pyglet.text.layout.ScrollableTextLayout(self.doc,
width=self.load_animation.width,
height=100, multiline=True, batch=self.lbatch)
self.layout.x = 220
self.layout.y = 160
self.layout.view_y = -80
def update(self, dx):
self.doc.insert_text(0, "New line".ljust(40))
sprite = LoadDialog()
window = pyglet.window.Window(width=640, height=480)
pyglet.gl.glClearColor(1, 1, 1, 1)
@window.event
def on_draw():
window.clear()
sprite.lbatch.draw()
sprite.layout.draw()
@window.event
def update(dx):
sprite.update(dx)
pyglet.clock.schedule_interval(update, 1.0)
pyglet.app.run()
layout.view_y
からの-1
ようなばかげた値まで-3000
、または500
単に何かが変化するかどうかを確認するために、たくさんの値を試しました。ただし、最初の画像に示すように、常に正確な動作が得られます。
私は何を間違っていますか?