[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[pygame] Strange (uncommon) behaviour of Font.render()



Executing the script

import pygame

pygame.init()
screen = pygame.display.set_mode((400, 300))

font = pygame.font.SysFont("Arial", 64)
text = font.render("Hello world!", 1, (255, 255, 0), None)
screen.blit(text, (72, 113))
pygame.display.flip()

pygame.event.clear()
pygame.event.wait()

results in an exception:

Traceback (most recent call last):
File "C:\Dokumente und Einstellungen\Entwickler\Eigene Dateien\My Dropbox\___pygame4kids___\kapitel04\programme\render_problem.py", line 9, in <module>
    text = font.render("Hello world!", 1, (255, 255, 0), None)
TypeError: Invalid background RGBA argument

In the docs for pygame.font.Font() one reads:

Font.render
     draw text on a new Surface
     Font.render(text, antialias, color, background=None): return Surface

     ...

See:
http://www.pygame.org/docs/ref/font.html#pygame.font.Font

So, because in Python

>>> None is None
True

I expected the call

font.render("Hello world!", 1, (255, 255, 0), None)

to have the same effect as

font.render("Hello world!", 1, (255, 255, 0))

So, what's the matter? What am I missing?

Best regards,
Gregor