day10 pygame

一、异常处理
1.模块
导入模块(自定义模块,第三方模块)
import 模块 ---->模块.内容
from 模块 import 内容 --->内容

被导入的模块中,除了在声明在if name == 'main':判断中以外的其他的全局变量

2.文件操作
打开文件--->操作文件 --->关闭文件
open()操作文件 close()
--->with open() as 文件:
操作文件

open(打开文件路径,打开方式,编码方式--->二进制文件不能去设置编码方式)
文本文件 ->'r'/'w','a'
二进制文件 ->'rb'/'wb
以读的形式打开文件,如果文件不存在会报错。以写的方式打开文件,如果文件不存在,会在指定的路径下创建该文件

read()---->读文件中所有的内容
write()---->将内容添加到文件中

3.json文件
json支持的数据类型和其对应的字面量
字符串(string) --->""
数字(number)---->1,1.2
布尔 ---->true/false
数组(array)--->[12,"abc",hhh]
字典(object)--->{key:value}
null --->null(空)

import json
json.load(json文件对象)--->读,读出来的数据类型和json对应的数据类型是一样的,可以直接读出字典、列表等数据
json.dump(要写入文件中的数据,json文件对象)-->写,python中的基本数据类型,都可以直接写到json文件中

4.异常捕获
try:
需要捕获异常的代码(就是这段代码如果出现异常,不让程序崩溃)
except:
只要try后面的代码出现异常都会执行这行代码,并且程序不会崩溃
try:
需要捕获异常的代码块
except 异常类型:
出现指定异常后才会执行
try--except执行过程:

先执行try后面的代码块,只要出现异常就使用except去捕获,如果能捕获到,就直接进入except
执行里面的代码块,执行完成后,再执行后面的其他语句。如果捕获不到,就直接报错。
如果try后面的代码块中,没有异常。那么执行完代码块中的内容直接执行其他的语句
想要捕获多个异常:except(错误类型1,错误类型2....):

try:
代码块1
except:
代码块2
finally:
代码块3
try:
代码块1
except 错误类型1:
代码块2
except 错误类型2:
代码块3
代码块3是在代码块1中没有异常和代码块1中出现异常被捕获到都会执行

raise:抛出异常

总结:
1.异常捕获不是什么时候都要用的,只有在程序员清楚会出现异常,并且想要自己来处理异常,而不是让程序崩溃的情况才异常捕获
2.使用异常捕获的时候,不能让except直接捕获到所有的异常,而是捕获特定异常

try:
    print([1,2,3][5])
    print({'a': 'b', 'b': 1}['c'])
except (IndexError,KeyError):
    print('出现异常')

print('=======')

出现异常

二、pygame基础操作
import pygame

pygame.display.set_mode((600,400))

if name == 'main':

1.初始化pygame

pygame.init()

2.创建游戏窗口

set_mode((宽度,高度))

screen = pygame.display.set_mode((600,400))

#3.游戏循环
while True:
    #检测事件
    for event in pygame.event.get():
        #检测窗口上的关闭按钮是否被点击
        if event.type == pygame.QUIT:
            #退出游戏
            print('关闭游戏被点击')
            exit()

三、显示文字
"""author__zhangdong"""
import pygame
if name == 'main':
pygame.init()
screen = pygame.display.set_mode((600,400))
#设置窗口的北京颜色
screen.fill((255,255,255))
#1.创建字体对象
"""创建系统字体
SysFont(name, size, bold=False, italic=False)
name ->字体名
size ->字体大小
bold ->加粗
italic->倾斜
"""
# font = pygame.font.SysFont('宋体',50)
"""
创建自定义字体
Font(字体文件路径,字体大小)
"""
font = pygame.font.Font('./test1/font/aa.ttf',40)

