test3.nim 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # --- Test 3. Window events handling. --- #
  2. import nodesnim
  3. Window("newwindow")
  4. var
  5. main = Scene("Main")
  6. node = Node("My node")
  7. main.addChild(node)
  8. # Bind actions:
  9. addKeyAction("forward", "w")
  10. addKeyAction("backward", "s")
  11. addKeyAction("left", "a")
  12. addKeyAction("right", "d")
  13. addButtonAction("click", BUTTON_LEFT)
  14. addButtonAction("release", BUTTON_RIGHT)
  15. node.on_process =
  16. proc(self: NodeRef) = # This called every frame.
  17. if isActionJustPressed("click"): # returns true, when the user clicks the left button one time.
  18. echo "clicked!"
  19. if isActionReleased("release"): # returns true, when the user no more press on the right button.
  20. echo "release!"
  21. node.on_input =
  22. proc(self: NodeRef, event: InputEvent) = # This called only on user input.
  23. if event.isInputEventMouseButton() and event.pressed:
  24. echo "hi"
  25. if isActionPressed("forward"): # returns true, when user press "w"
  26. echo "forward"
  27. if isActionPressed("backward"): # returns true, when user press "s"
  28. echo "backward"
  29. if isActionPressed("left"): # returns true, when user press "a"
  30. echo "left"
  31. if isActionPressed("right"): # returns true, when user press "d"
  32. echo "right"
  33. addScene(main)
  34. setMainScene("Main")
  35. windowLaunch()