2018-09-04-day12-pygame

2018-09-04  本文已影响0人  rzlong

pygame基础

 while True:
        for event in pygame.event.get():#get()获取当前的所有事件
            if event.type == pygame.QUIT: #事件.type得到事件的类型
                exit() #让当前的线程结束

获取图片

new_img3 = pygame.transform.rotate(image,90)
    window.blit(new_img3,(0,0))
    pygame.display.flip()

显示文字

需要显示的文字str,是否平滑bool,颜色,背景颜色

text = font1.render('诗和远方',True,(0,0,255))

显示图形

#画在哪儿、颜色、起点、终点、线宽
pygame.draw.line(window, (255,255,0), (50,50), (200,200),10)
 画在哪儿、颜色、是否连接起点和终点、点对应的列表
pygame.draw.lines(window,(255,0,0),True,[(10,20),(300,20),(300,200),(10,200)],10)
 画的位置、颜色、圆心、半径
pygame.draw.circle(window,(222,10,90),(300,300),200,0)
画的位置、颜色、(元组)--(x,y,宽,高)
pygame.draw.rect(window,(0,255,89),(400,0,200,50))
画的位置、颜色、(多个点的元组)
 pygame.draw.polygon(window,(23,90,100),[(10,400),(100,20),(800,200),(400,10),(90,10)])
画的位置、颜色、(和长方形类型的元组)
pygame.draw.ellipse(window,(0,255,0),(100,200,400,200))
画的位置、颜色、(类型椭圆的元组)、开始角度、结束角度--对应弧度值(0,2pi)
 pygame.draw.arc(window,(88,88,88),(90,90,400,400),0,1.25*math.pi)

事件

    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT: #通过type值判断事件类型
                exit()
            if event.type == pygame.MOUSEBUTTONDOWN:#鼠标按下
                print('按下鼠标:',event.pos)
            if event.type == pygame.MOUSEBUTTONUP:#鼠标弹起
                pass
            if event.type == pygame.MOUSEMOTION:#鼠标移动
                pass
            if event.type == pygame.KEYUP:#键盘弹起
                pass
            if event.type == pygame.KEYDOWN:#键盘按下
                print('按a:',event.key)

result:
按下鼠标: (633, 339)
按a: 97

动画效果

import pygame

if __name__ == '__main__':
    pygame.init()
    window = pygame.display.set_mode((1000,562))
    window.fill((255,255,255))
    pygame.display.flip()
    x = 20
    y = 20
    x_direct = 1
    y_direct = 2
    while True:
        # 不断的画圆
        pygame.time.delay(10) #延迟10毫秒
        window.fill((255,255,255)) #填白,将之前的界面中的球填充
        pygame.draw.circle(window,(244,12,189),(x,y),20) #画球
        if x < 20 or x > 980: #触碰边界反向
            x_direct *= -1
        if y < 20 or y > 542:#触屏边界方向
            y_direct *= -1
        x += x_direct
        y += y_direct
        pygame.display.update() #更新界面
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                exit()

按住图片移动

import pygame

if __name__ == '__main__':
    pygame.init()
    window = pygame.display.set_mode((1000,562))
    window.fill((255,255,255))
    pygame.display.flip()

    image = pygame.image.load('./img/3.jpg')
    new_img = pygame.transform.rotozoom(image, 0, 0.2) #图片缩放0.2倍
    window.blit(new_img, (100, 100))
    pygame.display.flip()
    flag = False
    image_w,image_h = new_img.get_size() #获得图片的尺寸
    image_x = 100
    image_y = 100
    while True:
        # 不断的画圆
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                exit()
            if event.type == pygame.MOUSEBUTTONDOWN: #按下鼠标事件
                m_x, m_y = event.pos #鼠标的位置
                if image_x <= m_x <= image_x +image_w and image_y <= m_y <= image_h + image_y:#鼠标的位置在图片中间
                    flag = True
            elif event.type == pygame.MOUSEBUTTONUP:#松开鼠标事件
                flag = False
            if event.type == pygame.MOUSEMOTION and flag:
                window.fill((255,255,255))
                center_x,center_y = event.pos
                image_x, image_y = (center_x- image_w/2, center_y - image_h/2) #图片的位置
                window.blit(new_img,(image_x,image_y))
                pygame.display.update()
上一篇下一篇

猜你喜欢

热点阅读