#2.根据字体去创建显示对象(文字)(找内容)
"""
render()
text-->要显示的文字内容(str)
antialias-->是否平滑
color-->计算机三原色(红、绿、蓝),RGB颜色,值的范围都是0--255
        (255,0,0)->红色
        (0,255,0)->绿色
        (0,0,255)->蓝色
        (0,0,0)->黑色
        (255,255,255)->白色
          
        

"""
surface = font.render('君不见黄河之水天上来',True,(0,255,0))
#3.将内容添加到窗口上(画到纸上)
"""
blit(需要显示的对象,显示位置)
需要显示的对象-->Surface类型的数据
显示位置-->坐标(x,y)
"""
screen.blit(surface,(100,200))

#4.将窗口上的内容展示出来(将画有文字的纸贴出来)
pygame.display.flip()

#游戏循环
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()

四、显示图片
"""author__zhangdong"""
import pygame
if name == 'main':
pygame.init()
screen = pygame.display.set_mode((600,400))
screen.fill((255,255,255))

#1.获取图片对象
image = pygame.image.load('./images/photo.jpg')
"""
a.获取图片大小
get_size()
"""
image_size = image.get_size()
print(image_size)
"""
b.形变
transform:形变包含缩放,旋转和平移
scale(缩放对象,新的大小)--->返回一个新的对象
"""
# image = pygame.transform.scale(image,(50,50))
"""
旋转
ratate(旋转对象,旋转角度)-->角度是0-360的度数
"""
image = pygame.transform.rotate(image,90)

"""
rotozoom(Surface, angle, scale)
rotozoom(旋转对象, 旋转角度, 缩放比例)
"""
image = pygame.transform.rotozoom(image,-90,0.5)
#2.将图片对象渲染到窗口上
screen.blit(image,(0,0))
#3,展示在屏幕上
pygame.display.flip()




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

五、显示图形
"""author__zhangdong"""
import pygame
if name == 'main':
pygame.init()
screen = pygame.display.set_mode((600,400))
screen.fill((255,255,255))

"""
1.画直线
line(Surface, color, start_pos, end_pos, width=1)
line(画在哪个地方,线的颜色,线的起点,线的终点, 线的宽度)
"""
pygame.draw.line(screen,(255,0,0),(0,0),(200,200),5)
pygame.draw.line(screen, (255, 255, 0), (200, 200), (400, 400), 5)
"""
lines(Surface, color, closed, pointlist, width=1)  
lines(画线的位置, 颜色,线的关闭 , 点的列表, 线的宽度)
"""
pygame.draw.lines(screen,(0,0,255),True,[(10,10),(200,50),(100,100),(100,150)])


"""
画矩形
rect(位置,颜色,(x,y,width,height))
"""
# pygame.draw.rect(screen,(255,255,0),(200,200,200,200))
"""
2.画曲线
arc(Surface, color, Rect, start_angle, stop_angle, width=1)
arc(Surface, color, , 起始角度, 结束角度, width=1)
Rect-->(x,y,width,height)矩形
"""
from math import pi
pygame.draw.arc(screen,(100,100,100),(200,200,100,100),0,pi,2)

"""
3.画圆
circle(位置,颜色,圆心位置,半径,width = 0)
"""
pygame.draw.circle(screen,(100,200,100),(300,200),100,0)
"""
画椭圆
ellipse(Surface,color,Rect,width=0)
"""
pygame.draw.ellipse(screen,(100,150,200),[100,50,50,50],0)
#将内容渲染在屏幕上
pygame.display.flip()



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

六、动画原理
"""author__zhangdong"""
import pygame
if name == 'main':
pygame.init()
screen = pygame.display.set_mode((600,400))
screen.fill((255,255,255))

x = 0
y = 0
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            exit()
    x += 1
    y += 1
    screen.fill((255,255,255))
    pygame.draw.circle(screen,(255,0,0),(x,y),80)
    pygame.display.flip()

作者:旧时初_2e8d
链接:https://www.jianshu.com/p/54f65f8f961b
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容