Python-Pygame游戏学初级教程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Python+Pygame游戏学习(初级教程)小五义本文档通过博客整理而成,所用素材请从下载。第一章:安装及矩形、圆型画图pygame是一个设计用来开发游戏的python模块,其实说白了和time、os、sys都是一样的东东。今天开始正式学习pygame,下载地址:,具体安装方法就不讲了,很简单。下载后安装完成即可,在pygame的学习中,本文使用了spe编辑器,感觉还不错。1111、pygamepygamepygamepygame窗口pygame绘制图形前,首先需要建立一个窗口,说来很简单,请看下面的代码,怎么样,是不是很简单。importpygame#这句不用注释了吧,呵呵pygame.init()#模块初始化,任何pygame程序均需要执行此句screencaption=pygame.display.set_caption('helloworld')#定义窗口的标题为'helloworld'screen=pygame.display.set_mode([640,480])#定义窗口大小为640*480screen.fill([255,255,255])#用白色填充窗口2222、窗口退出pygame有一个事件循环,不断检查用户在做什么。事件循环中,如何让循环中断下来(pygame形成的窗口中右边的插号在未定义前是不起作用的),常用的代码如下:whileTrue:foreventinpygame.event.get():ifevent.type==pygame.QUIT:sys.exit()3333、pygamepygamepygamepygame中的颜色在screen.fill([255,255,255])这一语句中,已经看出,pygame使用的是RGB系统。纯绿色用[0,255,0],纯蓝色用[0,0,255],纯红色用[255,0,0]。如果不使用RGB记法,pygame还提供了一个命名颜色列表,也可以直接使用这些命名颜色。定义好的颜色句有600多个,可以在colordict.py文件中查看具体名称。使用命名列表时,首先要在程序最前面导入THECOLORS。frompygame.colorimportTHECOLORS然后使用某个命名颜色:pygame.draw.circle(screen,THECOLORS[red],[100,100],30,0)4444、圆形pygame.draw.circle()用来画圆形,具体包括五个参数:(1)画圆的表面,在本例中用screen创建了一个窗口,所以是画在screen表面上。(2)用什么颜色来画,如用红色[255,0,0]。(3)在什么位置画,[top,left]。(4)直径。(5)线宽,其中0表示完成填充。pygame.draw.circle(screen,[255,0,0],[100,100],30,0)5555、矩形pygame.draw.rect()用来创建一个矩形。Rect(left,top,width,height)用来定义位置和宽高,具体代码如下:pygame.draw.rect(screen,[255,0,0],[250,150,300,200],0)也可以用下面的定义方法rect_list=[250,150,300,200]pygame.draw.rect(screen,[255,0,0],rect_list,0)或者my_rect=pygame.Rect(250,150,300,200)pygame.draw.rect(screen,[255,0,0],my_rect,0)6666、实例利用random模块随机生成大小和位置在表面上绘画,具体代码如下:#@小五义()screencaption=pygame.display.set_caption('helloworld')screen=pygame.display.set_mode([640,480])screen.fill([255,255,255])foriinrange(10):zhijing=random.randint(0,100)width=random.randint(0,255)height=random.randint(0,100)top=random.randint(0,400)left=random.randint(0,500)pygame.draw.circle(screen,[0,0,0],[top,left],zhijing,1)pygame.draw.rect(screen,[255,0,0],[left,top,width,height],3)pygame.display.flip()whileTrue:foreventinpygame.event.get():ifevent.type==pygame.QUIT:sys.exit()第二章:从画点到动画1111、单个像素(画点)利用pygame画点主要有三种方法:方法一:画长宽为1111个像素的正方形#@小五义()screen=pygame.display.set_caption('helloworld!')screen=pygame.display.set_mode([640,480])screen.fill([255,255,255])pygame.draw.rect(screen,[0,0,0],[150,50,1,1],1)#画1*1的矩形,线宽为1,这里不能是0,因为1*1无空白区域。pygame.display.flip()whileTrue:foreventinpygame.event.get():ifevent.type==pygame.QUIT:sys.exit()方法二:画个直径为1111的圆#@小五义()screen=pygame.display.set_caption('helloworld!')screen=pygame.display.set_mode([640,480])screen.fill([255,255,255])pygame.draw.circle(screen,[0,0,0],[150,200],1,1)pygame.display.flip()whileTrue:foreventinpygame.event.get():ifevent.type==pygame.QUIT:sys.exit()方法三:这种方法并不是画上去的,而是改变了surfacesurfacesurfacesurface上某个点的颜色,这样看上去像是画了一个点screen.set_atscreen.set_atscreen.set_atscreen.set_at()。另外,如果要得到某个像素的颜色,可以使用screen.get_atscreen.get_atscreen.get_atscreen.get_at()。#@小五义()screen=pygame.display.set_caption('helloworld!')screen=pygame.display.set_mode([640,480])screen.fill([255,255,255])screen.set_at([150,150],[255,0,0])#将150,150改为红色。pygame.display.flip()whileTrue:foreventinpygame.event.get():ifevent.type==pygame.QUIT:sys.exit()2222、连接多个点形成线pygame.draw.lines()方法可以将多个点连接成为线。该方法有5个参数:surface表面、颜色、闭合线或者非闭合线(如果闭合为True,否则为False),点的列表,线宽。pygame.draw.lines(surface,[color],False/True,plotpoints,1)。下面的例子画出了一条马路,具体如下:#@小五义():#画马路左边界plotpoints=[]forxinrange(0,640):y=-5*x+1000plotpoints.append([x,y])pygame.draw.lines(screen,[0,0,0],False,plotpoints,5)pygame.display.flip()deflineright():#画马路右边界plotpoints=[]forxinrange(0,640):y=5*x-2000plotpoints.append([x,y])pygame.draw.lines(screen,[0,0,0],False,plotpoints,5)pygame.display.flip()deflinemiddle():#画马路中间虚线plotpoints=[]x=300foryinrange(0,480,20):plotpoints.append([x,y])iflen(plotpoints)==2:pygame.draw.lines(screen,[0,0,0],False,plotpoints,5)plotpoints=[]pygame.display.flip()pygame.init()screen=pygame.display.set_caption('helloworld!')screen=pygame.display.set_mode([640,480])screen.fill([255,255,255])lineleft()lineright()linemiddle()whileTrue:foreventinpygame.event.get():ifevent.type==pygame.QUIT:sys.exit()3333、引用图像在pygame中引用图像最简单的以夷伐夷是image函数。下面在马路的实例中,加入一辆汽车。首先pygame.image.load()函数从硬盘加载一个图像,并创建一个名为my_car的对象。这里,my_car是一个surface,不过是存在内存中,并未显示出来,然后用blit(块移)方法将my_car复制到screen表面上,从而显示出来。具体代码如下:#@小五义():plotpoints=[]forxinrange(0,640):y=-5*x+1000plotpoints.append([x,y])pygame.draw.lines(screen,[0,0,0],False,plotpoints,5)pygame.display.flip()deflineright():plotpoints=[]forxinrange(0,640):y=5*x-2000plotpoints.append([x,y])pygame.draw.lines(screen,[0,0,0],False,plotpoints,5)pygam

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功