2018.5.24_Thursday

import pygame
from sys import exit
from math import pi

pygame.init() #初始化pygame
screen = pygame.display.set_mode((400,250))
#dispaly模块
#set.mode()方法,设定窗口显示大小,参数为元组
#用变量保存

#设置背景填充颜色
"""
参数:R,G,B,A (0~255 || 0~100)
白色:(255,255,255)  黑色:(0,0,0)
"""
screen.fill((255,255,255))

image = pygame.image.load('image.png').convert_alpha()
# image模块,加载图片->load(source)方法

print(image.get_size()  #get_size()方法,得到图片大小
# image = pygame.transform.scale()                  ???

image = pygame.transform.rotozoom(image,90,0.1)
# trasnform模块-->变形
# rotozoom方法(source,旋转角度(数值),缩放比例)

screen.blit(image,(0,0))
# blit(object,pos)对象方法,数位传送



# font = pygame.font.SysFont('SimHei',30,False,True)
# font模块
# 系统字体,不支持中文,SysFont()

font = pygame.font.Font('maobi.ttf',20)
# 自定义字体方法,Font(source,size)
screen.blit(font.render('你说什么?'))
# 参数??                                          ???
pygame.display.flip()
# display模块,flip()方法,全部刷新

fs = pygame.font.get_fonts()
for i in fs:
    print(i)      #                                 ???

while True:
    # 死循环,让窗口一直存在,并保持这一状态
    for event in pygame.event.get():
        # 遍历捕捉事件
        # event模块,get()捕获事件
        if event.type == pygame.QUIT:
            exit()

        if event.type == pygame.KEYDOWN:
            pass
        # 但当所有事件都捕获完成,没有事件可在捕捉的时候,它会又返回到最上层,继续捕获,没错,它会存储,并产生节点
import pygame
from sys import exit

pygame.init()

screen = pygame.display.set_mode((400,200),pygame.RESIZABLE)
# 可拉伸大小

# pygame.display.set_caption()
# 设定题目

w = screen.get_width()
# 获得宽度

h = screen.get_height()
# 获取高度

screen.fill((255,0,0))
# 对象方法,屏幕填充rgb

pygame.display.flip()
# display整个窗口渲染

running = True

while running:

    # event = pygame.event.wait()
    # if event.type == pygame.MOUSEBUTTONDOWN:
    #     print('MouseButtonDown!')
    #     # 与for循环写出来的有何区别? 不能处理并发事件    ?????
    # 但可以用逻辑运算符写出来啊?


    for event in pygame.event.get():    #clear()?

        if event.type == pygame.QUIT:

            exit()

        if event.type == pygame.MOUSEBUTTONDOWN:
            print("MOUSEBUTTONDOWN")
            pos = event.pos
            # 获取鼠标位置
            print(pos)

        if event.type == pygame.MOUSEMOTION:
            print('!!!')
            pos = event.pos
            print(pos)

#Unicode = ASCII码 + 万国码,包含关系

        if event.type == pygame.KEYUP:
#       按键弹起
            print('UP!')
            key = event.key   #event.key使用ASCII码直接表示的
            print(chr(key)) # 编码转换  ASCII码转成unicode

        if event.type == pygame.KEYDOWN:
            pass

#       pygame.VIDEORESIZE

import pygame
from sys import exit
from math import pi

pygame.init()


screen = pygame.display.set_mode((500,300))
screen.fill((255,255,255))


pygame.draw.aaline(screen,(10,200,120),(20,20),(200,200))
# draw模块 ,aaline()画线方法
# aalines() 有closed参数,可以首尾相连
#           还有pointlist参数,设置连接点,传列表
#           所以,列表里最少传1个参数,没有endpos,怎么画两条线呢?
#           points argument must contain more than 1 points,列表里元组不能少于1个
#           且最后一个元组就是endpos

pygame.draw.aalines(screen,(100,50,20),False,[(10,20),(30,40),(20,120)])

pygame.draw.arc(screen,(100,200,100),((30,40),(120,60)),pi/3,pi)
# 画弧线,draw模块,arc()方法
# 第三个:Rect参数((pos),(width,height))
# 第四、第五个:start_angle,stop_angle,绘制从哪开始,到哪结束

pygame.draw.circle(screen,(0,255,0),(50,50),40,10)
# draw.画圆

pygame.display.flip()

while True:   #一直处于捕获事件的状态
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()

 
import pygame
from sys import exit

pygame.init()

screen = pygame.display.set_mode((400,300)) #设定屏幕大小
screen.fill((255,255,255)) #填充背景颜色

image = pygame.image.load('luffy3.png') #加载图片并保存
image = pygame.transform.scale(image,(80,80)) #控制图片大小
# transform模块可改变图形大小,或翻转
screen.blit(image,(0,0))  #设置好图片传送到屏幕上

pygame.display.flip() #全部渲染
x = 0  #图片其实所在pos原点
y = 0
xspeed = 10   #设定移动方向,x,y增加的两不一样可以控制方向
yspeed = 10

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()    #处理退出事件

    pygame.time.delay(50)  #用time模块的delay来延缓速度,作用于整个pygame


    x += xspeed   #pos的两个参数循环增加数值就可以自己移动
    y += yspeed

    screen.fill((255,255,255))  #刷新屏幕,但是为什么会一直保留之前的移动痕迹?
    #                            且为什么fill()方法要放在blit()前面?
    """
   每移动一次,清空一次
    """

    screen.blit(image,(x,y)) #上传图片和移动后位置
    """
    清空后上传具有新的位置的image
    """

    pygame.display.flip()   #不能溢出边界

    if x<0 or x+80>400:         #图片的最左上角就是(0,0),是与边界重合的
        #                        但下端就要加上自身的宽或高
        xspeed = -xspeed        #调转方向,只能是变成-a      ?????

    if y<0 or y+80>300:
        yspeed = -yspeed



# while True:
#     for event in pygame.event.get():
#         if event.type == pygame.QUIT:
#             exit() 
#             
#         if event.type == pygame.MOUSEMOTION:
#             x,y = event.pos
#             screen.fill()



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值