Oh, a i think i found it:
# ...

def execute_job(*args, **kwargs):
    label.text = str(datetime.now().strftime('%I:%S'))

pyglet.clock.schedule_interval(execute_job, 1/60.0)
pyglet.app.run()

:)

Le mardi 22 novembre 2016 09:27:17 UTC+1, Bastien Sevajol a écrit :
>
> Hello,
>
> I want to execute background jobs in pyglet. Example, in a game, executing 
> AI of characters, evolution of environment ... I found a way 
> with pyglet.clock.schedule.
>
> In this example, i update a text each seconds with actual hour and seconds:
>
> # -*- coding: utf-8 -*-
> from datetime import datetime
> import pyglet
> import time
> from pyglet.clock import schedule
>
> window = pyglet.window.Window()
> label = pyglet.text.Label(
>     '...',
>     font_name='Times New Roman',
>     font_size=36,
>     x=window.width//2,
>     y=window.height//2,
>     anchor_x='center',
>     anchor_y='center',
> )
>
> class BackgroundJob(object):
>     def __init__(self, interval: float=1.0):
>         self.interval = interval
>         self.last_execution_time = 0
>
>     def is_time_to_execute_job(self):
>         return time.time() - self.last_execution_time >= self.interval
>
>     def execute_job(self):
>         self.last_execution_time = time.time()
>         label.text = str(datetime.now().strftime('%I:%S'))
>
>     def schedule(self, *args, **kwargs):
>         if self.is_time_to_execute_job():
>             self.execute_job()
>
> background_job = BackgroundJob()
> schedule(background_job.schedule)
>
>
> @window.event
> def on_draw():
>     window.clear()
>     label.draw()
>
> pyglet.app.run()
>
> I am doing it right ? Or something else is designed to this usage ?
> Thank's
> Bastien.
>

-- 
You received this message because you are subscribed to the Google Groups 
"pyglet-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pyglet-users+unsubscr...@googlegroups.com.
To post to this group, send email to pyglet-users@googlegroups.com.
Visit this group at https://groups.google.com/group/pyglet-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to