Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Include the PySFML extension
- from PySFML import sf
- import sys
- class ImageManager():
- def __init__(self):
- self.__imageDict = {}
- def getImage(self, path):
- '''
- Search image in ImageManager dictionary and return it's reference.
- If no image is found in __imageDict load it insert in __imageDict and return it's reference.
- Args:
- Image File relative path
- Returns:
- sf.Image object
- '''
- try:
- return self.__imageDict[path]
- except KeyError:
- image = sf.Image()
- image.LoadFromFile(path)
- self.__imageDict[path] = image
- return image
- # Create the main window
- window = sf.RenderWindow(sf.VideoMode(640, 480, 32), "PySFML test")
- # Create the SFML event handler
- event = sf.Event()
- # Create and position SFML shape
- box = sf.Shape.Rectangle(0, 0, 50, 50, sf.Color(127, 0, 0, 255))
- box.SetPosition(100,100)
- # Create image manager
- imagemanager = ImageManager()
- # Load and setup the sprite
- sprite = sf.Sprite(imagemanager.getImage('01.png'))
- sprite.SetPosition(400, 400)
- sprite.SetCenter(15, 15)
- #Setup game speed
- speed = 400
- # Start the game loop
- while window.IsOpened():
- # Process events
- while window.GetEvent(event):
- # Close window exit
- if event.Type == sf.Event.Closed:
- window.Close()
- # Key esc exit
- if event.Type == sf.Event.KeyPressed and event.Key.Code == sf.Key.Escape:
- window.Close()
- # Clear the screen
- window.Clear(sf.Color(255,255,255))
- # Move the sprite
- if window.GetInput().IsKeyDown(sf.Key.Left):
- sprite.Move(-speed * window.GetFrameTime(), 0)
- sprite.Rotate(speed * window.GetFrameTime())
- elif window.GetInput().IsKeyDown(sf.Key.Right):
- sprite.Move(speed * window.GetFrameTime(), 0)
- sprite.Rotate(-speed * window.GetFrameTime())
- if window.GetInput().IsKeyDown(sf.Key.Up):
- sprite.Move(0, -speed * window.GetFrameTime())
- elif window.GetInput().IsKeyDown(sf.Key.Down):
- sprite.Move(0, speed * window.GetFrameTime())
- # Draw sprite and render the scene
- window.Draw(sprite)
- window.Display()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement