test37.nim 1.1 KB

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