test37.nim 985 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # --- Test 37. use Camera2D node. --- #
  2. import nodesnim
  3. Window("hello world")
  4. var
  5. main = Scene("Main")
  6. body = KinematicBody2D()
  7. sprite = Sprite()
  8. sprite1 = Sprite()
  9. camera = Camera2D()
  10. img = load("assets/anim/2.jpg")
  11. img1 = load("assets/anim/4.jpg")
  12. sprite.setTexture(img)
  13. sprite1.setTexture(img1)
  14. body.addChild(sprite)
  15. body.addChild(camera)
  16. sprite1.move(0, 400)
  17. camera.setTarget(body)
  18. camera.setLimit(-600, -400, 600, 400)
  19. camera.setCurrent()
  20. camera.enableSmooth()
  21. Input.addButtonAction("left", BUTTON_LEFT)
  22. body.on_process =
  23. proc(self: NodeRef) =
  24. if Input.isActionPressed("left"):
  25. let
  26. mouse_pos = body.getGlobalMousePosition()
  27. distance = body.global_position.distance(mouse_pos)
  28. direction = body.global_position.directionTo(mouse_pos)
  29. speed = 4f
  30. if distance >= 5:
  31. body.moveAndCollide(direction*speed)
  32. main.addChild(body)
  33. main.addChild(sprite1)
  34. addScene(main)
  35. setMainScene("Main")
  36. windowLaunch()