Python游戏开发

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文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

导入方式二

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

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

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

导入
在这里插入图片描述

在这里插入图片描述

事件

编写

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

暂停

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

绘制屏幕

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

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

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSOA6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值