I think this happens because the border is drawn with line segments between discrete points so the corners never get filled in for widths above 1. I remember running into this in the past and I solved it the same way, using stacked rects.
On Nov 2, 2017 9:25 AM, "Zexx Moore" <xxn2there...@gmail.com> wrote: > Thanks for the reply Yann. > > I had figured my math was wrong, but it seemed pretty basic to me. You > did give me an alternative, which is going to be much easier then what I > had been trying to do. > > My thinking now is that I can draw three solid rects, one that will be the > border, another rect for the inside background color, and a third rect for > the percent bar. > > This is going to be a much easier approach and one that I feel will not > break like the previous one. > > Thanks for the idea Yann. > > On Thu, Nov 2, 2017 at 7:38 AM, Yann Thorimbert <yann.thorimb...@unige.ch> > wrote: > >> Hello, >> >> >> When I need a true border, I simply draw two rects, the seconde one >> hiding the first one in such a way that the rest of the first one >> constitutes the border. >> >> I don't know why the default behaviour of draw.rect() is this strange >> border for width bigger than 1. >> >> >> Cheers, >> >> >> Yann >> ------------------------------ >> *De :* owner-pygame-us...@seul.org <owner-pygame-us...@seul.org> de la >> part de N2TheRed <xxn2there...@gmail.com> >> *Envoyé :* jeudi, 2 novembre 2017 13:25:51 >> *À :* pygame-users@seul.org >> *Objet :* [pygame] How does pygame.draw.rect border width work? >> >> I've been trying to make a percent bar class that I can use to represent >> health or speed, but the border width is causing issues. >> >> The goal is to make an outer rectangle frame of a specified border width >> while using a solid rect inside it to represent a percentage. >> >> <http://pygame-users.25799.x6.nabble.com/file/t429/Screensho >> t_%2812%29.png> >> >> In the picture above, I pass in a border width of 1 for the outer rect >> frame >> with a width of 300 and a height of 50. At least in the picture above, it >> seems to work out find. >> >> <http://pygame-users.25799.x6.nabble.com/file/t429/Screensho >> t_%2813%29.png> >> >> In that picture, I pass in all the same values except for a width of 10 >> instead of 1. This time, it breaks and I've been unable to figure out >> why. >> >> <http://pygame-users.25799.x6.nabble.com/file/t429/Screensho >> t_%2814%29.png> >> >> >> >> -- >> Sent from: http://pygame-users.25799.x6.nabble.com/ >> > >