您的位置:首页 > 编程语言 > Python开发

python学习6

2016-04-08 17:29 183 查看
本章主要讲述了pygame的应用,pygame主要用于制作游戏模块。

除了该模块,我们还学习了Turtle模块用于画图,Tkinter用于制作GUI

1.pygame的安装

pygame的下载链接,该连接时第三方库,都是编译好了的。

然后下载好了.whl安装包,最后进入cmd命令窗口,cd到安装包的路径,然后输入

pip install xxx.whl就可以进行安装了

这个时候在Jupyter notebook中输入import pygame就可以导入pygame模块,并应用了。

2.画一个圆形

#主要的三个模块,Turtle用来绘制图形,Tkinter用来创建GUI,PyGame用来创建游戏

import pygame
pygame.init()

#定义一个窗口400*300
windowSize = [400 , 300]
screen = pygame.display.set_mode(windowSize)

#定义一个圆
pygame.display.set_caption('circles')
colour=pygame.color.Color('#FFFFFF')

#循环画圆
done=False
while not done:
pygame.draw.circle(screen,colour,[200,150],50)
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
done=True
pygame.quit()


案列:画一个矩形

#创建一个长方形
import pygame
pygame.init()

windowSize=(400,300)
screen=pygame.display.set_mode(windowSize)
colour=pygame.color.Color('#FE12AD')

done=False
while not done:#while not ..的意思就是当done是False的时候执行下列语句,while done就是当done是True的时候执行下列语句
pygame.draw.rect(screen,colour,[10,20,30,40])
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
done=True

pygame.quit()


案列:绘制一个矩形彩虹条

#创建一个长方形
import pygame
pygame.init()

height=300
width=400
windowSize=(400,300)
screen=pygame.display.set_mode(windowSize)
colour=pygame.color.Color('#FE12AD')

row=0
done=False
while not done:#while not ..的意思就是当done是False的时候执行下列语句,while done就是当done是True的时候执行下列语句
increment=255/100
while row<=height:
pygame.draw.rect(screen,colour,[0,row,width,row + increment])
pygame.display.flip()
if colour[2]+increment<255:
colour[2]+=increment
row+=increment

#想要关闭窗口
for event in pygame.event.get():
if event.type == pygame.QUIT:
done=True

pygame.quit()


案列:划分矩形为若干小矩形,然后随机填充颜色

#创建一个颜色栅格

#导入需要用的模块,并且初始化
import pygame
import random
pygame.init()

#定义窗口的大小,并且划分窗口为10*10块
width=400
height=300
wsqr=10
hsqr=10
w=width/wsqr
h=height/hsqr
windowSize=(width,height)
screen=pygame.display.set_mode(windowSize)

clock=pygame.time.Clock()

#随机颜色,随机x,y的位置,画图pygame.draw.rect(screen,(r,g,b),(x,y,width,height))
done=False
while not done:
red=random.randrange(0,256)
green=random.randrange(0,256)
blue=random.randrange(0,256)

x=random.randrange(0,width,w)
y=random.randrange(0,height,h)
#画图形
pygame.draw.rect(screen,(red,green,blue),(x,y,w,h))
pygame.display.flip()

#关闭窗口循环
for event in pygame.event.get():
if event.type == pygame.QUIT:
done= True
clock.tick(10)

#关闭
pygame.quit()


效果图:



注意:这里random.randrange(0,100,5)用于随机接受0——100以内以5为步长的随机数,如0,5,10,15………………

案列:不断放缩的一个椭圆

import pygame
import math
pygame.init()

windowSize=[400,300]
screen=pygame.display.set_mode(windowSize)
clock=pygame.time.Clock()

width=200
height=200
x=windowSize[0]/2-width/2
y=windowSize[1]/2-height/2
colour=pygame.color.Color('#FEA234')
black=pygame.color.Color('#12A3F5')

count=0
done=False
fileNo=0
while not done:
screen.fill(black)
pygame.draw.ellipse(screen,colour,[x,y,width,height])
width+=math.cos(count)*10
x-=(math.cos(count)*10)/2
height+=math.sin(count)*10
y-=(math.sin(count)*10)/2
count+=0.5
pygame.display.flip()

for event in pygame.event.get():
if event.type==pygame.QUIT:
done=True
clock.tick(24)

#保存一幅图像
pygame.image.save(screen,"i.png")

pygame.quit()


案列:如上,保存一系列图像

import pygame
import math
pygame.init()

windowSize=[400,300]
screen=pygame.display.set_mode(windowSize)
clock=pygame.time.Clock()

width=200
height=200
x=windowSize[0]/2-width/2
y=windowSize[1]/2-height/2
colour=pygame.color.Color('#FEA234')
black=pygame.color.Color('#12A3F5')

count=0
done=False
fileNo=0
while not done:
screen.fill(black)
pygame.draw.ellipse(screen,colour,[x,y,width,height])
width+=math.cos(count)*10
x-=(math.cos(count)*10)/2
height+=math.sin(count)*10
y-=(math.sin(count)*10)/2
count+=0.5
pygame.display.flip()
#保存一系列的图像
if fileNo<20:
pygame.image.save(screen,"circle"+str(fileNo)+".jpg")
fileNo+=1
#退出窗口
for event in pygame.event.get():
if event.type==pygame.QUIT:
done=True
clock.tick(24)

#保存一幅图像
#pygame.image.save(screen,"i.png")

pygame.quit()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: