On Saturday, March 2, 2013 9:08:18 PM UTC-6, Ian wrote: > On Sat, Mar 2, 2013 at 6:56 PM, Alex Gardner <agardner...@gmail.com> wrote: > > > I am in the process of making a pong game in python using the pygame > > library. My current problem is that when I move the mouse, it turns off as > > soon as the mouse stops moving. The way I am doing this is by making the > > default cursor invisible and using .png files as replacements for the > > cursor. Perhaps my code would best explain my problem. I will take help > > in any way that I can. Here are the links that contain my code: > > > > Your mouse motion code draws the paddle in the new position, waits > > 1/10th of a second, and then draws over it again with the "invisible" > > paddle. Thus, approximately 1/10th of a second after you stop moving > > the mouse, it disappears. > > > > Mouse motion events are probably not the best way to do this. You can > > instead just capture the current position of the mouse on every frame > > and use that instead. I replaced your main loop with the following: > > > > paddle_pos = (0, 0) > > clock = pygame.time.Clock() > > > > while True: > > for event in pygame.event.get(): > > if event.type == QUIT: > > sys.exit() > > > > # Erase the paddle from the old mouse position. > > screen.blit(bpaddle, paddle_pos) > > # Redraw the net before the paddle so that the paddle can appear over it. > > pygame.draw.line(screen, game.lineColor, game.net1, game.net2, > > game.netWidth) > > # Get the new mouse position. > > paddle_pos = pygame.mouse.get_pos() > > # Draw the paddle at the new mouse position. > > screen.blit(beeper, paddle_pos) > > # Update the screen if it's double-buffered. > > pygame.display.update() > > # Finally, let the CPU idle until it's time for the next frame. > > # 50 here means that it will sleep long enough to achieve 50 FPS. > > clock.tick(50) > > > > And I think you will find that this does what you want. > > > > A couple more observations while I'm at it. Generally there is no > > need to be calling pygame.display.update() multiple times per frame. > > Just draw everything that you need, and then call it once at the end > > of the loop, as I have shown above. Also, the shebang line only does > > anything if it's the very first line in the file, so it would need to > > appear before the module docstring to do anything useful.
Thank you very much, Ian. I understand the code and have learned from it. If I were more knowledgeable in python I wouldn't have had to ask; I am learning as I go with this project. Again, thank you :) -- http://mail.python.org/mailman/listinfo/python-list