Python之pygame简单介绍

pygame是Python的第三方库,里面提供了使用Python开发游戏的基础包,但是在进行游戏开发的时候不推荐使用pygame,本文章以示例的形式对pygame的一些简单的使用方式进行讲解。

一、游戏最小系统

"""
1、游戏初始化
pygame.init()

2、创建游戏窗口
set_mode(窗口大小)   - 窗口大小是一个元组,有两个元素,分别是:width、height
set_mode((宽度, 高度))
宽度和高度的单位是像素

3、创建游戏循环(死循环)

4、检测事件

fill(颜色)  - fill((r, g, b))
计算机颜色:计算机三原色 - 红、绿、蓝(rgb)
            颜色值就是由三个数字组成,分别代表红、绿、蓝,数字范围是:0 - 255
Python中的颜色是一个元组,元组中有三个颜色,分别是 r、g、 b
(255, 255, 255) - 白色
(0, 0, 0)       - 黑色
(255, 0, 0)     - 红色
(0, 255, 0)     - 绿色
(0, 0, 255)     - 蓝色


"""
import pygame

# 1、游戏初始化
pygame.init()

# 2、创建游戏窗口
window = pygame.display.set_mode((400, 600))
# 将窗口填充成指定的颜色
window.fill((255, 255, 255))

# 将窗口展示到屏幕上
pygame.display.flip()

# 3、创建游戏循环
while True:
    # 4、检测事件
    for event in pygame.event.get():
        # ===区分不同的事件 做出不同的反应===
        # 判断关闭按钮点击事件是否发生
        if event.type == pygame.QUIT:
            exit()

二、在窗口上显示图片

"""
1、加载图片
pygame.image.load(图片地址)  - 加载指定路径下的图片,返回一个图片对象

2、渲染图片
window.blit(渲染对象, 渲染位置)
渲染对象  - 图片对象(显示对象)
位置     - 元组(x, y)

3、获取图片的大小
图片对象.get_size()   - 获取图片的大小,返回值是一个元组:(width, height)

4、图片缩放和旋转
a.缩放
pygame.transform.scale(缩放对象, 缩放大小)  - 将指定的图片缩放到指定的大小,返回新的图片对象
b.旋转缩放
pygame.transform.rotozoom(旋转缩放对象, 旋转角度, 缩放比例)


"""
import pygame

pygame.init()

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

# ========显示图片===========
# 1、加载图片
image_obj = pygame.image.load('files/2.png')

# 3、获取图片的大小
image_w, image_h = image_obj.get_size()

# 2、渲染图片
window.blit(image_obj, (0, 0))

# 4、图片缩放和旋转
new_image = pygame.transform.scale(image_obj, (150, 150))
window.blit(new_image, (200, 0))

new_image2 = pygame.transform.rotozoom(image_obj, 0, 2)
window.blit(new_image2, (0, 200))

new_image3 = pygame.transform.rotozoom(image_obj, 45, 1)
window.blit(new_image3, (200, 200))

pygame.display.flip()

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

三、在窗口上显示文字

"""
1、创建字体对象(选笔)
a.系统字体(只能支持英文的)
pygame.font.SysFont(字体名, 字体大小, 是否加粗=False, 是否倾斜=False)  - 返回字体对象
b.自定义字体
pygame.font.Font(字体文件路径, 字体大小)

2、根据字体创建文字对象
font.render(文字内容, 是否抗锯齿, 文字颜色)
"""
import pygame

pygame.init()
window = pygame.display.set_mode((400, 600))
window.fill((255, 255, 255))

# =======显示文字=======
# 1、创建字体对象(选笔)
# a.系统字体(只能支持英文的)
font = pygame.font.SysFont('Times', 20, bold=True, italic=True)
# b.自定义字体
font1 = pygame.font.Font('files/aa.ttf', 20)
# 2、根据字体创建文字对象
text = font.render('hello pygame 你好!', True, (255, 0, 0))
text1 = font1.render('hello pygame 你好!', True, (255, 0, 0))
# 3、将文字渲染到窗口上
window.blit(text, (50, 100))
window.blit(text1, (50, 300))


pygame.display.flip()
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()

四、显示图形

"""
1、画直线
pygame.draw.line(画在哪, 线的颜色, 起点, 终点, 线宽)

2、连线
pygame.draw.lines(画在哪, 线的颜色, 是否闭合, 点列表, 线宽)
依次连接点列表中的所有的点(是否闭合决定是否连接起点和终点)

3、画圆
pygame.draw.circle(画在哪儿, 颜色, 圆心坐标, 半径, 线宽=0)
注意:线宽为0的时候画实心圆

4、画弧线
pygame.draw.arc(画在哪儿, 颜色, 矩形, 起始弧度, 终止弧度, 线宽=1)
矩形就是一个元组   - (x, y, width, height):x和y是矩形左上角的坐标 width height是矩形的宽和高
"""
import pygame
from color import Color
import math


