#!/usr/bin/python # You can notice that here we use PySFML.sf instead of just PySFML # Therefore it won't be needed to put sf. in front of SFML classes from PySFML import sf def Main(): Buffer = sf.SoundBuffer() if not Buffer.LoadFromFile("data/fart.wav"): # Loads the sound return Fart = sf.Sound(Buffer, False) WindowWidth, WindowHeight = 640, 480 App = sf.RenderWindow(sf.VideoMode(WindowWidth,WindowHeight,32), "Sound with PySFML", sf.Style.Close, sf.ContextSettings(24,8,0)) App.SetFramerateLimit(30) EventHandler = sf.Event() InputHandler = App.GetInput() Text = sf.Text("Turn the sound on.\nClick anywhere on the screen.\nMove the mouse. Click again.\nTry clicking in the corners.") Text.SetX(30.) Text.SetY(20.) Text.SetColor(sf.Color(150, 100, 10, 255)) while App.IsOpened(): # Main loop while App.GetEvent(EventHandler): # Event Handler if EventHandler.Type == sf.Event.Closed: App.Close() if EventHandler.Type == sf.Event.KeyPressed and EventHandler.Key.Code == sf.Key.Escape: App.Close() if EventHandler.Type == sf.Event.MouseButtonPressed and EventHandler.MouseButton.Button == sf.Mouse.Left: Fart.SetPitch(1.5 - 1.*InputHandler.GetMouseY()/WindowHeight) Fart.SetPosition( 1.*(InputHandler.GetMouseX() - WindowWidth/2)/(WindowWidth/20), 2., -2.) Fart.Play() App.Draw(Text) App.Display() App.Clear(sf.Color.Black) Main()