北京理工大学-Python游戏开发入门学习笔记11

图形绘制机制

pygame.draw 图形绘制后,返回一个矩形Rect类表示该形状
pygame.Rect 表达一个矩形区域的类,用于存储坐标和长度信息,pygame利用Rect类来操作图 形/图像等元素。左上角坐标(left,top)和宽度width和高度height
Rect类提供了如下属性,返回一个数值或一个代表坐标的元组
x,y,w,h,size,width,height,top,left,bottom,right
topleft,bottomleft,topright,bottomright
midtop,midleft,midbottom,midright
center,centerx,centery
详情参考:hhtp://www.pygame.org/docs/ref/rect.html

Rect类提供了如下方法,用来操作Rect类
.copy(),.move(),.inflate(),.clamp(),.clip(),.union(),unionall(),.fit()
.normalize(),.contains(),.collidepoint(),.colliderect(),.collidelist()
.collidelistall(),.collidedict(),.colldictall()
详情参考:hhtp://www.pygame.org/docs/ref/rect.html

pygame.draw
.rect()矩形 .line()直线 .polygon()多边形 .lines()连续多线
.circle()圆形 .aaline()无锯齿线 .ellipse()椭圆形
.aalines()连续无锯齿线 .arc()椭圆弧形

pygame.draw.rect(Surface,color,Rect,width=0)
Surface 矩形的绘制屏幕 color 矩形的绘制颜色 Rect 矩形的绘制区域
width 绘制边缘的宽度,默认为0,即填充图形

pygame.draw.polygon(Surface,color,pointlist,width=0)
Surface 多边形的绘制屏幕 color 多边形的绘制颜色
pointlist 多边形顶点坐标列表 width 绘制边缘的宽度,默认为0,即填充图形

pygame.draw.circle(Surface,color,pos,radius,width=0)
Surface 圆形的绘制屏幕 color 圆形的绘制颜色 pos 圆形的圆心坐标
radius 圆形的半径 width 绘制边缘的宽度,默认为0,即填充图形

pygame.draw.ellipse(Surface,color,Rect,width=0)
Surface 椭圆形的绘制屏幕 color 椭圆形的绘制颜色 Rect 椭圆形的绘制区域
width 绘制边缘的宽度,默认为0,即填充图形

pygame.draw.arc(Surface,color,Rect,star_angle,stop_angle,width=0)
Surface 椭圆弧形的绘制屏幕 color 椭圆弧形的绘制颜色
Rect 椭圆弧形的绘制区域
star_angle,stop_angle:椭圆弧形绘制起始和结束弧度值,横向右侧为0度
width 绘制边缘的宽度,默认为0,即填充图形

pygame.draw.line(Surface,color,star_pos,end_pos,width=1)
Surface 直线的绘制屏幕 color 直线的绘制颜色
star_pos,end_pos 直线的起始和结束坐标
width 直线的宽度,默认为1

pygame.draw.lines(Surface,color,closed,pointlist,width=1)
Surface 连续多线的绘制屏幕 color 连续多线的绘制颜色
closed 如果为True,起止节点间自动增加封闭直线
pointlist 连续多线的顶点坐标列表
width 绘制边缘的宽度,默认为0,即填充图形

pygame.draw.aaline(Surface,color,star_pos,end_pos,blend=1)
Surface 无锯齿线的绘制屏幕
color 无锯齿线的绘制颜色
star_pos,end_pos 无锯齿线的起始和结束坐标
blend 不为0时,与线条所在背景颜色进行混合

pygame.draw.aalines(Surface,color,closed,pointlist,blend=1)
Surface 连续无锯齿线的绘制屏幕
color 连续无锯齿线的绘制颜色
closed 如果为True,起止节点间自动增加封闭直线
pointlist 连续无锯齿线的顶点坐标列表
blend 不为0时,与线条所在背景颜色进行混合

绘制图形

import pygame,sys
from math import pi

pygame.init()
screen=pygame.display.set_mode((600,400))
pygame.display.set_caption("图形绘制")
gold=255,251,0
red=pygame.Color("red")
white=255,255,255
green=pygame.Color("green")

#r1rect=pygame.draw.rect(screen,gold,(100,100,200,100),5)
#r2rect=pygame.draw.rect(screen,red,(300,200,200,100),0)
#Rect(left,top,width,height)

e1rect=pygame.draw.ellipse(screen,green,(50,30,500,300),3)
c1rect=pygame.draw.circle(screen,gold,(200,100),30,5)
c2rect=pygame.draw.circle(screen,gold,(400,100),30)
r1rect=pygame.draw.rect(screen,red,(170,130,60,10),3)
r2rect=pygame.draw.rect(screen,red,(370,130,60,10))
plist=[(295,170),(285,250),(260,280),(340,280),(315,250),(305,170)]
l1rect=pygame.draw.lines(screen,gold,True,plist,2)
a1rect=pygame.draw.arc(screen,red,(200,220,200,100),1.1*pi,1.9*pi,3)

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

ps:学习链接 https://www.icourse163.org/course/BIT-1001873001

你可能感兴趣的:(北京理工大学-Python游戏开发入门学习笔记11)