main.nim 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # author: Ethosa
  2. import nodesnim
  3. Window("SceneBuilder")
  4. build:
  5. # Create node.
  6. # var main = Scene(name = "main")
  7. - Scene main:
  8. # Create node with params.
  9. # var rect = ColorRect(name = "rect")
  10. # rect.color = Color(0.6, 0.5, 1)
  11. - ColorRect rect(color: Color(0.6, 0.5, 1)):
  12. # handle Mouse press event.
  13. # rect.on_press = proc(self: NodeRef, x, y: float) =
  14. @onPress(x, y):
  15. rect.color.r -= 0.01
  16. # handle Mouse release event.
  17. # rect.on_release = proc(self: NodeRef, x, y: float) =
  18. @onRelease(x, y):
  19. rect.color.r = 0.6
  20. # Create a new Label with params.
  21. # var hw = Label(name = "hw")
  22. # hw.anchor = Anchor(0.5, 0.5, 0.5, 0.5)
  23. - Label hw(anchor: Anchor(0.5, 0.5, 0.5, 0.5)):
  24. # Call Label method:
  25. # hw.setText("Hello, world!")
  26. call setText("Hello, world!")
  27. # Repeating nodes can be written briefly:
  28. - Node node0(is_ready: true, call hide())
  29. - Node2D node1(is_ready: true, call hide())
  30. - Node3D node2(is_ready: true, call hide())
  31. - Control node3(is_ready: true, call hide())
  32. # If you need a lot of repeating nodes ...
  33. # maybe a cycle will help you?
  34. for i in 0..10:
  35. - Node nodeNumber_i: # Translates to nodeNumber{i}
  36. call hide()
  37. - Label hello_world:
  38. call:
  39. setText("Hello world!")
  40. setAnchor(1, 0, 1, 0)
  41. setTextColor(Color("#cefc"))
  42. for child in main.getChildIter():
  43. echo child.name
  44. addMainScene(main)
  45. windowLaunch()