import nodesnim import random randomize() Window("ScreenSaver", 720, 480) var direction = Vector2() speed = 3f build: - Scene main: - Sprite sprite: centered: false call setTexture(load("img.png", GL_RGBA)) sprite@on_process(self): let rect = Rect2(sprite.global_position, sprite.rect_size) if rect.x <= 0: direction = sprite.global_position.directionTo(Vector2(main.rect_size.x, rand(main.rect_size.y.int).float)) sprite.filter = Color(rand(1f) + 0.5, rand(1f) + 0.5, rand(1f) + 0.5) elif rect.x+rect.w >= main.rect_size.x: direction = sprite.global_position.directionTo(Vector2(0, rand(main.rect_size.y.int).float)) sprite.filter = Color(rand(1f) + 0.5, rand(1f) + 0.5, rand(1f) + 0.5) elif rect.y <= 0: direction = sprite.global_position.directionTo(Vector2(rand(main.rect_size.x.int).float, main.rect_size.y)) sprite.filter = Color(rand(1f) + 0.5, rand(1f) + 0.5, rand(1f) + 0.5) elif rect.y+rect.h >= main.rect_size.y: direction = sprite.global_position.directionTo(Vector2(rand(main.rect_size.x.int).float, 0)) sprite.filter = Color(rand(1f) + 0.5, rand(1f) + 0.5, rand(1f) + 0.5) sprite.move(direction*speed) addMainScene(main) windowLaunch()