sprite wall animation images code example

Example 1: Animated sprite from few images pygame

import pygame
import sys

def load_image(name):
    image = pygame.image.load(name)
    return image

class TestSprite(pygame.sprite.Sprite):
    def __init__(self):
        super(TestSprite, self).__init__()
        self.images = []
        self.images.append(load_image('image1.png'))
        self.images.append(load_image('image2.png'))
        # assuming both images are 64x64 pixels

        self.index = 0
        self.image = self.images[self.index]
        self.rect = pygame.Rect(5, 5, 64, 64)

    def update(self):
        '''This method iterates through the elements inside self.images and 
        displays the next one each tick. For a slower animation, you may want to 
        consider using a timer of some sort so it updates slower.'''
        self.index += 1
        if self.index >= len(self.images):
            self.index = 0
        self.image = self.images[self.index]

def main():
    pygame.init()
    screen = pygame.display.set_mode((250, 250))

    my_sprite = TestSprite()
    my_group = pygame.sprite.Group(my_sprite)

    while True:
        event = pygame.event.poll()
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit(0)

        # Calling the 'my_group.update' function calls the 'update' function of all 
        # its member sprites. Calling the 'my_group.draw' function uses the 'image'
        # and 'rect' attributes of its member sprites to draw the sprite.
        my_group.update()
        my_group.draw(screen)
        pygame.display.flip()

if __name__ == '__main__':
    main()

Example 2: css image sprites

/******************** How to use image sprites? ************************/
/* For this, you need to position the image so that only a segment of it 
is revealed. This technique also allows you to zoom in on parts of the 
image */

<html>
  <head>
    <meta charset="UTF-8" />
    <title> Title </title>
    <style>

      #window_1 {
        height: 120px;
        width: 117px;
        background: url("image_path") 0px 0px; /* coordinates of the upper left point: x = 0 and y = 0 */
      }

      #window_2 {
        height: 150px;
        width: 100px;
        background: url("image_path") -300px -200px; /* coordinates of the upper left point: x = -300 and y = -200 (we use negative numbers) */
      }

    </style>
  </head>
  <body>

    <div id="window_1"></div>
    <div id="window_2"></div>

  </body>
</html>

Tags:

Css Example