Python游戏开发

article/2025/10/5 19:07:59

Python游戏开发

目录

  • Python游戏开发
    • 前言
    • 画图库
      • 导包画图
      • 起别名
      • 坐标
      • 抬笔与落笔
      • 画笔大小
      • 设置背景颜色
      • 小案例
      • 前进
      • 注意代码的优雅
    • 变量
      • 数据类型
        • type
      • 字符串
        • 三引号
        • 双引号
        • 单引号
        • 去掉双引号的功能
      • 布尔类型
      • 有序容器
      • 无序容器
      • 强制类型转换
      • 特性
      • 格式化输出
        • java 中的格式化输出
    • 游戏库
      • 游戏库
      • 游戏初始化
      • 元组合列表
        • 元组
      • 屏幕尺寸
      • 窗口标题
      • 窗体背景颜色
      • 坐标系
      • 绘制文字
      • 时间等待
      • 更新得分
      • 遍历数组和判断
      • 事件列表
      • 播放音效
      • 矩形绘制
      • 圆形
      • 创建蛇的身体
      • 两个矩形包含
      • 定义类
    • 面向对象游戏开发
      • 导入pygame 库
      • 游戏架构设计
      • 初始化方法与游戏的开始方法定义
        • 开始方法内部要做的事
        • 时钟对象
      • 让游戏窗口显示
        • 配置文件的定义与引入
          • 导入方式一
          • 导入方式二
      • 事件
        • 编写
      • 暂停
      • 绘制屏幕

前言

在这里插入图片描述
代码量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

画图库

导包画图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

起别名

在这里插入图片描述

坐标

在这里插入图片描述
在这里插入图片描述

抬笔与落笔

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

画笔大小

在这里插入图片描述

设置背景颜色

里面放16进制的颜色
在这里插入图片描述

小案例

在这里插入图片描述

前进

turtle.forward(200)

注意代码的优雅

在这里插入图片描述

变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据类型

在这里插入图片描述
在这里插入图片描述
数组
在这里插入图片描述

type

type 可以查看数据的类型

字符串

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三引号

在这里插入图片描述
三引号可以在里面换行

双引号

在这里插入图片描述
双引号换行也可以换行,但是要添加换行符号

在这里插入图片描述

单引号

在单引号里可以放双引号
在这里插入图片描述
在这里插入图片描述

去掉双引号的功能

在这里插入图片描述

布尔类型

在这里插入图片描述

有序容器

约等于 java 中的数组,但它更像集合
注意:数组和集合不一样
在这里插入图片描述 [ ] 定义数组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

无序容器

在这里插入图片描述

强制类型转换

int (a)
在这里插入图片描述

特性

输出语句可有添加各种参数
在这里插入图片描述
在这里插入图片描述

格式化输出

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

java 中的格式化输出

在这里插入图片描述

游戏库

游戏库

下载并确定游戏库
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这个代码下的是国外的,利用下面这个代码可以下载国内的镜像文件

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame

在这里插入图片描述
在这里插入图片描述

python -m pygame.examples.aliens

游戏初始化

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

元组合列表

在这里插入图片描述
末尾添加
在这里插入图片描述
在这里插入图片描述
列表数据没有限定想放啥就放啥在这里插入图片描述

列表取数据
列表名[下标]

在这里插入图片描述

在这里插入图片描述列表可以放列表
在这里插入图片描述获取数组中的数组的值
在这里插入图片描述

元组

在这里插入图片描述
在这里插入图片描述
元组不可以添加数据
如下图
在这里插入图片描述
元组是有序容器,列表也是
元组内部的数据不可以变,列表可变

屏幕尺寸

这里可以用列表[]
也可以用元组()
在这里插入图片描述

窗口标题

在这里插入图片描述

pygame.display.set_caption("窗口标题")

窗体背景颜色

在这里插入图片描述
在这里插入图片描述注意
在这里插入图片描述

