test7.nim 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # --- Test 7. Input handling. --- #
  2. import nodesnim
  3. var
  4. window = newWindow("hello world", 640, 360)
  5. mainobj: SceneObj
  6. main_scene = Scene("Main", mainobj)
  7. colorrectobj: ColorRectObj
  8. colorrect = ColorRect(colorrectobj)
  9. main_scene.addChild(colorrect)
  10. # bind actions:
  11. Input.addKeyboardAction("forward", K_w)
  12. Input.addKeyboardAction("left", K_a)
  13. Input.addKeyboardAction("right", K_d)
  14. Input.addKeyboardAction("backward", K_s)
  15. Input.addMouseButtonAction("go", BUTTON_LEFT)
  16. # Create one handler:
  17. colorrect.process =
  18. proc() =
  19. let speed = 3f
  20. if Input.isActionPressed("forward"): # check action
  21. colorrect.move(0, -speed)
  22. if Input.isActionPressed("left"):
  23. colorrect.move(-speed, 0)
  24. if Input.isActionPressed("right"):
  25. colorrect.move(speed, 0)
  26. if Input.isActionPressed("backward"):
  27. colorrect.move(0, speed)
  28. if Input.isActionPressed("go"):
  29. let target_position = colorrect.getGlobalMousePosition()
  30. colorrect.move(colorrect.position.directionTo(target_position)*speed)
  31. window.setMainScene(main_scene)
  32. window.launch()