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 来实现碰撞检测和游戏结束。通过完成这些任务,我们可以更好地理解游戏开发的基本原理,并能够应用它们到实际项目中。