前にも言った話ではありますが(返答もないので見て無いのかもしれないが)、
分からないから即質問ではなく、一旦落ち着いて変数の扱いを確認した方が良いと思います。
今回も含め、変数関連で問題があって動いてないという理由が多いです。
それから、「動かない」ではなく、「エラー(内容○○)が出る」など、
具体的な状況を記載することをお勧めします。
質問者も回答者もただの人間なので質問者がどのような状態になっているのか
記載しないと読み取れません。勘違いや誤解のもとです。
それはそれとして、
repeat以降の変数に問題があるように見えます。
repeatを抜ける条件が
>>if winx2=winx and winy2=winy:break
ですが、
>>winx2=winx2+1
↑でwinx2がwinxと同じ数値になった際、
>>if winx2=winx:winy2=winy2+1:winx=0
こちらでwinxが0になる。
加算しているのはwinx2なのに横サイズを格納したwinxをリセットしているため、
一度↑を実行した後はwinxが0のまま、winx2はリセットされないまま
永久に加算され続け、一生breakされない状態になっています。
問題発生時ですが、変数の中身を定期的に確認することをお勧めします。
今回の場合はrepeatに入ってから抜け出せていなかったので、
repeat内に
title ""+winx+","+"winx2"
の様なコードを入れることでタイトルバーに変数の内容が表示、
更新されていき、winxが0になり、winx2の数値が異常に増えていっていることが
理解できると思います。