修改第七章的AlienDirection程序,不允许图像移出窗口的可视区域。忽略引起图像位置越界的键盘事件。
时间: 2024-03-24 17:41:04 浏览: 20
好的,以下是修改后的程序:
```python
import pygame
import sys
pygame.init()
WIDTH = 500
HEIGHT = 500
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Alien Direction")
# 加载图像
alien = pygame.image.load("alien.png")
alien_rect = alien.get_rect()
# 设置初始位置
alien_rect.centerx = WIDTH // 2
alien_rect.centery = HEIGHT // 2
# 设置速度
speed = 5
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
alien_rect.centerx -= speed
elif event.key == pygame.K_RIGHT:
alien_rect.centerx += speed
elif event.key == pygame.K_UP:
alien_rect.centery -= speed
elif event.key == pygame.K_DOWN:
alien_rect.centery += speed
# 检查是否越界
if alien_rect.left < 0:
alien_rect.left = 0
elif alien_rect.right > WIDTH:
alien_rect.right = WIDTH
if alien_rect.top < 0:
alien_rect.top = 0
elif alien_rect.bottom > HEIGHT:
alien_rect.bottom = HEIGHT
# 绘制图像
screen.fill((255, 255, 255))
screen.blit(alien, alien_rect)
pygame.display.flip()
```
修改后的程序中,我们在处理键盘事件时,不会再去改变图像的位置,而是先记录下来。在检查是否越界时,再根据之前记录的位置进行更新。这样就可以避免图像位置越界的情况了。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![ipynb](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)