# 导入游戏库
import pygame# 初始化
pygame.init()# 游戏代码
# python 中的元组数据类型
screen_size = (600 , 800)  # 屏幕尺寸
# 游戏库.显示模块.set_mode方法(参数)
screen = pygame.display.set_mode(screen_size)# 设置背景颜色
bgColor = (233, 231, 233)
screen.fill(bgColor)
pygame.display.update()# 窗口标题
pygame.display.set_caption("窗口标题")while True:pass# 回收
pygame.quit()

坐标系

已左上角做原点,X轴往右越大,Y轴越往下越大

绘制文字

在这里插入图片描述
在这里插入图片描述
渲染 (字体 , 是否抗锯齿 , 颜色)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更新屏幕
在这里插入图片描述

绘制字体三大步骤

在这里插入图片描述

# 获取字体
font_name = "simsun"
font_size = 60
title_font = my_font = pygame.font.SysFont(font_name, font_size)
# 利用字体来写字
content = "当前字体"
font_color = (1, 254, 199)
font_obj = title_font.render(content, True, font_color)
# 在屏幕上绘制 这个字体
font_pos = (50, 100)  # 字体位置
screen.blit(font_obj, font_pos)# 更新屏幕显示
pygame.display.update()

时间等待

在这里插入图片描述
在这里插入图片描述

更新得分

# 导入游戏库
import pygame
# 导入时间模块
import time# 初始化
pygame.init()# 游戏代码
# python 中的元组数据类型
screen_size = (600, 800)  # 屏幕尺寸
# 游戏库.显示模块.set_mode方法(参数)
screen = pygame.display.set_mode(screen_size)# 窗口标题
pygame.display.set_caption("窗口标题")i = 0while True:i += 1# sleep 睡觉的意思 , 让我的程序睡一秒time.sleep(1)# 更新得分# 重新用颜色填充# 设置背景颜色bgColor = (233, 231, 233)screen.fill(bgColor)# 获取字体font_name = "simsun"font_size = 60title_font = my_font = pygame.font.SysFont(font_name, font_size)# 利用字体来写字content = "当前字体" + str(i)font_color = (1, 254, 199)font_obj = title_font.render(content, True, font_color)# 在屏幕上绘制 这个字体font_pos = (50, 100)  # 字体位置screen.blit(font_obj, font_pos)# 更新屏幕显示pygame.display.update()pass# 回收
pygame.quit()

在这里插入图片描述

遍历数组和判断

这里的for 和 java 中foreach 差不多
在这里插入图片描述
在这里插入图片描述

事件列表

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 导入游戏库
import pygame
# 导入时间模块
import time# 初始化
pygame.init()# 游戏代码
# python 中的元组数据类型
screen_size = (600, 800)  # 屏幕尺寸
# 游戏库.显示模块.set_mode方法(参数)
screen = pygame.display.set_mode(screen_size)# 窗口标题
pygame.display.set_caption("窗口标题")i = 0while True:# 事件监控(监听)# 获取事件的列表events = pygame.event.get()  # 获取所有的时间# 打印时间列表中有多秒个时间l = len(events)print(l, events)# 遍历事件列表[时间对象1, 时间对象2。 时间对象3]for temp_event in events:# 事件判断,如果事件的类型是退出时间if temp_event.type == pygame.QUIT:# 程序结束exit(0)# 计数器加一i += 1# sleep 睡觉的意思 , 让我的程序睡一秒time.sleep(1)# 更新得分# 重新用颜色填充# 设置背景颜色bgColor = (233, 231, 233)screen.fill(bgColor)# 获取字体font_name = "simsun"font_size = 60title_font = my_font = pygame.font.SysFont(font_name, font_size)# 利用字体来写字content = "当前字体" + str(i)font_color = (1, 254, 199)font_obj = title_font.render(content, True, font_color)# 在屏幕上绘制 这个字体font_pos = (50, 100)  # 字体位置screen.blit(font_obj, font_pos)# 更新屏幕显示pygame.display.update()pass# 回收
pygame.quit()

在这里插入图片描述

# 导入游戏库
import pygame
# 导入时间模块
import time# 初始化
pygame.init()# 游戏代码
# python 中的元组数据类型
screen_size = (600, 800)  # 屏幕尺寸
# 游戏库.显示模块.set_mode方法(参数)
screen = pygame.display.set_mode(screen_size)# 窗口标题
pygame.display.set_caption("窗口标题")i = 0while True:# 事件监控(监听)# 获取事件的列表events = pygame.event.get()  # 获取所有的时间# 打印时间列表中有多秒个时间l = len(events)print(l, events)# 遍历事件列表[时间对象1, 时间对象2。 时间对象3]for temp_event in events:# 事件判断,如果事件的类型是退出时间if temp_event.type == pygame.QUIT:# 程序结束exit(0)# 事件判断,空格的点击事件if temp_event.type == pygame.KEYDOWN:# 只捕捉A的按下时间if temp_event.key == pygame.K_a:print("a被按下")if temp_event.key == pygame.K_b:print("b被按下")# 计数器加一i += 1# sleep 睡觉的意思 , 让我的程序睡一秒time.sleep(1)# 更新得分# 重新用颜色填充# 设置背景颜色bgColor = (233, 231, 233)screen.fill(bgColor)# 获取字体font_name = "simsun"font_size = 60title_font = my_font = pygame.font.SysFont(font_name, font_size)# 利用字体来写字content = "当前字体" + str(i)font_color = (1, 254, 199)font_obj = title_font.render(content, True, font_color)# 在屏幕上绘制 这个字体font_pos = (50, 100)  # 字体位置screen.blit(font_obj, font_pos)# 更新屏幕显示pygame.display.update()pass# 回收
pygame.quit()

播放音效

在这里插入图片描述
在这里插入图片描述

# 导入游戏库
import pygame
# 导入时间模块
import time# 初始化
pygame.init()# 游戏代码
# python 中的元组数据类型
screen_size = (600, 800)  # 屏幕尺寸
# 游戏库.显示模块.set_mode方法(参数)
screen = pygame.display.set_mode(screen_size)# 窗口标题
pygame.display.set_caption("窗口标题")i = 0# 音效
bingo = pygame.mixer.Sound("sound/bingo.wav")
# 背景音乐
pygame.mixer.music.load("sound/bgm2.mp3")# 播放背景音乐
pygame.mixer.music.play()while True:# 事件监控(监听)# 获取事件的列表events = pygame.event.get()  # 获取所有的时间# 打印时间列表中有多秒个时间l = len(events)print(l, events)# 遍历事件列表[时间对象1, 时间对象2。 时间对象3]for temp_event in events:# 事件判断,如果事件的类型是退出时间if temp_event.type == pygame.QUIT:# 程序结束exit(0)# 事件判断,空格的点击事件if temp_event.type == pygame.KEYDOWN:# 只捕捉A的按下时间if temp_event.key == pygame.K_a:print("a被按下")bingo.play()if temp_event.key == pygame.K_b:print("b被按下")# 计数器加一i += 1# sleep 睡觉的意思 , 让我的程序睡一秒time.sleep(1)# 更新得分# 重新用颜色填充# 设置背景颜色bgColor = (233, 231, 233)screen.fill(bgColor)# 获取字体font_name = "simsun"font_size = 60title_font = my_font = pygame.font.SysFont(font_name, font_size)# 利用字体来写字content = "当前字体" + str(i)font_color = (1, 254, 199)font_obj = title_font.render(content, True, font_color)# 在屏幕上绘制 这个字体font_pos = (50, 100)  # 字体位置screen.blit(font_obj, font_pos)# 更新屏幕显示pygame.display.update()pass# 回收
pygame.quit()

矩形绘制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这样我们的文字就居中了
在这里插入图片描述

圆形

在这里插入图片描述

在这里插入图片描述

创建蛇的身体

在这里插入图片描述写完这些代码后,我会获得这些
在这里插入图片描述
在这里插入图片描述需要把原来的颜色渲染注掉
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

两个矩形包含

在这里插入图片描述

定义类

在这里插入图片描述
在这里插入图片描述

面向对象游戏开发

导入pygame 库

在这里插入图片描述

游戏架构设计

游戏入口
在这里插入图片描述提供了 init 方法
在这里插入图片描述

初始化方法与游戏的开始方法定义

开始方法内部要做的事

在这里插入图片描述

时钟对象

在这里插入图片描述

在这里插入图片描述

让游戏窗口显示

python 中成员变量放在 init 中

在这里插入图片描述

配置文件的定义与引入

导入方式一

简单好理解

常量一般大写,在python 中没有特定的代码修饰他
这个是setting py文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

导入方式二

在这里插入图片描述导入多个文件
在这里插入图片描述

如果有过多的东西导入就用 *
在这里插入图片描述

使用 * 导入所有要以防重名的情况

导入
在这里插入图片描述

在这里插入图片描述

事件

编写

在这里插入图片描述
在这里插入图片描述

暂停

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

绘制屏幕

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/S62V6rjJ.shtml

相关文章

Python小游戏,练手一定得试试,看似简单练习确实很实用

前言 大家好,我是辣条 记得很久之前有发布过这么一篇: 30个Python小游戏,上班摸鱼我能玩一天【内附源码】不能说是爆火,只能说是口口相传了。不过终究还是有不少刚开始接触Python的人还是一脸蒙圈,于是乎我就只能今天…

PyGame:Python 游戏编程入门-1

PyGame:Python 游戏编程入门 ✨博主介绍前言基本 PyGame 程序PyGame 概念PyGame初始化和模块显示器和表面图像和矩形 基本游戏设计导入和初始化 PyGame设置显示器设置游戏循环处理事件在屏幕上绘图使用.blit()和.flip()精灵用户输入 ✨博主介绍 💂 个人主…

python pygame 简单小游戏

python pygame 简单小游戏 最近学习了pygame,感觉十分有意思,花了一点时间制作了一个简单的小游戏 效果图 这是一个很简单的防守类小游戏 玩家可以使用wasd控制人物移动,并且鼠标控制人物旋转,发射元气弹消除敌人。敌人顺利到达…

PyGame游戏编程

