2

I execute the following code and just get a blank (black) window.

The window caption shows but I have not yet gotten the images to load (I tried using other images than the ones utilized too). The .py file and the images are in the same directory.

background_image_filename='checkmark.jpg'
mouse_image_filename='digestive_bw.png'
import pygame, sys
from pygame.locals import*
from sys import exit


pygame.init()

screen=pygame.display.set_mode((800,800),0,32)
#pygame.display.set_caption("Hello, Howdy, Mate, and Hi there world!")


background=pygame.image.load(background_image_filename).convert()
mouse_cursor=pygame.image.load(mouse_image_filename).convert_alpha()

while True:
    for event in pygame.event.get():
        if event.type==QUIT:
            pygame.quit()
            sys.exit()

screen.blit(background,(0,0))

x,y=pygame.mouse.get_pos()
x-=mouse_cursor.get_width() /2
y=-mouse_cursor.get_height() /2
screen.blit(mouse_cursor,(x,y))

pygame.display.update()

I have installed python 3.2 with pygame 1.9.2. If I can't get this to work I will consider uninstalling those and installing 3.1 + 1.9.1.

4 Answers 4

2

You should put the code inside the loop, and use a clock to avoid using all the cpu:

clock = pygame.time.Clock()

while True:
    for event in pygame.event.get():
        if event.type==QUIT:
            pygame.quit()
            sys.exit()

    screen.blit(background,(0,0))

    x,y=pygame.mouse.get_pos()
    x-=mouse_cursor.get_width() /2
    y=-mouse_cursor.get_height() /2
    screen.blit(mouse_cursor,(x,y))

    pygame.display.update()
    clock.tick(30)  # keep 30 fps
Sign up to request clarification or add additional context in comments.

Comments

0

Something else you might want to do, you put y=- at one point and x-= right next to it. I dont' think you meant to do that.

Comments

0

tip: You can simplify width / 2 when using Rect. They have other useful dynamic properties too: http://www.pygame.org/docs/ref/rect.html ( width, center, centerx, topleft, etc... )

Code:

mouse_cursor=pygame.image.load(mouse_image_filename).convert_alpha()
mouse_rect = mouse_cursor.get_rect()

mouse_rect.center = pygame.mouse.get_pos()
screen.blit(mouse_cursor, mouse_rect)
pygame.display.update()

Which was:

mouse_cursor=pygame.image.load(mouse_image_filename).convert_alpha()

x,y=pygame.mouse.get_pos()
x-=mouse_cursor.get_width() /2
y=-mouse_cursor.get_height() /2
screen.blit(mouse_cursor,(x,y))
pygame.display.update()

Comments

0

Did you try adding

pygame.display.flip(screen)?

also need to update

pygame.display.update(screen) 

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.