pygame从入门到精通
欢迎来到pygame大讲堂,这里我们致力为大家梳理python第三方库-pygame的知识和进行实战游戏开发训练,欢迎大家学习,一起努力!
Ejasmine
时间不等人,向编程海洋进发!
展开
-
Pygame高阶知识汇总
我的Pygame高阶知识博客汇总:Pygame高阶知识(1)-使用assert语句进行检查Pygame高阶知识(2)-global语句原创 2019-02-01 22:57:32 · 442 阅读 · 0 评论 -
Pygame高阶知识(8)-pygame.transform.flip()函数
pygame.transform.flip()帮助我们对图像进行水平和垂直翻转。在2D游戏中一个英雄可能需要转向,这里就需要用到flip()了img=pygame.transform.flip(img2,True,False)上面这是一个水平翻转的例子,我们来看一下这三个参数:需要翻转的图像水平翻转的Boolean值垂直翻转的Boolean值水平翻转也就是左右的翻转,垂直翻转也就...原创 2019-02-01 17:18:46 · 5706 阅读 · 1 评论 -
Pygame高阶知识(7)-列表的insert()方法
有时候我们需要在列表的特点位置插入元素,而不止是在最后,这时我们可以用到列表的insert()方法test.insert(0,'a')insert()方法的第一个参数是插入的位置,0则代表开始处,第二个参数是插入的东西,这样就完成了,简单把!...原创 2019-02-01 17:01:29 · 730 阅读 · 0 评论 -
Pygame高阶知识(6)-旋转图形
我们有时候可能需要让图形旋转来达到一些特效,这次我们就来讲一下如何旋转图形test=pygame.transform.rotate(picture,degree)pygame.transform.rotate()中的第一个参数是我们要旋转的图形,第二个是角度,注意,是逆时针旋转的!下次见!...原创 2019-02-01 16:50:47 · 4141 阅读 · 2 评论 -
Pygame高阶知识(5)-碰撞检测
在游戏的制作过程,我们难免要检测类似于子弹和敌人的碰撞之类的,那么今天我们就来讲讲pygame的碰撞检测。a['rect'].colliderect(b['rect'])colliderect前后是两个rect对象,获取rect对象可以用get_rect方法,这样可以就可以检测两个物体是否碰撞了,下次见!...原创 2019-02-01 16:42:35 · 2378 阅读 · 0 评论 -
Pygame高阶知识(4)-Surface的copy对象
欢迎来到pygame大讲堂,这次我们来讲copy对象anotherSurface=Surface.copy()Surface的copy对象返回一个新的Surface对象,这两个对象内容完全相同,但它们是两个Surface对象,以至于你可以用blit或绘制函数来绘制到某个Surface对象,而另一个Surface对象不会改变,比如说,你可以用一个Surface对象来保存用户的动作,另一个保存原...原创 2019-02-01 16:30:14 · 1303 阅读 · 0 评论 -
Pygame高阶知识(3)-main()函数
欢迎来到pygame大讲堂,今天我们来讲讲main()函数的好处if __name__=='__main__' main()有些人可能觉得使用main()函数毫无意义,但其实不是这样,今天我们就来讲讲main()函数的优点:首先,使用main()函数让我们可以拥有局部变量,否则的话,main()函数的全部变量将成为全局变量,上一篇文章我们讲了全局变量的坏处:程序难以维护,因此,不...原创 2019-02-01 00:36:42 · 600 阅读 · 0 评论 -
Pygame高阶知识(2)-global语句
欢迎来到pygame大讲堂,这次我们来讲global语句。global语句就像这样:global 变量名这些变量名都会被标记为全局变量,在函数中,我们赋给全局变量的如何值都会在函数外永久化,我们可以将类似与Clock对象会Surface对象等命名为全局变量,因为在别的地方我们可能要使用他们。那么如何判断一个变量是局部还是全局的呢,见下:全局:在函数的开始的地方,有一条对一个变量的声...原创 2019-02-01 00:12:10 · 920 阅读 · 0 评论 -
Pygame高阶知识(1)-使用assert语句进行检查
欢迎来到pygame大讲堂,现在我们进入到高阶知识的讲解,顺便附上基础知识全部讲解链接:Pygame基础知识汇总废话不多说,立刻进入这次的内容-assert语句,assert语句就像这样:assert 表达式,'字符串'如果这个表达式为False则程序崩溃,随后在屏幕上显示逗号后的字符串。assert语句能让我们全面检查代码,以让我们之后的代码能成功运行,如果为True的话,我们至少可...原创 2019-01-31 23:10:24 · 384 阅读 · 0 评论 -
Pygame基础知识汇总
我的Pygame博客:pygame第三方库的下载Pygame基础知识(1)Pygame基础知识(2)Pygame基础知识(3)-笛卡尔坐标Pygame基础知识(4)-Surface对象Pygame基础知识(5)-颜色Pygame基础知识(6)-颜色的透明度Pygame基础知识(7)-Color对象Pygame基础知识(8)-Rect对象Pygame基础知识(9)-绘制函数Py...原创 2019-01-31 18:41:46 · 1664 阅读 · 3 评论 -
Pygame基础知识(17)-播放音频
欢迎来到pygame,今天我们来讲最后一个pygame基础知识点,就是播放音频。游戏里一般都有炫酷的游戏音效,这次我们就来讲一下如何播放音频文件,看如下代码:import timesoundplay=pygame.mixer.Sound('sound.mp3')soundplay.play()time.sleep(5)soundplay.stop()很简单吧,在你的游戏里播放背景音...原创 2019-01-31 18:38:02 · 1529 阅读 · 0 评论 -
Pygame基础知识(16)-抗锯齿
欢迎来到pygame大讲堂,今天我们来讲抗锯齿,回忆起上次的文章了吗:text=fonttext.render('Hello World!',True,Blue,Green)render是一种图形处理的技术,它可以让图形增加模糊效果,使图片看起来不那么僵硬。如果你需要抗锯齿处理,你只需要给render参数传入True,下次见!...原创 2019-01-31 18:22:17 · 2105 阅读 · 0 评论 -
Pygame基础知识(15)-字体
欢迎来到pygame大讲堂,这次我们来讲字体:pygame提供了绘制文本的函数,以至于你不需要用几十次draw.line(),我们可以看一下以下实例:import pygame,sysfrom pygame.locals import *pygame.init()Surface=pygame.display.set_mode((400,300))pygame.display.set...原创 2019-01-31 18:04:18 · 785 阅读 · 0 评论 -
Pygame基础知识(14)-pygame.image.load()对象和blit()绘制
欢迎来到pygame大讲堂,这次我们来讲如何将图像绘制到屏幕上。做游戏难免要用到png,jpg等图片,但我们并不能用普通的绘制函数来绘制这些图片,我们需要用到blit()绘制方法:plane=pygame.image.load('plane.png')WindowSurface.blit(plane,(50,50))上面的代码在(50,50)的位置打印出了plane.png这个图片,规则...原创 2019-01-31 13:13:38 · 28237 阅读 · 3 评论 -
Pygame基础知识(13)-帧速率和pygame.time.Clock对象
既然上次我们讲到了动画,这次我们就来讲一下对动画起到影响的帧速率。帧速率是指程序每秒在屏幕山绘制图像的数目,我们可以用FPS来表示它。一般的计算机都能达到每秒60帧的速度。如果我们把帧速率讲得比较低,那么游戏也会看上去较为卡顿。pygame.time.Clock对象帮助我们确定程序要以多少最大的帧速率运行,这个对象在游戏每一次迭代都会设置一个暂停,以防程序运行过快,有时候计算机的速度过于快速,...原创 2019-01-31 12:38:09 · 17017 阅读 · 4 评论 -
Pygame基础知识(12)-动画
欢迎来到pygame大讲堂,这次我们来讲动画:只有静止的图像的游戏肯定很无聊,所以让我们来学习一下如何制作动画:我们可以这么做,先画出一个图像,然后过一会再绘制一幅略微不同的图像,电脑只是觉得在绘制一系列图像,但人们看上去就像一个逼真的动画。假如你前方有一个三个像素宽,一个像素高的东西,现在(0,0)是黑的,其它都是白的。紧接着我们把(0,0)修改为白色的,把(1,0)修改为黑色的,对于用户...原创 2019-01-31 12:26:44 · 657 阅读 · 0 评论 -
Pygame基础知识(11)-display.update函数
欢迎来到pygame大讲堂,这次我们要来讲pygame.display.update()函数。我们要通过执行这个函数来让我们绘制的东西显示在屏幕上:pygame.display.update()如果要使其它图片出现在屏幕上,我们需要用到blit。下次再见!...原创 2019-01-22 11:12:20 · 14083 阅读 · 7 评论 -
Pygame基础知识(10)-PixelArray对象
欢迎来到pygame知识大讲堂,今天我们要来讲PixelArray对象。上一讲我们讲了一些基础的绘制函数,这次我们就来讲一些关于绘制中你需要用到的,也就是今天的锁定Surface对象。我们可以用PixelArray对象来锁定一个Surface对象,你依旧可以在上面绘制像素,而速度会快很多,但是前提是你不能在上面用blit绘制png或jpg之类的图片,这我们之后会学到,我们来看一下PixelAr...原创 2019-01-22 10:24:09 · 2282 阅读 · 0 评论 -
Pygame基础知识(9)-绘制函数
欢迎来到pygame大讲堂,这次我们来讲一讲绘制函数。首先我们来看一行代码:green=(0,255,0)我们可以为颜色设置常量,这么做可以增强代码的可读性,因为比起在代码中看到green比看到(0,255,0)清晰和简便的多。传递给绘制函数的参数大约有这几类:1.画什么形状2.在哪个Surface对象上绘制3.将形状绘制到哪里4.用什么颜色绘制5.线条的宽度是多少再来看看...原创 2019-01-21 16:53:35 · 966 阅读 · 0 评论 -
Pygame基础知识(8)-Rect对象
欢迎来到pygame大讲堂,这一次我们要来讲Rect对象。pygame用Rect对象来表示矩形区域,我们给它传入一个四个数的元组:1.左上角的x坐标2.左上角的y坐标3.矩形的宽度(单位:像素)4.矩形的高度(单位:像素)我们打开交互式shell并输入如下内容,如下代码创建了一个Rect对象,它的左上角位于(50,60),宽度为200像素,高度为300像素:import pygam...原创 2019-01-21 15:11:12 · 2566 阅读 · 0 评论 -
Pygame基础知识(7)-Color对象
欢迎来到pygame大讲堂,上两讲我们介绍了颜色,是不是很迫切想用上呢,今天我们就来学一学pygame.Color对象。pygame需要用到一个pygame.Color对象来知道你需要用什么颜色来进行绘制,你可以向pygame.Color对象传入3或4个整数来创建Color对象,现在打开交互式shell,输入如下内容:import pygamepygame.Color(0,255,0)my...原创 2019-01-21 14:44:39 · 818 阅读 · 0 评论 -
Pygame基础知识(6)-颜色的透明度
欢迎来到pygame大讲堂,这次我们要讲颜色的透明度!上节课我们讲了pygame可以用三个数的元组来表示颜色,也就是RGB值,而今天我们要告诉大家我们还可以给元组中添加第四个元素来表示颜色的透明度。颜色的透明度像RGB一样都是0到255的整数值,这个值叫做alpha值,255表示完全不透明,在没有添加alpha值的情况下系统默认alpha值为255,也就是(255,255,255,255)和(...原创 2019-01-21 14:35:17 · 4761 阅读 · 1 评论 -
Pygame基础知识(5)-颜色
欢迎来到pygame大讲堂,这次我们将给大家介绍颜色。光线有三种主要颜色,分别是红色,绿色和蓝色,不同于美术中的三原色,所以不要搞混了。你可以将这些颜色按不同比例结合起来,组合出不同的颜色。在pygame中,每一种颜色的范围在0-255之间,我们可以使用一个包括三个整数的元组来表示一种颜色,第一个整数表示红色,第二个整数表示绿色,第三个整数表示蓝色,这就称为RGB值。如果你想表示颜色,你可以...原创 2019-01-19 22:07:36 · 2669 阅读 · 0 评论 -
Pygame基础知识(4)-Surface对象
Surface对象是一个矩形的2D图像对象,窗口的标题,边框和×键并不是Surface对象的一部分,我们可以通过pygame的绘制函数来改变Surface对象上的像素。绘制到Surface对象的内容在调用pygame.display.update()这个函数后都会显示到窗口上。当然,在这个Surface对象上绘制可比绘制一个Surface对象快多了。windowSurface=pygame.d...原创 2019-01-18 21:32:07 · 1663 阅读 · 0 评论 -
Pygame基础知识(3)-笛卡尔坐标
介绍完了Hello World程序,我们来看一下pygame的函数,我们首先从坐标开始学起:windowSurface=pygame.display.set_mode((400,300))想起Hello World我们设置窗口大小的语句吗?其实这只是一种叫做像素的小方块的组合,pygame中每个像素初始都是黑色的,正如Hello World看到的一样。假设我们现在有一个5*5的一个像素窗口...原创 2019-01-18 21:15:49 · 3234 阅读 · 0 评论 -
Pygame基础知识(2)
现在我们继续我们的上一篇博客,详解hello world程序下半部分:while True:这是一个while循环,它有一个True条件,使得程序不会因为求得某个表达式为False而退出主循环,退出的方式只有break,或者sys.exit()(sys.exit()会直接终止程序)。 for event in pygame.event.get()当用户做了一个动作时,pygame...原创 2019-01-18 14:29:27 · 1287 阅读 · 3 评论 -
Pygame基础知识(1)
上一章我们介绍了pygame的下载,于是这篇就来依次讲解一下pygame的基础知识。首先,按照世界惯例,我们来写一个hello world程序:import pygame,sysfrom pygame.locals import *pygame.init()windowSurface=pygame.display.set_mode((400,300))pygame.display.s...原创 2019-01-18 13:45:11 · 1767 阅读 · 2 评论 -
pygame第三方库的下载
欢迎来到pygame的世界,想要自己编写游戏,python强大的第三方库能帮助你完成愿望,现在就开始吧。Windows pygame安装指南:①按下win+r键,系统会弹出一个框②输入cmd#![第①和第②步](https://img-blog.csdnimg.cn/20190118124138122.PNG?x-oss-process=image/watermark,type_ZmFuZ...原创 2019-01-18 12:54:52 · 3081 阅读 · 0 评论