def render(self, sprites, x=None, y=None): """Draws the passed sprites (or sprite) on the Window's surface. x and y are optional arguments that can be used as relative drawing location for sprites. If set to None, the location information of the sprites are used. If set and sprites is an iterable, such as a list of SoftwareSprite objects, x and y are relative location values that will be added to each individual sprite's position. If sprites is a single SoftwareSprite, x and y denote the absolute position of the SoftwareSprite, if set. """ r = SDL_Rect(0, 0, 0, 0) if isiterable(sprites): blit_surface = sdlsurface.blit_surface surface = self.surface x = x or 0 y = y or 0 for sp in sprites: r.x = x + sp.x r.y = y + sp.y blit_surface(sp.surface, None, surface, r) else: r.x = x or sprites.x r.y = y or sprites.y sdlsurface.blit_surface(sprites.surface, None, self.surface, r) video.update_window_surface(self.window)
def render(self, sprites, x=None, y=None): """Draws the passed sprites (or sprite). x and y are optional arguments that can be used as relative drawing location for sprites. If set to None, the location information of the sprites are used. If set and sprites is an iterable, such as a list of TextureSprite objects, x and y are relative location values that will be added to each individual sprite's position. If sprites is a single TextureSprite, x and y denote the absolute position of the TextureSprite, if set. """ r = SDL_Rect(0, 0, 0, 0) if isiterable(sprites): rcopy = render.render_copy renderer = self.sdlrenderer x = x or 0 y = y or 0 for sp in sprites: r.x = x + sp.x r.y = y + sp.y r.w, r.h = sp.size rcopy(renderer, sp.texture, None, r) else: if x is None or y is None: r.x = sprites.x r.y = sprites.y r.w, r.h = sprites.size render.render_copy(self.sdlrenderer, sprites.texture, None, r) render.render_present(self.sdlrenderer)