# 游戏最小系统
pygame.init()
window = pygame.display.set_mode((400, 600))
window.fill(Color.white)
# =======显示图形=======
# 1、画直线
pygame.draw.line(window, Color.red, (100, 200), (300, 400), 50)
pygame.draw.line(window, Color.red, (300, 200), (100, 400), 50)
# 2、连线
point = [(10, 10), (100, 70), (100, 170), (40, 180), (40, 320)]
pygame.draw.lines(window, Color.green, True, point, 2)
# 3、画圆
pygame.draw.circle(window, Color.yellow, (200, 300), 170, 10)
# 4、画弧线
pygame.draw.arc(window, Color.blue, (150, 300, 200, 100), math.pi/4*5, math.pi/4*7, 20)


pygame.display.flip()
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()

五、事件和动画

from color import Color
import pygame

pygame.init()
window = pygame.display.set_mode((400, 600))
window.fill((255, 255, 255))

# 在这儿写的代码时静态的(界面上的内容)
x = 100
y = 0
width = 100
height = 80
pygame.draw.rect(window, Color.green, (x, y, width, height))

pygame.display.flip()

while True:
    y += 0.05
    x += 0.02
    # width -= 0.05
    # height -= 0.1
    window.fill(Color.white)  # 覆盖原来的状态
    pygame.draw.rect(window, Color.rand_color(), (x, y, width, height))
    pygame.display.update()  # 重新显示
    # 有时间产生的时候才会进入for循环
    for event in pygame.event.get():
        # 1、type属性
        """
        不同的type值对应不同类型的事件
        QUIT - 关闭按钮被点击事件
        
        a.鼠标相关时间
        MOUSEMOTION - 鼠标移动
        MOUSEBUTTONDOWN - 鼠标按下
        MOUSEBUTTONUP  - 鼠标弹起
        
        event.pos  - 获取鼠标事件产生的位置
        
        b.键盘事件  - 按的是哪个键
        KRYDOWN  - 按键按下
        KEYUP    - 按键弹起
        
        event.key   - 被按的键对应的字符的编码值
        """
        if event.type == pygame.QUIT:
            exit()
        # elif event.type == pygame.MOUSEMOTION:
            # print('鼠标移动')
            # pygame.draw.circle(window, Color.rand_color(), event.pos, 30)
            # pygame.display.flip()
        elif event.type == pygame.MOUSEBUTTONDOWN:
            print('鼠标按下!', event.pos)
            pygame.draw.circle(window, Color.rand_color(), event.pos, 30)
            pygame.display.flip()
        elif event.type == pygame.MOUSEBUTTONUP:
            print('鼠标弹起!', event.pos)
        elif event.type == pygame.KEYDOWN:
            print('按键按下!', event.key)
        elif event.type == pygame.KEYUP:
            print('按键弹起!', chr(event.key))
  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Pygame是一个基于Python的游戏开发库,它提供了一系列用于游戏开发的功能和工具。通过Pygame,你可以使用Python语言来创建各种类型的游戏,包括坦克大战。 在Pygame中开发坦克大战游戏,你可以按照以下步骤进行: 1. 安装Pygame库:首先,你需要在你的Python环境中安装Pygame库。可以使用pip命令来安装,如下所示: ``` pip install pygame ``` 2. 导入Pygame库:在你的Python代码中,使用`import pygame`语句来导入Pygame库。 3. 初始化Pygame:在你的代码中,使用`pygame.init()`函数来初始化Pygame。 4. 创建游戏窗口:使用`pygame.display.set_mode()`函数创建一个游戏窗口,设置窗口的大小和其他属性。 5. 加载游戏资源:加载游戏所需的图像、音频等资源文件,并将其存储在适当的变量中。 6. 处理用户输入:使用Pygame提供的事件处理机制来处理用户的键盘或鼠标输入。 7. 更新游戏状态:根据用户输入和游戏规则,更新游戏中的各个元素的状态。 8. 绘制游戏画面:使用Pygame提供的绘图函数来绘制游戏中的各个元素,包括坦克、子弹、地图等。 9. 游戏循环:使用一个无限循环来不断更新游戏状态和绘制游戏画面,以实现游戏的动态效果。 10. 游戏结束:根据游戏规则,判断游戏是否结束,并在适当的时候退出游戏循环。 以上是一个简单的坦克大战游戏开发的基本步骤。当然,具体的实现还需要根据你的需求和设计来进行。你可以参考Pygame官方文档和示例代码,以及其他相关教程和资源来更详细地学习和了解Pygame的使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值