【pygame学习+实战】第一篇:游戏最小系统

14天学习训练营导师课程:
李宁《Python Pygame游戏开发入门与实战》
李宁《计算机视觉OpenCV Python项目实战》1
李宁《计算机视觉OpenCV Python项目实战》2
李宁《计算机视觉OpenCV Python项目实战》3

文章目录

*
前言
一、什么是pygame?

+ 1.1 学习pygame的用处
+ 1.2 pygame里的游戏世界
二、pygame简单讲解

+ 2.1 安装pygame
+ 2.2 游戏最小系统

前言

“我有一个梦想,那就是有生之年做出一款属于自己的游戏。”

不知道屏幕前的你是否曾经有和我一样的想法,总觉得市面上的游戏不完全符合你的胃口,想要自己开发出一款属于自己的独有的游戏。

此时,如果你正好学了Python,那么你的机会来了,python也是可以做游戏的!本篇文章将介绍Python一个非常有趣又功能强大库,它所拥有的模块几乎包含了2D游戏常用功能的实现,让你用Python也能开发出一款小型的2d游戏,它的名字就是—— pygame。

【pygame学习+实战】第一篇:游戏最小系统

; 一、什么是pygame?

Pygame是一个专门用来开发游戏的 Python 模块,主要为开发、设计 2D 电子游戏而生,具有免费、开源,支持多种操作系统,具有良好的跨平台性等优点。

Pygame它提供了诸多操作模块,比如图像模块(image)、声音模块(mixer)、输入/输出(鼠标、键盘、显示屏)模块等。简单来说,如果你使用pygame,理论上可以开发设计市面上所有的2d类型游戏(仅仅是理论上)。

但是,实际上,我学习pygame并不是说要用它来开发一款完美的游戏,pygame太过于底层,许多功能都要自己来封装实现。也许你用pygame开发一款超级玛丽时间,别人都能学会C#用unity开发和平精英了(夸张)。

那么既然如此,为什么还要来学它?

【pygame学习+实战】第一篇:游戏最小系统

1.1 学习pygame的用处

Pygame适合小型2d游戏开发,比如于飞机大战、贪吃蛇、扫雷等,游戏越大,开发越困难。所以,学习pygame你可以复刻一款小时候玩的经典游戏,比如超级玛丽,魂斗罗之类的,然后更改一些游戏角色及内容,哄哄家里的弟弟妹妹(就是装X呗)。

更重要的一点,我希望你能够通过学习pygame深入理解python面向对象的思想,python面向对象是这门语言的精髓之一。掌握python面向对象的思想,也是你成功跨过python基础的标志之一,对于你后面选择的学习方向(web开发,自动化,爬虫等等)的入门非常有帮助。有了python面向对象的牢固基础,学习python高级的东西你会觉得也就那么回事,有一法破万法的效果。

当然,值得一提的是如果你真的对游戏开发感兴趣,又有python基础,那么通过pygame你可以初步了解关于游戏开发的一些基础知识,等到用pygame开发一两个小游戏,再来思考一下自己适不适合游戏开发,毕竟游戏开发的精髓都是相通的,那些高级游戏引擎只是把一些基础功能封装好了让你用,pygame只是需要你用自己的手去打造自己的工具箱。

1.2 pygame里的游戏世界

在讲解具体代码之前,还是要科普一些pygame里游戏的基础知识。

你印象中的2d游戏由哪些成分构成?首先要有一个窗口,它规定游戏画面占你的屏幕的尺寸大小,也可以设计游戏名字,背景等等。其次就是各种场景,一个游戏可以看做是由许多个场景组成的,比如超级玛丽的开始菜单场景,第一关,第二关等等。场景要有内容,比如背景,主角,敌人,子弹,物品(如超级玛丽的砖块等等)。

在后面就是主角与敌人或者其它对象的各种交互动作,如白色玛丽会发射子弹,踩到敌人压扁对方等等。最后则是贯穿场景的各种音效,声音等等。

二、pygame简单讲解

本篇文章不打算太深入pygame,旨在增加你对python的理解,以及吸引你对pygame游戏开发的一点点兴趣,或者你之前学过pygame但忘记了,希望本篇文章可以帮到你。如果你想要系统学习pygame,建议先看B站免费教程,然后自己通过官网深入学pygame。

废话不多说,我将通过自己初学时学的一个例子来让你实现pygame的初步入门。

2.1 安装pygame

pip install pygame

一直都是通过pycharm安装python第三方库,简直不要太爽.

2.2 游戏最小系统

什么是游戏最小系统(不知道有没有这个名词)?可以理解为游戏能够运行不报错的最小代码。


import pygame

pygame.init()

window = pygame.display.set_mode((600,400))

pygame.display.set_caption('游戏最小系统')

window.fill((255,255,255))

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


while True:

    for event in pygame.event.get():

        if event.type == pygame.QUIT:

            exit()

看到循环里面添加的for循环及if语句吗?它们有什么作用。由于循环会一直执行,里面的代码会一遍又一遍进行检测,所以在里面就可以有很多操作了。这就是之前提到的主角与敌人或其它物品的交互部分,代码会一直检测发生了什么事情,并作出反应,也包括开发游戏常说的碰撞检测。

