吃豆人代码实现
时间: 2023-07-09 19:18:13 浏览: 53
下面是一个简单的吃豆人代码实现,使用Python语言和Pygame库:
```python
import pygame
import random
# 初始化Pygame
pygame.init()
# 设置游戏窗口的大小
window_size = (400, 400)
screen = pygame.display.set_mode(window_size)
# 设置游戏标题
pygame.display.set_caption('吃豆人')
# 加载游戏图片
player_image = pygame.image.load('player.png')
enemy_image = pygame.image.load('enemy.png')
food_image = pygame.image.load('food.png')
# 定义游戏角色
player = {
'image': player_image,
'rect': player_image.get_rect(),
'speed': 5
}
enemies = []
for i in range(3):
enemy = {
'image': enemy_image,
'rect': enemy_image.get_rect(),
'direction': random.choice(['up', 'down', 'left', 'right']),
'speed': 3
}
enemies.append(enemy)
foods = []
for i in range(10):
food = {
'image': food_image,
'rect': food_image.get_rect()
}
food['rect'].x = random.randint(0, window_size[0] - food['rect'].width)
food['rect'].y = random.randint(0, window_size[1] - food['rect'].height)
foods.append(food)
# 游戏循环
done = False
while not done:
# 处理游戏事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
# 检测键盘输入
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
player['rect'].x -= player['speed']
if keys[pygame.K_RIGHT]:
player['rect'].x += player['speed']
if keys[pygame.K_UP]:
player['rect'].y -= player['speed']
if keys[pygame.K_DOWN]:
player['rect'].y += player['speed']
# 更新敌人位置
for enemy in enemies:
if enemy['direction'] == 'up':
enemy['rect'].y -= enemy['speed']
if enemy['rect'].y < 0:
enemy['direction'] = 'down'
elif enemy['direction'] == 'down':
enemy['rect'].y += enemy['speed']
if enemy['rect'].y > window_size[1] - enemy['rect'].height:
enemy['direction'] = 'up'
elif enemy['direction'] == 'left':
enemy['rect'].x -= enemy['speed']
if enemy['rect'].x < 0:
enemy['direction'] = 'right'
elif enemy['direction'] == 'right':
enemy['rect'].x += enemy['speed']
if enemy['rect'].x > window_size[0] - enemy['rect'].width:
enemy['direction'] = 'left'
# 检测碰撞
for food in foods:
if player['rect'].colliderect(food['rect']):
foods.remove(food)
for enemy in enemies:
if player['rect'].colliderect(enemy['rect']):
done = True
# 绘制游戏界面
screen.fill((0, 0, 0))
screen.blit(player['image'], player['rect'])
for enemy in enemies:
screen.blit(enemy['image'], enemy['rect'])
for food in foods:
screen.blit(food['image'], food['rect'])
pygame.display.flip()
# 退出Pygame
pygame.quit()
```
这个代码实现了一个简单的吃豆人游戏,玩家使用键盘控制吃豆人的移动,吃豆人需要躲避敌人并吃掉所有的豆子。这个代码还可以进一步完善,加入更多的游戏元素和玩法。