Pygame 外星人入侵 笔记(四)-- 游戏主要框架

一、本文简介

主要记录了使用pygame开发游戏的框架和关键步骤

二、游戏的主要框架

  1. 初始化:pygame.init()
  2. 设置屏幕大小:screen = pygame.display.set_mode((1200, 800))
  3. 设置标题:pygame.display.set_caption(“”)
  4. 游戏主循环:while True
    1. 监听键盘和鼠标事件:pygame.event.get(), 返回的是事件列表,需要for循环遍历
      1. 监听到退出事件,退出游戏:event.type = pygame.QUIT, sys.exit()
      2. 监听键盘事件:event.type = pygame.KEYDOWN, KEYUP
    2. 绘制屏幕:pygame.display.flip()
      1. 设置背景色(每一帧):screen.fill(bg_color)
    3. 绘制游戏对象:调用游戏对象的blit方法

三、游戏对象

  1. 加载图像
    1. 加载图像并获取外接矩形:self.image = pygame.image.load(“path”), self.rect = self.image.get_rect()
    2. 获取屏幕的外接矩形:self.screen_rect = self.screen.get_rect()
    3. 以屏幕为参照系,设置游戏对象外接矩形的位置:self.rect.centerx, self.rect.bottom, self.rect.top
      1. pygame中,原点位于屏幕左上角,向右为x正方向,向下为y正方向
    4. 绘制游戏对象:self.screen.blit(self.image, self.rect)
  2. 手动创建矩形
    1. 创建矩形:self.rect = pygame.Rect(0, 0, width, height)
    2. 调整矩形初始化的位置:self.rect.centerx
    3. 绘制矩形:pygame.draw.rect(screen, color, rect)
  3. 相同对象创建编组
    1. 创建编组:bullets = pygame.sprite.Group()
    2. 更新编组:bullets.update(), 对编组应用update时,编组自动对其中的每个精灵调用update
    3. 删除编组中某个精灵:遍历编组(bullets.copy(),for循环中,不应对编组中删除条目,所以必须遍历编组的副本),判断条件,删除精灵(bullets.remove(bullet))

四、游戏功能

  1. 连续移动:设置一个状态位,按下键盘和抬起键盘时变更状态,根据状态来响应键盘
  2. 限制游戏对象的范围:将游戏对象的rect与screen的rect做比较

五、编程思想

  1. 通过定义一个设置类,来统一管理配置,类似工作项目中的config
  2. 在开发较大项目前,需要研究既有代码,确定实现新功能前是否要进行重构
  3. 开发过程中持续不断地重构
  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pygame是一个开源的Python库,用于制作2D游戏,它提供了图形、声音、事件处理等功能。在Pygame开发的游戏项目中,"外星人入侵"是一个常见的游戏主题,玩家通常需要抵御一波又一波的外星人攻击,保护地球。 当你提到"外星人入侵图片"时,可能是指游戏中的外星人角色图像或者游戏场景的截图。在Pygame中,这些图片通常是作为游戏资源导入的,可以是PNG、JPEG等格式的图片文件。在游戏开发过程中,开发者会使用Pygame的相关模块和函数来加载和显示这些图片。 例如,在Pygame项目中加载和显示一个外星人图像的基本步骤可能包括: 1. 导入Pygame库和必要的模块。 2. 初始化Pygame并设置窗口。 3. 加载外星人图片文件。 4. 在游戏循环中绘制外星人图片到窗口上。 5. 更新屏幕显示。 具体代码示例可能如下: ```python import pygame # 初始化Pygame pygame.init() # 设置窗口大小 screen_width = 800 screen_height = 600 screen = pygame.display.set_mode((screen_width, screen_height)) # 设置窗口标题 pygame.display.set_caption('外星人入侵') # 加载外星人图片 alien_image = pygame.image.load('alien.png') alien_rect = alien_image.get_rect() # 游戏循环标志 running = True # 游戏循环 while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 绘制背景 screen.fill((0, 0, 0)) # 绘制外星人 screen.blit(alien_image, alien_rect) # 更新屏幕显示 pygame.display.flip() # 退出Pygame pygame.quit() ``` 在这个示例中,假设有一个名为'alien.png'的外星人图片文件在同一目录下。代码首先初始化Pygame,设置窗口,然后在游戏循环中加载并绘制外星人图片。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值