Python游戏开发
前言
代码量
画图库
导包画图
起别名
坐标
抬笔与落笔
画笔大小
设置背景颜色
里面放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 = 0
while True:
i += 1
# sleep 睡觉的意思 , 让我的程序睡一秒
time.sleep(1)
# 更新得分
# 重新用颜色填充
# 设置背景颜色
bgColor = (233, 231, 233)
screen.fill(bgColor)
# 获取字体
font_name = "simsun"
font_size = 60
title_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 = 0
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)
# 计数器加一
i += 1
# sleep 睡觉的意思 , 让我的程序睡一秒
time.sleep(1)
# 更新得分
# 重新用颜色填充
# 设置背景颜色
bgColor = (233, 231, 233)
screen.fill(bgColor)
# 获取字体
font_name = "simsun"
font_size = 60
title_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
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被按下")
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 = 60
title_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 = 60
title_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文件
导入方式二
导入多个文件
如果有过多的东西导入就用 *
使用 * 导入所有要以防重名的情况
导入
事件
编写
暂停
绘制屏幕
文章来源:https://www.toymoban.com/news/detail-442310.html
文章来源地址https://www.toymoban.com/news/detail-442310.html
到了这里,关于Python游戏开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!