mirror of
https://github.com/SFML/SFML.git
synced 2024-12-01 15:51:04 +08:00
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
|
#!/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.sf import *
|
||
|
|
||
|
|
||
|
def Main():
|
||
|
Buffer = SoundBuffer()
|
||
|
if not Buffer.LoadFromFile("data/fart.wav"): # Loads the sound
|
||
|
return
|
||
|
Fart = Sound(Buffer, False)
|
||
|
|
||
|
WindowWidth, WindowHeight = 640, 480
|
||
|
App = RenderWindow(VideoMode(WindowWidth,WindowHeight,32), "Sound with PySFML", Style.Close, WindowSettings(24,8,0))
|
||
|
App.SetFramerateLimit(30)
|
||
|
|
||
|
EventHandler = Event()
|
||
|
InputHandler = App.GetInput()
|
||
|
|
||
|
Text = String("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(Color(150, 100, 10, 255))
|
||
|
|
||
|
while App.IsOpened(): # Main loop
|
||
|
while App.GetEvent(EventHandler): # Event Handler
|
||
|
if EventHandler.Type == Event.Closed:
|
||
|
App.Close()
|
||
|
if EventHandler.Type == Event.KeyPressed and EventHandler.Key.Code == Key.Escape:
|
||
|
App.Close()
|
||
|
if EventHandler.Type == Event.MouseButtonPressed and EventHandler.MouseButton.Button == 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(Color.Black)
|
||
|
|
||
|
|
||
|
Main()
|
||
|
|