当前位置: 首页>>代码示例>>Python>>正文


Python Recorder.addFrame方法代码示例

本文整理汇总了Python中recorder.Recorder.addFrame方法的典型用法代码示例。如果您正苦于以下问题:Python Recorder.addFrame方法的具体用法?Python Recorder.addFrame怎么用?Python Recorder.addFrame使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在recorder.Recorder的用法示例。


在下文中一共展示了Recorder.addFrame方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: Broadway

# 需要导入模块: from recorder import Recorder [as 别名]
# 或者: from recorder.Recorder import addFrame [as 别名]
class Broadway(spyral.scene.Scene):
	def __init__(self):
		"""Initializes cameras"""
		spyral.scene.Scene.__init__(self)
		self.rootCamera = spyral.director.get_camera()
		self.screenCamera=  self.rootCamera.make_child();
		self.theaterCamera= self.rootCamera.make_child(virtual_size= geom['theater'].size,
													real_size= geom['theater'].size,
													offset= geom['theater'].topleft,
													layers=['upstage','stage','faces','downstage']);
		self.recorder= Recorder()
		self.preventEscapeLock = False
	def on_enter(self):
		"""Create the Theater"""
		# The theater is the Sypral Group responsible for holding the
		# backdrop, actors, and subtitler. It is held by the Script.
		self.theater = spyral.sprite.Group(self.theaterCamera)
		
		bg = spyral.util.new_surface(geom['screen'].size)
		bg.fill(colors['bg'])
		self.screenCamera.set_background(bg)
		
		self.script= script.Script();
		self.script.setTheater(self.theater);
		self.script.setRecorder(self.recorder)
		self.script.default();
		
		self.gui = gui.App(theme=pgu['theme'])
		self.guiContainer = gui.Container(align=-1, 
										  valign=-1)
		if geom['frame'] != geom['screen']:
			images['main-background']= spyral.util.load_image(images['main-background']);
			croppedFrame= spyral.util.new_surface(geom['screen'].size);
			croppedFrame.blit(images['main-background'], geom['frame'], area=geom['screen']);
			images['main-background']= croppedFrame;
		self.guiContainer.add(gui.Image(images['main-background']),
                              *geom['screen'].topleft);
		self.guiContainer.add(gui.Image(images['main-tab']),
							  *geom['tab'].topleft);
		
		
		
		# Tab is used to switch between the different panels
		self.tab= tab.Tab(self.script);
		
		# Add the tab and panel holder to the screen
		self.guiContainer.add(self.tab, *geom['tab'].topleft);
		self.guiContainer.add(self.tab.panelHolder, *geom['panel'].topleft);
		
		self.script.gui = self.gui
		
		self.gui.init(self.guiContainer);
		
		#self.recorder.startRecording()
				
	def render(self):
		"""
		The render function should call .draw() on the scene's group(s) and
		camera(s). Unless your game logic should be bound by framerate,
		logic should go elsewhere.
		"""
		self.theater.draw()
		if self.recorder.recording == 'Video':
			changes = self.rootCamera.draw(True)
			self.recorder.addFrame(changes)
		else:
			self.rootCamera.draw(False)
		
		dirtyGui= self.gui.update(pygame.display.get_surface());
		if dirtyGui:
			pygame.display.update(dirtyGui);
	
	def confirmQuit(self, okayCallback):
		self.script.disableControls()
		def quit():
			self.script.enableControls()
			self.script.refreshTheater()
			self.preventEscapeLock= False
		d= gui.ConfirmDialog(_("Confirm Quit"), [_("You have unsaved changes!"),
												 _("If you quit now, you'll lose them forever!"),
												 _("Are you sure you want to quit?")])
		d.connect(gui.CLOSE, quit);
		d.okayButton.connect(gui.CLICK, okayCallback)
		self.preventEscapeLock= True
		d.open();
	
	def update(self, tick):
		for event in pygame.event.get():
			if event.type == pygame.QUIT:
				# Check if quit
				if self.script.unsaved:
					self.confirmQuit(spyral.director.pop)
				else:
					spyral.director.pop()
			elif event.type == KEYDOWN:
				if event.key == K_ESCAPE:
					if self.script.unsaved:
						self.confirmQuit(spyral.director.pop)
					else:
						spyral.director.pop()
#.........这里部分代码省略.........
开发者ID:acbart,项目名称:broadway.activity,代码行数:103,代码来源:broadway.py


注:本文中的recorder.Recorder.addFrame方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。