美文网首页
python中pygame基础

python中pygame基础

作者: 发家致富靠养猪 | 来源:发表于2018-11-24 10:11 被阅读0次

pygame

游戏的最小系统

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

#创建游戏窗口
'''
set_mode(窗口大小)- 窗口大小是一个元祖。有两个元素:width,height
set_mode((宽度,高度))
宽度和高度的单位是像素
'''
window = pygame.display.set_mode((600,800))
#将窗口填充成指定的颜色
'''
fill(颜色)- fill((r,g,b))
 计算机颜色- 计算机三原色 -红,绿,蓝(RGB)
        颜色值就是由三个数字组成,分别代表红、绿、蓝 数字范围(0-255)
        
python中的颜色是一个元祖,元祖中有三个颜色,分别是 r,g,b
(255.255.255)-白色
(255.0.0)-红色
(0.0.0)-黑色
(0.255.0)-绿色
'''
window.fill((random.randint(0,255)))
#将窗口展示到显示设备上
pygame.display.flip()
#3.创建游戏循环
while True:
    #4.检测事件
    for event in pygame.event.get():
        #区分不同事件,做出不同反应
        pass
        #判断关闭按钮点击事件是否发生
        if event.type == pygame.QUIT:
            exit()#窗口关闭

在窗口显示图片

import pygame
import random

pygame.init()
window = pygame.display.set_mode((1500,800))
window.fill((random.randint(0,255)))

#--========显示图片==========
#1.加载图片
'''
pygame.image.load(图片地址)- 加载指定路径下的图片,返回一个图片对象
'''

image_obj = pygame.image.load('files/27r58PICkj7_1024.jpg')
#2.渲染图片
'''
blit(渲染对象,位置)
渲染对象:图片对象(显示对象)
位置:元祖,(x坐标,y坐标)
'''
# window.blit(new_image2,(100,200))


#3.获取图片大小
'''
图片对象.get_size()- 获取图片大小,返回值是元祖(width,height)
'''
im_w,im_h = image_obj.get_size()

#4.图片缩放和旋转
'''
a.缩放
pygame.transform.scale(图片对象,大小)-将指定图片缩放之指定大小
'''
new_image = pygame.transform.scale(image_obj,(50,20))
# window.blit(new_image,(500,200))

'''
b.旋转缩放
pygame.transform.rotozoom(图片对象,旋转角度,缩放比例)
'''
new_image2 = pygame.transform.rotozoom(image_obj,180,0.5)



window.blit(new_image2,(100,200))

#将窗口展示到显示设备上
pygame.display.flip()
#3.创建游戏循环
while True:
    #4.检测事件
    for event in pygame.event.get():
        #区分不同事件,做出不同反应
        pass
        #判断关闭按钮点击事件是否发生
        if event.type == pygame.QUIT:
            exit()#窗口关闭

显示文字

import pygame
import random

pygame.init()
window = pygame.display.set_mode((800,500))
window.fill((255,255,255))

#--========显示文字==========
#1.创建字体对象(选笔)
'''
a.系统字体
pygame.font.SysFont(字体名,字体大小,是否加粗=False,是否倾斜=False)-返回字体对象
b.自定义字体
'''
font = pygame.font.SysFont('Times',20,True,True)

font1 = pygame.font.Font('files/aa.ttf',20)

#2.根据字体常见文字对象
'''
render(文字内容,是否平滑,文字颜色)
'''
text = font.render('hello pygame',True,(255,0,0))
text1 = font1.render('李毅猪皮',True,(255,0,0))
#3.将文字渲染到窗口上
window.blit(text,(100,100))
window.blit(text1,(300,100))


#将窗口展示到显示设备上
pygame.display.flip()
#3.创建游戏循环
while True:
    #4.检测事件
    for event in pygame.event.get():
        #区分不同事件,做出不同反应
        pass
        #判断关闭按钮点击事件是否发生
        if event.type == pygame.QUIT:
            exit()#窗口关闭

显示图形

import pygame
from color import Color
import math

# 游戏最小系统
pygame.init()
window = pygame.display.set_mode((400, 600))
window.fill((255, 255, 255))

# ======显示图形=========
# 1.画直线
"""
line(画在哪儿, 线的颜色, 起点, 终点, 线宽=1)
"""
pygame.draw.line(window, Color.green, (0, 0), (100, 100), 10)

"""
lines(画在哪儿, 线的颜色, 是否闭合, 点列表, 线宽=1)
依次连接点列表中所有的点(是否闭合决定是否连接起点和终点)
"""
points = [(10, 10), (100, 70), (100, 170), (40, 230), (40, 320)]
pygame.draw.lines(window, Color.red, True, points, 5)

# 2.画圆
"""
circle(画在哪儿, 颜色, 圆心坐标, 半径, 线宽=0)
注意:线宽为0的时候画实心圆
"""
pygame.draw.circle(window, Color.yellow, (100, 100), 80, 3)

# 3.画弧线
"""
arc(画在哪儿,颜色,矩形(Rect),起始弧度,终止弧度,线宽=1)
矩形 - (x, y, width, height); x,y是矩形坐上角的坐标,width,height是矩形的宽高
"""
pygame.draw.arc(window, Color.blue, (150, 300, 50, 100), 0, math.pi, 10)


pygame.display.flip()

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

事件和动画

import pygame
from color import Color

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

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

pygame.display.flip()

while True:

    y += 3
    # width -= 2
    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 - 鼠标按下
        MOUSEBUTTOUP - 鼠标弹起
        
        event.pos - 获取鼠标事件产生的位置
        
        b.键盘事件 - 按的是哪个键
        KEYDOWN - 按键按下
        KEYUP - 按键弹起
        
        event.key - 被按的键对应的字符的编码值
        
        """
        if event.type == pygame.QUIT:
            exit()

        elif event.type == pygame.MOUSEMOTION:
            # print('鼠标移动', event.pos)
            # pygame.draw.circle(window, Color.rand_color(), event.pos, 30)
            # pygame.display.flip()
            pass
        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('按键按下')
            print(event.key, chr(event.key))

        elif event.type == pygame.KEYUP:
            print('按键弹起')
            print(event.key, chr(event.key))

相关文章

网友评论

      本文标题:python中pygame基础

      本文链接:https://www.haomeiwen.com/subject/usyeqqtx.html