To repeat a background over and over again, I advise you to look at the "infinite runner" template, as it implements something similar.
As for the size of your sprite, the first question is : is your floor always at the same height on the screen ? If so, you just have to check the Y coordinate of your sprite every tick, and set the sprite size accordingly.
For example, let's say you have some Y1, the max height at witch the sprite will begin to shrink, and Y2 the min height, where the sprite should be 0px tall.
Then, the event you need is something along those lines :
System.Every tick (or every X second, X being small)
| If Sprite.Y < Y1 => Sprite.Set scale (1)
| Else Sprite.Set scale (1-(Y-Y1)/(Y2-Y1))
That way :
- if Y < Y1 => the sprite is full size
- if Y = Y1 => scale = 1
- if Y1 < Y < Y2 => the sprite starts to shrink
- if Y = Y2 => scale = 0 (the sprite is 0px tall)