main.nim 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import nodesnim
  2. import random
  3. randomize()
  4. Window("ScreenSaver", 720, 480)
  5. var
  6. main_obj: SceneObj
  7. main = Scene("Main", main_obj)
  8. img = load("img.png", GL_RGBA)
  9. spriteobj: SpriteObj
  10. sprite = Sprite(spriteobj)
  11. direction = Vector2()
  12. speed = 3f
  13. sprite.centered = false
  14. sprite.setTexture(img)
  15. sprite@on_process(self):
  16. let rect = Rect2(sprite.global_position, sprite.rect_size)
  17. if rect.x <= 0:
  18. direction = sprite.global_position.directionTo(Vector2(main.rect_size.x, rand(main.rect_size.y.int).float))
  19. sprite.filter = Color(rand(1f) + 0.5, rand(1f) + 0.5, rand(1f) + 0.5)
  20. elif rect.x+rect.w >= main.rect_size.x:
  21. direction = sprite.global_position.directionTo(Vector2(0, rand(main.rect_size.y.int).float))
  22. sprite.filter = Color(rand(1f) + 0.5, rand(1f) + 0.5, rand(1f) + 0.5)
  23. elif rect.y <= 0:
  24. direction = sprite.global_position.directionTo(Vector2(rand(main.rect_size.x.int).float, main.rect_size.y))
  25. sprite.filter = Color(rand(1f) + 0.5, rand(1f) + 0.5, rand(1f) + 0.5)
  26. elif rect.y+rect.h >= main.rect_size.y:
  27. direction = sprite.global_position.directionTo(Vector2(rand(main.rect_size.x.int).float, 0))
  28. sprite.filter = Color(rand(1f) + 0.5, rand(1f) + 0.5, rand(1f) + 0.5)
  29. sprite.move(direction*speed)
  30. main.addChild(sprite )
  31. addScene(main)
  32. setMainScene("Main")
  33. windowLaunch()