Pygame简介

这篇具有很好参考价值的文章主要介绍了Pygame简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一课Pygame简介

Pygame 是一个游戏库,通常用于在 Python 中创建 2-D 游戏。它具有许多重要功能,例如碰撞检测、声音和音乐、图形、事件系统等等。

Pygame安装

在我们向您介绍任何 Pygame 代码之前,您需要做的第一件事就是下载并安装它。最简单和最常见的方法是通过下面的 pip 命令。

pip install pygame

创建 Pygame 窗口

在任何 Pygame 应用程序中,我们需要做的第一件事就是创建一个窗口。

#导入pygame模块
import pygame 
#退出窗口程序时用到,帮助程序成功退出
import sys
#初始化Pygame引擎,所有 pygame 应用程序中都是必须
pygame.init()
#配置窗口大小
SCREEN_SIZE = WIDTH,HEIGHT = 400,300
#创建一个“屏幕”或“Surface”对象
screen = pygame.display.set_mode(SCREEN_SIZE)

pygame.display.set_mode()方法原型:

set_mode(size=(0, 0), flags=0, depth=0, display=0, vsync=0) -> Surface

上面的代码创建了一个宽 400 像素、高 300 像素的窗口。当你运行时,会有一个窗口一闪而过。这是因为程序已经运行完毕。

设置游戏循环

游戏循环是一个无限循环,只有在接收到关闭窗口事件时才会停止。

游戏循环流程

  1. 事件处理
  2. 游戏状态处理
  3. 绘制游戏对象到屏幕
while True:
 	## 事件处理
    ## 游戏状态处理
    ## 绘制游戏对象到屏幕
 	
    pygame.display.update()

事件处理

运行以下代码,当你想关闭窗口时,会出现 关闭不了的问题。


import pygame 
import sys
 
pygame.init()
SCREEN_SIZE = WIDTH,HEIGHT = 400,300
screen = pygame.display.set_mode(SCREEN_SIZE )
 
while True:
    ## 事件处理
    ## 游戏状态处理
    ## 绘制游戏对象到屏幕
 
    pygame.display.update()

这是因为我们还没有编写处理事件。

使用pygame.event.get()返回所有事件,并遍历事件,检测是否有QUIT事件产生。

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    pygame.display.update()

在上面的代码中,我们通过检查每个事件的类型属性成功检测到 QUIT 事件。然后我们调用干净关闭所必需的两个函数,pygame.quit() 和 sys.exit()。(一定要先打调用pygame.quit())

在屏幕上绘画

接下来我们将在屏幕上绘制一个绿色的正方形。使用到pygame.Surface对象。

Surface构造函数

Surface((width, height), flags=0, depth=0, masks=None) -> Surface
Surface((width, height), flags=0, Surface) -> Surface

Surface的fill()方法


Surface.fill(color, rect=None, special_flags=0) -> Rect
#1.创建一个宽度=50 ,高度=50的Surface对象
surface = pygame.Surface((50, 50))
#2.调用fill() 方法填充Surface对象,color参数是一个(R,G,B)元组,元组中的每个值都在 0 – 255 之间
surface.fill((0,255,0))

这是完整的代码:

import pygame
import sys
 
pygame.init()
SCREEN_SIZE = WIDTH,HEIGHT = 400,300
GREEN = ( 0, 255, 0)
screen = pygame.display.set_mode(SCREEN_SIZE )

surface = pygame.Surface((50, 50))
surface.fill(GREEN)
 
while True:
    events = pygame.event.get()
    for event in events:
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
    #将绘制的surface对象绘制到screen指定位置上
    screen.blit(surface, (175, 125))
    pygame.display.update()

了解屏幕的工作原理

这里需要注意的是,游戏循环的每次迭代都会将此Surface对象绘制到屏幕上。在这种情况下这不是强制性的,因为我们只绘制了一个静止的对象。

但在大多数情况下,我们有适当的背景和移动的精灵,我们需要在每次迭代中重新渲染所有内容。

Pygame 窗口就像一个画板。如果你把正方形画在中间,然后向左移动 100 像素,就会有两个正方形。这是因为您两次将正方形绘制到屏幕上。

下面的代码说明了这一点。(不要担心键盘事件代码,这将在键盘事件教程中解释)

import pygame
import sys
 
pygame.init()
SCREEN_SIZE = WIDTH,HEIGHT = 400,300
GREEN = (0,255,0)
screen = pygame.display.set_mode(SCREEN_SIZE )
 
surface = pygame.Surface((50, 50))
surface.fill(GREEN)

x = 100
y = 100
while True:
    events = pygame.event.get()
    for event in events:
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RIGHT:
                x += 20
    screen.blit(surface, (x,y))
    pygame.display.update()

如果你多次按下“右箭头键”,屏幕上就会出现多个正方形叠加的效果。

解决方法:我们重新将窗口背景色填充成原来的黑色,相当于将原来的画板上的图像擦除掉,就可以解决这个问题

import pygame
import sys
 
pygame.init()
SCREEN_SIZE = WIDTH,HEIGHT = 400,300
GREEN = (0,255,0)
screen = pygame.display.set_mode(SCREEN_SIZE )
 
surface = pygame.Surface((10, 10))
surface.fill((0,255,0))
 
x = 100
y = 100
 
