GAMES101 作业1
发布人:shili8
发布时间:2025-01-23 20:10
阅读次数:0
**GAMES101 作业1**
**题目描述**
在这个作业中,我们将学习如何使用 Python 来实现一些基本的游戏开发概念。我们的目标是创建一个简单的2D 游戏引擎,并使用它来实现一个小游戏。
**任务一:设置环境**
首先,我们需要安装必要的库和工具。我们将使用 Pygame 库来创建游戏界面和处理用户输入。
# 导入必要的库import pygameimport sys# 初始化 Pygamepygame.init()
# 设置窗口大小screen_width =800screen_height =600screen = pygame.display.set_mode((screen_width, screen_height))
# 设置标题pygame.display.set_caption("GAMES101 作业1")
# 主循环while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# 填充背景色 screen.fill((255,255,255))
# 更新界面 pygame.display.flip()
# 等待下一帧 pygame.time.Clock().tick(60)
**任务二:实现基本的游戏逻辑**
在这个部分,我们将学习如何使用 Pygame 来实现一些基本的游戏逻辑。我们将创建一个简单的角色类,并使用它来控制角色在屏幕上的移动。
# 定义角色类class Character: def __init__(self): self.x =100 self.y =100 def move(self, dx, dy): self.x += dx self.y += dy# 创建角色实例character = Character() # 主循环while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # 获取用户输入 keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: character.move(-5,0) if keys[pygame.K_RIGHT]: character.move(5,0) if keys[pygame.K_UP]: character.move(0, -5) if keys[pygame.K_DOWN]: character.move(0,5) # 填充背景色 screen.fill((255,255,255)) # 绘制角色 pygame.draw.rect(screen, (0,0,0), (character.x, character.y,50,50)) # 更新界面 pygame.display.flip() # 等待下一帧 pygame.time.Clock().tick(60)
**任务三:实现碰撞检测**
在这个部分,我们将学习如何使用 Pygame 来实现碰撞检测。我们将创建一个简单的碰撞检测类,并使用它来检查角色是否与其他对象相撞。
# 定义碰撞检测类class CollisionDetector:
def __init__(self):
self.objects = []
def add_object(self, obj):
self.objects.append(obj)
def check_collision(self, character):
for obj in self.objects:
if (character.x < obj.x + obj.width and character.x + character.width > obj.x and character.y < obj.y + obj.height and character.y + character.height > obj.y):
return True return False# 创建碰撞检测实例collision_detector = CollisionDetector()
# 添加对象collision_detector.add_object(pygame.Rect(200,200,50,50))
# 主循环while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# 获取用户输入 keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
character.move(-5,0)
if keys[pygame.K_RIGHT]:
character.move(5,0)
if keys[pygame.K_UP]:
character.move(0, -5)
if keys[pygame.K_DOWN]:
character.move(0,5)
# 检查碰撞 if collision_detector.check_collision(character):
print("碰撞!")
# 填充背景色 screen.fill((255,255,255))
# 绘制角色 pygame.draw.rect(screen, (0,0,0), (character.x, character.y,50,50))
# 更新界面 pygame.display.flip()
# 等待下一帧 pygame.time.Clock().tick(60)
**任务四:实现游戏结束**
在这个部分,我们将学习如何使用 Pygame 来实现游戏结束。我们将创建一个简单的游戏结束类,并使用它来检查角色是否已经完成了游戏。
# 定义游戏结束类class GameOver:
def __init__(self):
self.game_over = False def check_game_over(self, character):
if character.x < 0 or character.y < 0 or character.x > screen_width or character.y > screen_height:
return True return False# 创建游戏结束实例game_over = GameOver()
# 主循环while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# 获取用户输入 keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
character.move(-5,0)
if keys[pygame.K_RIGHT]:
character.move(5,0)
if keys[pygame.K_UP]:
character.move(0, -5)
if keys[pygame.K_DOWN]:
character.move(0,5)
# 检查游戏结束 if game_over.check_game_over(character):
print("游戏结束!")
break # 填充背景色 screen.fill((255,255,255))
# 绘制角色 pygame.draw.rect(screen, (0,0,0), (character.x, character.y,50,50))
# 更新界面 pygame.display.flip()
# 等待下一帧 pygame.time.Clock().tick(60)
**总结**
在这个作业中,我们学习了如何使用 Python 来实现一些基本的游戏开发概念。我们创建了一个简单的角色类,并使用它来控制角色在屏幕上的移动。我们还学习了如何使用 Pygame 来实现碰撞检测和游戏结束。通过完成这些任务,我们可以更好地理解游戏开发的基本原理,并能够应用它们到实际项目中。

