... and replying on the pygame-users mailing list. On Fri, Mar 2, 2018 at 8:38 AM, illume <ren...@gmail.com> wrote:
> Hello, > > Thanks for picking up the ball. > It must be muddy and old after five years on the ground. > > It's cool that your students are messing around with > per pixel collision detection.An d even making videos about it. > That's pretty advanced! > > So, what's next for getting this issue fixed? > > > You've already linked to some existing discussion on the issue, > that's a good start! There's even code in there. Brilliant. > > But what even is a mask, and an overlap? > > > Another thing people can do is link to the relevant code in > the pygame source code. This means they don't need to look > themselves, and it helps them get to the task quicker. > > Remember, the person fixing the code might never have seen > or even used the code before. > > Documentation for mask overlap stuff lives here: > https://www.pygame.org/docs/ref/mask.html#pygame.mask.Mask.overlap > > Implementation of bitmask overlap (src/bitmask.c in pygame repo). > https://github.com/pygame/pygame/blob/master/src/bitmask.c#L161 > > The unit test is here (test/mask_test.py in the pygame repo): > https://github.com/pygame/pygame/blob/master/test/mask_test.py#L74 > > > So, now they know where to look for what it does, and where in > the code base they can write a test for it, or change the code. > > > But is it even a bug? Having your students writing a unit test > for their own code will help them check all their assumptions, > and also see if it's a problem with the mask overlap code or > a problem somewhere else. > > Being able to reproduce the issue makes it easier for anyone > coming along to fix it. If not a unit test, then a short script, > or minimal working example pasted into the issue will help with that. > > Sometimes a visual example with an explanation is best. > > Screenshots, screenshots, and more screenshots. > Or a video, are all useful in helping people understand what's > going on. > > > > Mostly people only get a hour or two here and there on weekends > or late nights to mess around with pygame, it really helps the > next person to not drop the ball again. > > Anything to help them see how it's not working correctly will > help the next person fix it. > > > cheers, > > > > > > On Friday, March 2, 2018 at 7:46:13 AM UTC+1, ...@gmail.com wrote: >> >> I just found the Pygame Github repository. I'll make sure the issue gets >> reported there. >> >> On Thursday, March 1, 2018 at 11:42:40 PM UTC-7, rybeca...@gmail.com >> wrote: >>> >>> So, *five years later* this bug still exists. I use Pygame to teach a >>> college video game course, and I have a student having what appears to be >>> this exact same issue. Sadly, the OP never bothered to file that bug >>> report. >>> >>> I don't see any way to post a report at that link, which may be why the >>> bug report was never filed. I will explain what we are seeing though. >>> >>> My student started with a YouTube video, showing how to do pixel perfect >>> collision detection with Pygame masks. Several students have had success >>> with this. This particular student decided that he wanted to recolor one >>> of the images, to display exactly where it is overlapping another image. >>> Unfortunately, the recoloring behavior is totally erratic. The parts of >>> the image that are being recolored based on the overlap mask produced are >>> very inconsistent. Moving the top image even slightly can dramatically >>> change what pixels are marked as colliding. The only consistent thing is >>> that pixels that are *not* colliding are never marked as colliding, >>> however pixels that *are* colliding are not consistently marked as >>> colliding. When the mobile image is stationary, the pixels marked as >>> colliding don't change, but a movement of 1 pixel in any direction can >>> dramatically change what is marked as colliding and what is not. Moving >>> the mobile image rapidly back and forth over the stationary one appears to >>> reveal vertical divisions, where pixels on one side are more likely to be >>> marked as colliding than pixels on the other. I did not observe horizontal >>> divisions like this, though I could have missed them. >>> >>> Anyhow, someone *please* file a report for this bug! It clearly should >>> have been done 5 years ago, but someone obviously dropped the ball. >>> >>