| Lesson plan | Titles of parts of the lesson must be formatted as headings |
| What to create | Lesson plan |
| Which subject | Computer science |
| What topic | PyGame |
| What length (min) | 30 |
| What age group | Year or Grade 8 |
| Include homework | |
| Include images descriptions | |
| Any other preferences |
Computer Science
PyGame
30 minutes
Year/Grade 8 (12-13 years old)
By the end of this lesson, students will be able to:
import pygame
pygame.init()
(width, height) = (300, 200)
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Centered Text")
black = (0, 0, 0) white = (255, 255, 255)
running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False
screen.fill(white)
font = pygame.font.Font(None, 36)
text = font.render("Centered Text", 1, black)
textpos = text.get_rect(centerx=screen.get_width()/2, centery=screen.get_height()/2)
screen.blit(text, textpos)
pygame.display.flip()
pygame.quit()
2. Create a PyGame that counts from 1 to 10 when a button is clicked.
```python
import pygame
pygame.init()
(width, height) = (300, 200)
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Button Click Counter")
black = (0, 0, 0)
white = (255, 255, 255)
running = True
count = 0
font = pygame.font.Font(None, 36)
text = font.render(str(count), 1, black)
textpos = text.get_rect(centerx=screen.get_width()/2, centery=screen.get_height()/2)
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
count += 1
text = font.render(str(count), 1, black)
screen.fill(white)
screen.blit(text, textpos)
pygame.display.flip()
pygame.quit()
import pygame
pygame.init()
(width, height) = (600, 400) screen = pygame.display.set_mode((width, height)) pygame.display.set_caption("Sprite Movement")
black = (0, 0, 0) white = (255, 255, 255) sprite_width = 50 sprite_height = 50
sprite = pygame.image.load("sprite.png") sprite = pygame.transform.scale(sprite, (sprite_width, sprite_height)) spritepos = sprite.get_rect(centerx=screen.get_width()/2, centery=screen.get_height()/2) speed = [0, 0]
def moveSprite(): spritepos.move_ip(speed) if spritepos.left < 0 or spritepos.right > width: speed[0] = -speed[0] if spritepos.top < 0 or spritepos.bottom > height: speed[1] = -speed[1]
running = True clock = pygame.time.Clock()
while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: speed[0] = -5 elif event.key == pygame.K_RIGHT: speed[0] = 5 elif event.key == pygame.K_UP: speed[1] = -5 elif event.key == pygame.K_DOWN: speed[1] = 5 elif event.type == pygame.KEYUP: if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: speed[0] = 0 elif event.key == pygame.K_UP or event.key == pygame.K_DOWN: speed[1] = 0
moveSprite()
screen.fill(white)
screen.blit(sprite, spritepos)
pygame.display.flip()
clock.tick(60)
pygame.quit()
## Conclusion
By completing this lesson, students should now understand the basics of PyGame and how it can be used in game development. They should also have developed some practical coding skills to create simple PyGame projects. With further practice and exploration, students can continue to develop their programming skills and create more complex games.