Цикл - плохая идея.
Код, который вы сейчас имеете, выглядит глючно, но его структура лучше, чем неестественное использование цикла.
Если я понимаю, что выпытаюсь сделать, я думаю, у вас должно быть что-то вроде этого
(я фокусируюсь на координате X. В случае координаты Y это аналогично)
pos.X += pixelRadius;
if(pos.X < 0) {
pos.X += bounds.Width;
} else if (pos.X > bounds.Width) {
pos.X -= bounds.Width;
}
Это будет работать, если |pixelRadius |
Оператор модуля немного облегчает работу, особенно если | pixelRadius |> bounds.With, но будьте осторожны в случае отрицательных чисел.Вы должны точно знать, что будет делать с ними ваша языковая реализация
Используя оператор модуля, я бы сделал это следующим образом
pos.X = (pos.X + pixelRadius) % bounds.Width;
if(pos.X < 0) pos.X += bounds.Width;