class Container(GUIObject): """ """ def __init__(self, type='frame', left=0, top=0, width=0, height=0, bg_color=None, fg_color=None, selected_bg_color=None, selected_fg_color=None, border=None, bd_color=None, bd_width=None, vertical_expansion=0): GUIObject.__init__(self, left, top, width, height, bg_color, fg_color) self.layout_manager = None self.border = border self.bd_color = bd_color self.bd_width = bd_width self.vertical_expansion = vertical_expansion self.internal_h_align = Align.LEFT self.internal_v_align = Align.TOP self.h_spacing = self.h_margin self.v_spacing = self.v_margin if type == 'widget': ci = self.content_layout.types['selected'].rectangle self.selected_bg_color = selected_bg_color or Color(ci.bgcolor) self.selected_fg_color = selected_fg_color or Color(ci.color) if not self.bd_color: self.bd_color = Color(self.skin_info_widget.rectangle.color) if not self.bd_width: self.bd_width = self.skin_info_widget.rectangle.size if not self.border: self.border = Border(self, Border.BORDER_FLAT, self.bd_color, self.bd_width) elif border == -1: self.border = None def set_layout(self, layout=None): if not layout: layout = FlowLayout(self) self.layout_manager = layout def get_layout(self): return self.layout_manager def layout(self): if not self.layout_manager: self.layout_manager = FlowLayout(self) self.layout_manager.layout() def _draw(self): _debug_('Container::draw %s' % self, 2) for child in self.children: if not child == self.border: child.draw() if self.border and self.border != -1: self.border.draw()
pressed_down = False if pressed_up: ComputerPlayer.moveUp() HumanPlayer.moveUp() elif pressed_down: ComputerPlayer.moveDown() HumanPlayer.moveDown() else: ComputerPlayer.dy = 0 HumanPlayer.dy = 0 #Update all elements # First, erase the display and repaint white display.fill(Colors.WHITE) # Second, draw on next frame HumanPlayer.draw() ComputerPlayer.draw() Border.draw(display) Grid.checkEvents() Ball.updatePosition() display_score(ComputerPlayer, HumanPlayer, display) # update the display with the new changes pygame.display.update() # - FPS - keep the same speed on all computers - clock.tick(FPS) # Done! Time to quit. pygame.quit()
class Container(GUIObject): """ """ def __init__(self, type='frame', left=0, top=0, width=0, height=0, bg_color=None, fg_color=None, selected_bg_color=None, selected_fg_color=None, border=None, bd_color=None, bd_width=None, vertical_expansion=0): GUIObject.__init__(self, left, top, width, height, bg_color, fg_color) self.layout_manager = None self.border = border self.bd_color = bd_color self.bd_width = bd_width self.vertical_expansion = vertical_expansion self.internal_h_align = Align.LEFT self.internal_v_align = Align.TOP self.h_spacing = self.h_margin self.v_spacing = self.v_margin if type == 'widget': ci = self.content_layout.types['selected'].rectangle self.selected_bg_color = selected_bg_color or Color(ci.bgcolor) self.selected_fg_color = selected_fg_color or Color(ci.color) if not self.bd_color: self.bd_color = Color(self.skin_info_widget.rectangle.color) if not self.bd_width: self.bd_width = self.skin_info_widget.rectangle.size if not self.border: self.border = Border(self, Border.BORDER_FLAT, self.bd_color, self.bd_width) elif border == -1: self.border = None def set_layout(self, layout=None): if not layout: layout = FlowLayout(self) self.layout_manager = layout def get_layout(self): return self.layout_manager def layout(self): if not self.layout_manager: self.layout_manager = FlowLayout(self) self.layout_manager.layout() def _draw(self): logger.log( 9, 'Container::draw %s', self) for child in self.children: if not child == self.border: child.draw() if self.border and self.border != -1: self.border.draw()