while True:
    events = pygame.event.get()
    for event in events:
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RIGHT:
               x += 20
     #填充窗口颜色
    screen.fill((0,0, 0))
    #绘制正方形
    screen.blit(surface, (x,y))
    pygame.display.update()

确保先绘制背景,然后再进行其他操作。如果先画正方形,再画背景,正方形就会被覆盖。文章来源地址https://www.toymoban.com/news/detail-440921.html

到了这里,关于Pygame简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Python+Pygame实现一个俄罗斯方块小游戏【完整代码】

    俄罗斯方块,一款起源于上世纪80年代的经典电子游戏,凭借简单的规则和独特的魅力,一跃成为全球家喻户晓的经典。你知道其实只需要一些基础的编程知识,就可以自己实现它吗?今天,我们将使用Python的Pygame库,一步步带你构建属于自己的俄罗斯方块小游戏! 游戏初始

    2024年02月04日
    浏览(50)
  • 很合适新手入门使用的Python游戏开发包pygame实例教程-01[开发环境配置与第一个界面]

    我们假定你已经安装好了我们开发python程序的sublime text,如果不知道怎么安装的可以参照我前面的博文。这里只需要解决的是配置好Pygame的问题。本篇博文主要解决开发环境配置以及第一个游戏界面的显示问题。 文章原出处: https://blog.csdn.net/haigear/article/details/130173836 没有

    2024年01月25日
    浏览(96)
  • HTML5游戏引擎(一)-egret引擎简介——一个开源免费的游戏框架

    游戏行业发展迅速, 给程序员提供了大量就业 (斗鱼, 微派, 腾讯, 蓝月, 网易 等等) 游戏开发薪资普遍比较高 (王者荣耀 , 蓝月) 游戏已经普遍被大众所认可,并且发展成一种竞技体育 重点学习Egret Typescrit 语法学习 一笔带过Cocos2d-x Egret跨平台,入手容易,性能较好,更

    2024年02月05日
    浏览(75)
  • 无人机自主飞行实战入门-第一课(简介)

    研究的意义:对人类操作的严重依赖,严重阻碍了泛无人机行业的发展。 飞行汽车(UAM)即将到来,不论是从成本还是安全考虑都需要自主飞行。 传统飞控基于STM32架构设计,无法满足更智能功能所需的计算量,飞控是为了无人机位姿控制所设计,人类操控依然in the loop。

    2024年02月11日
    浏览(36)
  • 【STM32】基础知识 第一课 单片机简介

    单片机 (Single-Chip Microcomputer) 单品微型计算机, 是一种集成电路芯片. 电脑 vs 单片机: 电脑 单片机 CPU CPU 内存 SRAM 硬盘 Flash 主板 外设 SRAM 静态随机读取器 (Static Random-Access Memory): SRAM 是随机存储器的一种, 属于静态数据, 这类存储器要是维持电源, 里面存储的信息就可以恒常维持

    2024年02月11日
    浏览(99)
  • 【pygame】01 pygame制作游戏的最小系统

    这次使用sublime+python进行pygame的游戏开发,目的是学习使用python的基本操作和常用模块 添加一个文件夹到工程 1.导入使用的模块 2.初始化:pygame.init函数包含了各个子模块的初始化,可以重复调用 3.pygame.display.set_mode返回一个特殊的Surface,之后所有的操作都体现在这个Surface

    2024年02月09日
    浏览(69)
  • Pygame简介

    Pygame 是一个游戏库,通常用于在 Python 中创建 2-D 游戏。它具有许多重要功能,例如碰撞检测、声音和音乐、图形、事件系统等等。 在我们向您介绍任何 Pygame 代码之前,您需要做的第一件事就是下载并安装它。最简单和最常见的方法是通过下面的 pip 命令。 创建 Pygame 窗口

    2024年02月04日
    浏览(29)
  • Python游戏汇总:三十个pygame游戏代码

    提示:爱学习哦,不要沉迷游戏,平时打发一下无聊时间最好啦 正文 欢迎阅读: 1.python21点小游戏。2.Python笨鸟先飞小游戏。3.python绘制满天星小游戏。4.吃豆豆小游戏项目。 5.python忍者奔跑小游戏。6.python迷宫小游戏。7.python飞机大战改版小游戏。8.Python鳗鲲大战小游戏。 9

    2024年02月02日
    浏览(48)
  • 打地鼠游戏编程代码,pygame打地鼠游戏代码

    大家好,小编来为大家解答以下问题,打地鼠游戏编程代码,pygame打地鼠游戏代码,今天让我们一起来看看吧! 文章目录 0 项目简介 1 游戏介绍 2 实现效果 3 开发工具 3.1 环境配置 3.2 Pygame介绍 4 具体实现 4.1 实现游戏精灵类 4.2 实现游戏主循环 4.3 制作简易的游戏开始和结束

    2024年01月25日
    浏览(42)
  • PyGame游戏编程

    Python非常受欢迎的一个原因是它的应用领域非常广泛,其中就包括游戏开发。而是用Python进行游戏开发的首选模块就是PyGame。 PyGame是跨平台Python模块,专为电子游戏设计,包含图像、声音等,创建在SDL(Simple DirectMedia Layer)基础上,允许实时电子游戏研发而不会被低级语言,

    2024年02月08日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包