所以结合上面,最小系统就出来了,它只是一个黑屏,但是它是游戏的基础框架。

import pygame

pygame.init()

window = pygame.display.set_mode((600,400))

pygame.display.set_caption('游戏最小系统')

window.fill((255,255,255))

while True:

    for event in pygame.event.get():

        if event.type == pygame.QUIT:

            exit()

【pygame学习+实战】第一篇:游戏最小系统

THE END

关于 pygame 的内容就到此为止了,大家如果喜欢就点个赞呗!

Original: https://blog.csdn.net/weixin_41102528/article/details/128022958
Author: 热爱科技的刘同学
Title: 【pygame学习+实战】第一篇:游戏最小系统

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/779065/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 各大股票开放接口介绍

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

    Python 2023年10月1日
    078
  • Pandas—DataFrame函数说明

    DataFrame表示的是矩阵的数据表,它包含已排序的列集合,每一列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引。在DataFrame中,数…

    Python 2023年8月17日
    071
  • 今天手把手教你做一个Python版的迷宫小游戏

    相关文件 想学Python的小伙伴可以关注小编的 公众号【Python日志】有很多的资源可以白嫖的哈,不定时会更新一下Python的小知识的哈!!需要源码的小伙伴在公众号里面回复:…

    Python 2023年9月19日
    072
  • Part 9:Pandas 的字符串处理操作

    Pandas字符串处理 前面我们已经使用了字符串的处理函数:df[“bWendu”].str.replace(“℃”,”…

    Python 2023年8月8日
    085
  • 5 pandas 单级索引 loc,iloc,[]+区间索引

    单级索引有:loc标签索引、iloc位置索引、[] loc 本质:loc中能传入的只有 布尔列表和 索引子集构成的列表。iloc 本质:iloc中接收的参数只能为整数或整数列表或布…

    Python 2023年8月7日
    067
  • 拯救pandas计划(23)——groupby分组聚合

    拯救pandas计划(23)——groupby分组聚合 * – / 数据需求 – / 方法说明 – / 需求处理 – / 总结 最近…

    Python 2023年8月8日
    056
  • 6000字 “保姆级” 教程 | 讲述Pandas库的数据读取、数据获取、数据拼接、数据写出!

    1. pandas介绍 Pandas是一个强大的数据分析库,它的Series和DataFrame数据结构,使得处理起二维表格数据变得非常简单。 基于后面需要对Excel表格数据进行…

    Python 2023年8月7日
    077
  • mac python3.8怎样安装scrapy_mac安装scrapy的坑

    Homebrew Homebrew是一款非常强大的可以应用在MAC中的Linux管理包,如果上面的方法感觉比较麻烦,我们可以通过下面的方法解决。 A – 执行安装bre…

    Python 2023年10月6日
    051
  • 理解super().__init__()

    一、写在前面:本文仅为个人的理解,如有错误欢迎指正 二、super(). init ()的含义 我们都知道是在定义子类的 __init__方法的时候,由于需要继承父类的属性,则我们…

    Python 2023年8月2日
    089
  • scrapy Pipline保存到数据库

    使用 Scrapy_爬虫将数据 _保存_到 _数据库_的一般步骤如下: 1. 创建一个 _数据库(例如My SQL)和表来存储数据。 2. 在 Scrapy_项目中添加 _数据库_…

    Python 2023年10月5日
    056
  • Python操作Mysql数据库

    文章目录 使用PyMySQL连接数据库并执行SQL语句 * 安装PyMySQL模块 连接数据库并执行语句 插入多条数据 查询数据 删除数据 完整项目 在Flask项目中连接数据库 …

    Python 2023年8月10日
    0127
  • 终于有人把区块链讲明白了

    导读:本文介绍区块链技术,包括区块链的概念、原理、特点和通用应用这4个部分。 大年初一,区块链及金融智能知识分享给你,祝你牛年发大财! 作者:王健宗 何安珣 李泽远 来源:大数据D…

    Python 2023年10月8日
    053
  • 深度学习之bottleneck layer

    一、 bottleneck layery中文名称:瓶颈层。我初次接触也就是在残差网络中。一般在较深的网络中,如resnet101中使用。 一般的结构如下: 其中两个1X1flite…

    Python 2023年9月15日
    068
  • 真正“搞”懂HTTP协议04之搞起来

    前两篇文章,我们从空间和时间的角度都对HTTP有了一定的学习和理解,那么基于上一篇的HTTP发展的时间顺序,我会在后面的文章由浅入深,按照HTTP版本内容的更迭,一边介绍相关字段的…

    Python 2023年10月15日
    0127
  • java生成pdf417条形码_python生成417条形码(PDF417)详解

    –– encoding: utf-8 –– from elaphe.pdf417 import Pdf417 import os i…

    Python 2023年9月23日
    083
  • ELK日志系统搭建

    文章目录 ES * 安装ES 启动ES 错误处理 验证 Kibana * 安装Kibana 启动 Kibana Logstash * 安装Logstash 启动Logstash 项…

    Python 2023年9月26日
    069
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球