def play(self, caption="sc8pr", icon=None, mode=True):
"Initialize pygame and run the main drawing / event handling loop"
# Initialize
pygame.init()
self._clock = pygame.time.Clock()
pygame.key.set_repeat(400, 80)
_pd.set_caption(caption)
try:
try: icon = pygame.image.load(icon)
except: icon = Image.fromBytes(sc8prData("alien")).image
_pd.set_icon(icon)
except: logError()
w, h = self._size
self._fixedAspect = w / h
mode = self._pygameMode(mode)
self._mode = mode
self.image = _pd.set_mode(self._size, mode)
self.key = None
self.mouse = pygame.event.Event(pygame.USEREVENT,
code=None, pos=(0,0), description="Sketch startup")
# Run setup
try:
if hasattr(self, "setup"): self.setup()
else:
main = sys.modules["__main__"]
if hasattr(main, "setup"): main.setup(self)
except: logError()
# Drawing/event loop
while not self.quit:
try:
self.frameCount += 1
br = self.dirtyRegions
flip = br is None
self.draw()
if not flip:
br += self.dirtyRegions
flip = self._largeArea()
self._clock.tick(self.frameRate)
if flip: _pd.flip()
else: _pd.update(br)
if self.capture is not None: self.capture.capture(self)
if self.ondraw: self.ondraw()
self._evHandle()
except: logError()
pygame.quit()
mod = sys.modules.get("sc8pr.text")
if mod: mod.Font.dumpCache()
return self
评论列表
文章目录