Python非常受欢迎的一个原因是它的应用领域非常广泛,其中就包括游戏开发。而是用Python进行游戏开发的首选模块就是PyGame。 1. 初识Pygame PyGame是跨平台Python模块,专为电子游戏设计,包含图像、声音等,创建在SDL(…

用pygame做一个简单的python小游戏---生命游戏

用pygame做一个简单的python小游戏—生命游戏 生命游戏(Game of Life) 生命游戏(Game of Life)是剑桥大学约翰何顿康威(John Horton Conway)教授设计的一个计算机程序。这个计算机程序是因为它模拟和显示的图像看起来颇似生命的出生和繁衍过程而得名为…

python游戏库pygame经典教程

目录 一.Pygame程序基本搭建过程 1.初始化化程序 2.创建Surface对象 3.事件监听 4.游戏循环 二.Pygame Display显示模块详解 1.将Surface对象粘贴至主窗口上 2.设置窗口主窗口 3.填充主窗口背景,参数值RGB 4.设置窗口标题 5.更新屏幕内容 6.pygame.display其他方…

Python游戏编程(Pygame)

安装Pygame pip install pygameC:\Users> pip install pygame Collecting pygame Downloading https://files.pythonhosted.org/packages/3e/f5/feabd88a2856ec86166a897b62bfad828bfe7a94a27cbd7ebf07fd 70399/pygame-1.9.4-cp37-cp37m…

Python、PyGame游戏项目

英文打字游戏项目 项目简介 英文打字小游戏,友好的多界面交互,界面整洁、美观,可动态调节游戏等级难度,可配置游戏信息。 有游戏分数,游戏时间,拼写特效,背景音乐,不同游戏等级的历…

手把手教你用python写游戏

引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏、后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,项目来自《Python编程从入门到实践》&…

分享30个有趣的 Python小游戏,我能玩一天

大家好,今天给大家带来30个 Python 小游戏,喜欢记得点赞、一定要收藏,完整版代码,文末获取 文章目录 有手就行1、吃金币2、打乒乓3、滑雪4、并夕夕版飞机大战5、打地鼠 简简单单6、小恐龙7、消消乐8、俄罗斯方块9、贪吃蛇 普普通通…

Python游戏汇总:三十个pygame游戏代码【附源码免费分享】

导语 哈喽哈喽!我是木木子! ​ 每日更新游戏不知不觉已经很多啦~ Python兴趣始于游戏,所以更新的文章中基本上都是游戏代码居多。 然后我疯狂的找各种小游戏、小脚本、小项目的教程源码什么的,然后自己进行学习、制作、修改等…

Python游戏汇总:三十个pygame游戏代码

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

8个Python小游戏,可以上班摸鱼玩一天

1、吃金币 源码分享: import os import cfg import sys import pygame import random from modules import *游戏初始化 def initGame():# 初始化pygame, 设置展示窗口pygame.init()screen pygame.display.set_mode(cfg.SCREENSIZE)pygame.display.set_caption(ca…

30个Python小游戏,小白练手,我都能玩一天【内附源码】

今天给大家带来30个py小游戏,一定要收藏! 全部源码都整理好了,在文章最底部~ 有手就行 1、吃金币 【有手就行系列不介绍玩法了附源码】 源码分享: import os import cfg import sys import pygame import random from module…

迷你项目python

迷你项目python 骰子模拟器石头剪刀布随机密码生成器 骰子模拟器 目的:创建一个程序来模拟掷骰子。 提示:当用户询问时,使用random模块生成一个1到6之间的数字。 import random while int(input(press 1 to roll the dice or 0 to exit:\n…

23款小游戏-Python一行代码就能玩

给IT入门加星标,提升编程技能 free-python-games,一行代码就能进入使用Python开发的小游戏快乐玩耍! 安装 pip?install?freegamesPython包括随您的安装一起分发的大量标准库。标准库有一个称为Turtle的模块,这是一种向普通人…

Python游戏开发实战:飞机大战(含代码)

【课程简介】 玩游戏老是输,不如试试自己做个游戏当欧皇。本次课程教大家如何通过pygame模块实现游戏, 以飞机大战为例,讲解游戏的基本机制, 让大家掌握游戏实现原理 ,触类旁通更多Python游戏开发。 【课程推荐】Python游戏开发实战&#x…

【Python游戏】Python各大游戏合集:超级玛丽、天天酷跑、我的世界、魔塔、雷霆战机 | 附带源码

相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 公众号:Python日志 可以关注小编公众号,会不定时的发布一下Python小技巧,还有很多资源可以免费领取哟!! 源码领取:加P…

13个Python小游戏(含源码),开始敲起来,玩吧!

来源丨网络 经常听到有朋友说,学习编程是一件非常枯燥无味的事情。其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游戏来学编程? 今天我想跟大家分享几个P…

30个Python小游戏,上班摸鱼我能玩一天【内附源码】

大家好,我是辣条。 今天给大家带来30个py小游戏,一定要收藏! 目录 有手就行 1、吃金币 2、打乒乓 3、滑雪 4、并夕夕版飞机大战 5、打地鼠 简简单单 6、小恐龙 7、消消乐 8、俄罗斯方块 9、贪吃蛇 普普通通 10、24点小游戏 1…