Skip to content

Instantly share code, notes, and snippets.

@jpleau
Created July 5, 2014 15:38
Show Gist options
  • Save jpleau/8a25480dae5f8446e2e6 to your computer and use it in GitHub Desktop.
Save jpleau/8a25480dae5f8446e2e6 to your computer and use it in GitHub Desktop.
package main
import sf "bitbucket.org/krepa098/gosfml2"
func main() {
videoMode := sf.VideoMode{800, 600, 24}
window := sf.NewRenderWindow(videoMode, "Test", sf.StyleDefault, sf.DefaultContextSettings())
window.SetFramerateLimit(60)
rect, _ := sf.NewRectangleShape()
rect.SetPosition(sf.Vector2f{50, 50})
rect.SetSize(sf.Vector2f{200, 150})
rect.SetFillColor(sf.Color{0, 0, 255, 255})
for window.IsOpen() {
window.Display()
for event := window.PollEvent(); event != nil; event = window.PollEvent() {
switch ev := event.(type) {
case sf.EventKeyPressed:
switch ev.Code {
case sf.KeyEscape:
window.Close()
}
case sf.EventClosed:
window.Close()
}
}
movement := sf.Vector2f{0, 0}
if sf.KeyboardIsKeyPressed(sf.KeyRight) {
movement.X = 10
}
if sf.KeyboardIsKeyPressed(sf.KeyLeft) {
movement.X = -010
}
if sf.KeyboardIsKeyPressed(sf.KeyUp) {
movement.Y = -10
}
if sf.KeyboardIsKeyPressed(sf.KeyDown) {
movement.Y = 10
}
window.Clear(sf.Color{128, 0, 0, 255})
rect.Move(movement)
rect.Draw(window, sf.DefaultRenderStates())
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment