【python】之pygame模块,游戏开发【基础篇】

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

什么是pygame?

Pygame 是一个专门用来开发游戏的 Python 模块,主要为开发、设计 2D 电子游戏而生,具有免费、开源,支持多种操作系统,具有良好的跨平台性等优点。它提供了诸多操作模块,比如图像模块(image)、声音模块(mixer)、输入/输出(鼠标、键盘、显示屏)模块等。简单来说,如果你使用pygame,理论上可以开发设计市面上所有的2d类型游戏(仅仅是理论上)。

一.pygame模块的安装

使用pip接口进行安装

pip install pygame

pip接口详细说明可以看:https://blog.csdn.net/pengneng123/article/details/129556320

二.pygame库基本函数使用

  1. pygame.init() 初始化,调用pygame的任何函数之前都要调用这个函数。

pygame.init() 
  1. pygame.display.set_mode((400,300)) 创建窗口,传入宽和高

screen = pygame.display.set_mode((400,300))
  1. pygame.display.set_caption("xxxx") 设置窗口顶部标题名称

pygame.display.set_caption("猪了个猪")
  1. 运行上述代码:

import pygame

pygame.init() 

screen = pygame.display.set_mode((400,300))

pygame.display.set_caption("猪了个猪")

运行上面代码你会发现左上角出现一个窗口,然后一闪即过,这是正常的。这里就要思考python代码的运行,通过执行上述代码,你创建了一个黑色窗口,但是当代码执行完会发生什么,当然是python自动退出了。所以你要使用一定的方法不让代码结束运行,这就要添加“死循环”了,这很好理解,while true 会一遍又一遍的运行里面的代码而不退出。

5.while True让游戏无限循环

while True:  # 死循环确保窗口一直显示
    for event in pygame.event.get():  # 遍历所有事件
        if event.type == pygame.QUIT:  # 如果单击关闭窗口,则退出
            sys.exit()  #按X 退出

6.完整代码示例:

import pygame
import sys

pygame.init() 

screen = pygame.display.set_mode((400,300))

pygame.display.set_caption("猪了个猪")

while True:  

    for event in pygame.event.get(): 
        
        if event.type == pygame.QUIT: 
            
            sys.exit()

输出:

pygame,python,python,pygame,开发语言,Powered by 金山文档

这样,一个游戏的最基础框架就出来了。

三.操作pygame

  1. 颜色与绘制,screen.fill() 对颜色进行填充

#设置颜色
Black = (0,0,0)
White = (255,255,255)
Red = (255,0,0)
Green = (0,255,0)
Blue = (0,0,255)

screen.fill(White)

2.绘制图形

###绘制多边形,pylygon(surface,color,pointlist,width)pointlist参数是一个元组或者点的
pygame.draw.polygon(screen,Green,((146,0),(291,106),(236,277),(56,277),(0,106)))

####画线,参数为 surface,color,起始位置,终止位置,粗细
pygame.draw.line(screen,Blue,(60,120),(120,120),4)

#画圆,参数为surface,color,圆心,半径,边粗细(0填充)
pygame.draw.circle(screen,Blue,(300,50),20,0)

#画椭圆,参数为surface,color,边界矩形(以矩形的位置来画椭圆),边粗细
pygame.draw.ellipse(screen,Red,(300,250,40,80),1)

#画矩形,参数为surface,color,矩形(左上角x坐标,左上角y坐标,宽,高),边粗细
pygame.draw.rect(screen,Red,(200,150,100,50))

3.pygame.display.flip() 更新全部显示

pygame.display.flip()

4.pygame.quit() #退出pygame

pygame.quit()

输出上述代码:

import pygame
import sys

pygame.init() 

screen = pygame.display.set_mode((400,300))
color = (0, 0, 0)  # 设置颜色
pygame.display.set_caption("猪了个猪")
Black = (0,0,0)
White = (255,255,255)
Red = (255,0,0)
Green = (0,255,0)
Blue = (0,0,255)

screen.fill(White)

###绘制多边形,pylygon(surface,color,pointlist,width)pointlist参数是一个元组或者点的
pygame.draw.polygon(screen,Green,((146,0),(291,106),(236,277),(56,277),(0,106)))

####画线,参数为 surface,color,起始位置,终止位置,粗细
pygame.draw.line(screen,Blue,(60,120),(120,120),4)

#画圆,参数为surface,color,圆心,半径,边粗细(0填充)
pygame.draw.circle(screen,Blue,(300,50),20,0)

#画椭圆,参数为surface,color,边界矩形(以矩形的位置来画椭圆),边粗细
pygame.draw.ellipse(screen,Red,(300,250,40,80),1)

#画矩形,参数为surface,color,矩形(左上角x坐标,左上角y坐标,宽,高),边粗细
pygame.draw.rect(screen,Red,(200,150,100,50))


while True:  

    for event in pygame.event.get(): 

        if event.type == pygame.QUIT: 

            exit()
    pygame.display.flip()  # 更新全部显示
pygame.quit()

输出:

pygame,python,python,pygame,开发语言,Powered by 金山文档

5.图片插入pygame.image.load('xxx.png')

pygame.image.load('1158.png')

6.screen.blit(xx,(0,0))##写入到背景

screen.blit(xx,(0,0))##写入到背景

输出:

pygame,python,python,pygame,开发语言,Powered by 金山文档

7.pygame.time.Clock()设置时钟

clock = pygame.time.Clock()  # 设置时钟

8.看一段完整的代码,更好的理解pygame

import pygame
import time

pygame.init()  # 初始化pygame

size = width, height = 480, 700  # 设置窗口大小
screen = pygame.display.set_mode(size)  # 显示窗口
pygame.display.set_caption("猪了个猪")
color = (0, 0, 0)  # 设置颜色

pig = pygame.image.load('1158.png')  # 加载图片
beijing121 = pygame.image.load("gr/147.png")##加载背景图片
beijing131 = pygame.image.load("gr/189.png")##加载背景图片
beijing141 = pygame.image.load("gr/199.png")##加载背景图片
beijing151 = pygame.image.load("gr/200.png")##加载背景图片


pigrect = pig.get_rect()  # 获取矩形区域
pigrect1 = beijing121.get_rect()  # 获取矩形区域

speed = [1, 1]  # 设置移动的X轴、Y轴
speed1 = [80, 80]
speed2 = [160, 160]
speed3 = [200, 120]
speed4 = [120, 260]  # 设置移动的X轴、Y轴

clock = pygame.time.Clock()  # 设置时钟



def Map():
    screen.fill((255,255,255))##填充颜色
    screen.blit(background,(0,0))##写入到背景

while True:  # 死循环确保窗口一直显示
    clock.tick(10)  # 每秒执行10次
    for event in pygame.event.get():  # 遍历所有事件
        if event.type == pygame.QUIT:  # 如果单击关闭窗口,则退出
            sys.exit()

    background = pygame.image.load("beijing1.png")##加载背景图片
    
    Map()

    pigrect = pigrect.move(speed)  # 移动小猪
    pigrect1 = pigrect.move(speed1)  # 移动小猪
    pigrect2 = pigrect.move(speed2)
    pigrect3 = pigrect.move(speed3)
    pigrect4 = pigrect.move(speed4)

    # 碰到左右边缘
    if pigrect.left < 0 or pigrect.right > width:
        speed[0] = -speed[0]
    # 碰到上下边缘
    if pigrectt.top < 0 or pigrect.bottom > height:
        speed[1] = -speed[1]
        
        
    if pigrect1.left < 0 or pigrect1.right > width:
        speed[0] = -speed[0]
    # 碰到上下边缘
    if pigrect1.top < 0 or pigrect1.bottom > height:
        speed[1] = -speed[1]
        
        
    if pigrect2.left < 0 or pigrect2.right > width:
        speed[0] = -speed[0]
    # 碰到上下边缘
    if pigrect2.top < 0 or pigrect2.bottom > height:
        speed[1] = -speed[1]
        
        
    if pigrect3.left < 0 or pigrect3.right > width:
        speed[0] = -speed[0]
    # 碰到上下边缘
    if pigrect3.top < 0 or pigrect3.bottom > height:
        speed[1] = -speed[1]
        
        
    if pigrect4.left < 0 or pigrect4.right > width:
        speed[0] = -speed[0]
    # 碰到上下边缘
    if pigrect4.top < 0 or pigrect4.bottom > height:
        speed[1] = -speed[1]


    screen.blit(ball, ballrect)  # 将图片画到窗口上
    screen.blit(beijing121, ballrect1)  # 将图片画到窗口上
    screen.blit(beijing131, ballrect2)  # 将图片画到窗口上
    screen.blit(beijing141, ballrect3)  # 将图片画到窗口上
    screen.blit(beijing151, ballrect4)  # 将图片画到窗口上


    pygame.display.flip()  # 更新全部显示

pygame.quit()  # 退出pygame

最后输出:

最后可以根据自己想做的东西,慢慢尝试去实现啦。

@Neng文章来源地址https://www.toymoban.com/news/detail-718365.html

到了这里,关于【python】之pygame模块,游戏开发【基础篇】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • python模块: pygame(自己动手写游戏)

    目录 一、pygame的安装  二、pygame基础操作 1.基本窗体设置 2.surface组件  3.event事件 一、pygame的安装 在pycharm 左下角的终端上输入指令pip install pygame,按下回车键执行下载,推荐下载到虚拟环境上,即路径前方带有(venv)。或者不使用pycharm,在控制窗口输入执行该命令也可以(控

    2024年03月21日
    浏览(45)
  • Pygame 游戏开发 基础知识

    Pygame 是一个跨平台的 Python 模块, 专为电子游戏设计. Pygame 在已经非常优秀的 SDL 库的基础上增加了许多功能. 安装命令: 导入 Pygame 包: pygame.locals 模块包括了 pygame 中定义的各种常量. 导入所有常量 pygame.init() 是启动 pygame 并初始化的命令, 类似 python 中的 __init__ . 例子: pygame.

    2023年04月25日
    浏览(40)
  • Python 游戏开发与 Pygame

    第一章. Python 简介 Python 简介和历史 Python 特点和优势 安装 Python 第二章. 变量和数据类型 变量和标识符 基本数据类型:数字、字符串、布尔值等 字符串操作 列表、元组和字典 第三章. 控制语句和函数 分支结构:if/else 语句 循环结构:for 和 while 循环 函数 参数传递与返回值

    2024年04月17日
    浏览(41)
  • Python基础篇(十五)-- Pygame游戏编程

            Pygame是一个开源的Python模块,专门用于多媒体应用(如电子游戏)的开发,其中包含对图像、声音、视频、事件、碰撞等的支持。Pygame建立在SDL的基础上,SDL是一套跨平台的多媒体开发库,用C语言实现,被广泛的应用于游戏、模拟器、播放器等的开发。而Pygame让

    2024年02月05日
    浏览(38)
  • 【附源码】使用python+pygame开发消消乐游戏

    消消乐小游戏相信大家都玩过,大人小孩都喜欢玩的一款小游戏,那么基于程序是如何实现的呢?今天带大家,用python+pygame来实现一下这个花里胡哨的消消乐小游戏功能,感兴趣的朋友一起看看吧 目录 一、环境要求 二、游戏简介 三、完整开发流程 1、项目主结构 2、详细配

    2024年02月04日
    浏览(53)
  • Python Pygame游戏开发教程正式发布(非常详细)

    Pygame 是一款专门为开发和设计 2D 电子游戏而生的、免费开源的 Python 软件包/模块,它支 Windows、Linux、Mac OS 等操作系统,具有良好的跨平台性 Pygame 在 SDL 的基础上开发而成,它提供了诸多操作模块,比如图像模块(image)、声音模块(mixer)、输入/输出(鼠标、键盘、显示屏

    2024年04月13日
    浏览(40)
  • 【pygame游戏开发】这几个经典游戏,小红书Python面试题目

    pygame.time.set_timer(change_hole_event, 800) mole = Mole(cfg.MOLE_IMAGEPATHS, hole_pos) hammer = Hammer(cfg.HAMMER_IMAGEPATHS, (500, 250)) clock = pygame.time.Clock() your_score = 0 flag = False init_time = pygame.time.get_ticks() while True: time_remain = round((61000 - (pygame.time.get_ticks() - init_time)) / 1000.) if time_remain == 40 and not flag: hole

    2024年04月25日
    浏览(36)
  • 在Python中使用Pygame开发游戏的100条建议

    Pygame是一个用于制作游戏的Python库。它提供了许多功能,使您可以轻松地创建2D游戏和多媒体应用程序。下面是一些使用Pygame库的基本步骤: 安装Pygame 首先,您需要安装Pygame库。您可以使用pip命令在命令行中安装它: 导入Pygame模块 在Python脚本中,您需要导入Pygame模块,以便

    2024年03月11日
    浏览(43)
  • Pygame:Python游戏开发库的安装和使用指南

    Pygame:Python游戏开发库的安装和使用指南 如果你想使用Python编写游戏,那么Pygame游戏开发库可能是你最好的选择。这个库提供了丰富的功能和工具,可让你轻松地创建各种类型的游戏。在本文中,我们将介绍如何安装Pygame,并使用它来创建一个简单的游戏。 安装Pygame 要使用

    2024年02月06日
    浏览(61)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包