当前位置: Python基础教程 > 12-pygame飞机大战 > 阅读正文

pygame 飞机大战 窗口绘制

2021.6.24.   1103 次   1293字

在pyGameAricraft项目中, 新建一个main.py文件 ( pycharm项目默认就有 )

这个文件将作为程序入口, 首先在main.py搭建一些基础代码

import pygame   #导入pygame模块

pygame.init()   #pygame初始化

print("游戏运行中")

pygame.quit()    #pygame结束

pygame的init是初始化pygame所有模块, quit是结束程序

矩形类

我们将使用一个大的矩形窗口, 作为游戏的窗口, 宽480, 高700

pygame提供了一个pygame.Rect类用于描述矩形区域

Rect(x, y, width, height) -> Rect

其中坐标原点为x, y, 而宽, 高可以用 size 表示

创建游戏主窗口

pygame有一个 display 模块, 用于创建、管理游戏窗口

pygame.display.set_mode()初始化游戏窗口
pygame.display.update()刷新游戏窗口

set_mode方法

set_mode(resolution=(0,0), flags=0, depth=0) -> Surface

参数说明

  • resolution指定屏幕的, 默认大小全屏
  • flags参数指定屏幕的附加选项, 可以不传递
  • depth参数表示颜色位数, 默认自动匹配

返回值, 可以理解为主窗口对象, 且必须接接收这个实例, 后续还需要操作它

screen = pygame.display.set_mode((480, 700))

此外, 在程序运行期间, 应该是一个循环, 否则窗口一闪而过

while True:
    pass

接下来, 我们给窗口绘制背景, 先使用pygame.image.load加载图片, 然后绘制, 刷新

bg = pygame.image.load("./images/background.png")

screen.blit(bg, (0,0))  #绘制, 第二个参数是图片位置

pygame.display.update()  #刷新屏幕

还需要绘制己方飞机

hero = pygame.image.load("./images/me1.png")

screen.blit(hero, (200, 500))

pygame.display.update()  #刷新屏幕

pygame.display.update方法是刷新屏幕, 只需要在显示前刷新一次即可

代码小结

本小节, 修改后的main.py代码如下:

import pygame as pg  #导入pygame模块, 简化模块名pg

pg.init()   #pygame初始化

#实例化窗口
screen = pg.display.set_mode((480, 700))

#绘制背景
bg = pg.image.load("./images/background.png")
screen.blit(bg, (0,0))  #绘制, 第二个参数是图片位置

#绘制己方飞机
hero = pg.image.load("./images/me1.png")
screen.blit(hero, (200, 500))
pg.display.update()  #刷新屏幕

while True:
    pass

pg.quit()    #pygame结束

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群