• python pygame入门 - 安装测试篇


    引言

    pygamePython语言特别为游戏开发而设计的一个开源库。它提供了一系列模块和函数,可以帮助开发者快速构建2D游戏、多媒体应用程序和其他图形用户界面。pygame支持加载和处理图片、声音、视频等多媒体文件,同时还可以在游戏中创建和管理窗口、画布等基本组件。除此之外,pygame还提供了丰富的自定义事件和游戏循环处理方法来实现更加灵活、多样化的游戏玩法。其优势如下:

    • 易于学习:pygame拥有简单的API、易于理解的文档和大量例程,这使得初学者可以很快上手。
    • 广泛的功能:pygame提供了很多有用的功能,如窗口创建、音频和视频播放、事件处理、图像绘制和键盘、鼠标等输入控制,这使得它成为开发多种类型游戏和应用程序的理想选择。
    • 高效性能:pygame使用C语言编写底层库,因此它可以在相关硬件上提供更高的性能。

    官方网址:https://www.pygame.org/news

    一、安装测试

    1.1 创建虚拟环境

    创建一个较为纯净的环境,方便后续写代码以及对程序打包等

    • 打开Anaconda Prompt,创建环境conda create --name game-py36 python=3.6,无脑yes,结果如下:
      在这里插入图片描述
    • 新建一个Pycharm工程,python解释器选择新建的环境
      在这里插入图片描述
    • 打开Pycharm最下方的Terminal,默认即为当前环境
      在这里插入图片描述

    1.2 安装测试pygame

    • 在上述环境中,安装pygame库,pip install -U pygame --user
      在这里插入图片描述
    • 测试代码,看pygame是否正常安装,运行之后显示一个小蓝框
    import pygame
    
    # pygame setup
    pygame.init()
    screen = pygame.display.set_mode((640, 360))
    clock = pygame.time.Clock()
    running = True
    
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
        screen.fill("blue")
        pygame.display.flip()
        clock.tick(60)  # FPS 60
    pygame.quit()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这里插入图片描述

    • 运行例程,python -m pygame.examples.aliens,一个射击外星人的小游戏:左右移动,空格射击 (挂了多次尝试出来的按键,这游戏连个提示都没得额)…
      在这里插入图片描述

    二、查看例程源码

    官方文档:https://www.pygame.org/docs/

    2.1 源码位置

    • 打印例程源码文件位置,都在安装目录的pygame/examples
    import pygame.examples.scaletest
    print(pygame.examples.scaletest.__file__)
    
    • 1
    • 2
    • 显示如下,刚安装完,pycharm未能检测到当前环境改变…
      在这里插入图片描述
    • 这里import pygame可以正常运行,但没有代码提示,鼠标悬浮显示No module.....重启Pycharm后正常
      在这里插入图片描述
    • 启动一个例程,根据以上路径找到stars.py文件,使用pycharm打开并运行:
      在这里插入图片描述

    2.2 简单修改

    查看stars.py源码,修改部分参数

    • 修改NUMSTARS数量:
    WINSIZE = [640, 480]     # 窗口大小
    WINCENTER = [320, 240]   # 星星起始坐标
    NUMSTARS = 1500          # 星星数量 500 -> 1500
    
    • 1
    • 2
    • 3
    • 看源码发现WINCENTER可由鼠标点击重新赋值
    if e.type == pg.MOUSEBUTTONDOWN and e.button == 1:
        WINCENTER[:] = list(e.pos)    # 鼠标点击坐标
    
    • 1
    • 2
    • 最终效果展示如下:
      在这里插入图片描述
  • 相关阅读:
    QT中拷贝一个项目的ui界面到另一个项目时Ui.h文件时Ui.h文件控件变量错乱问题解决
    软件工程理论与实践 (吕云翔) 第三章 可行性研究及需求分析课后习题及答案
    mybatis-plus分页查询(springboot中实现单表和多表查询)
    JAVA设计模式-单例模式
    CentosLinux 7 字符安装教程
    新闻管理系统设计与实现
    web pdf 拖拽签章
    互联网历史
    golang——工程组件logrus日志记录框架(结构化记录,支持文件切割,hook)
    财务数字化转型是什么?_光点科技
  • 原文地址:https://blog.csdn.net/qq_38204686/article/details/133417732