Pygame
文章平均质量分 59
花无凋零之时
这个作者很懒,什么都没留下…
展开
-
Pygame学习笔记13:Dungeon角色扮演游戏
这一次就来学习设计一款ASCII 文本的RPG——Dungeon角色扮演游戏,这一章的内容会结合前面所学的知识。Dungeon游戏地图的构建关于地图构建的相关的操作都封装在一个Dungeon类中,存储在名为Dungeon.py文件中:import randomimport sysimport pygamefrom pygame.locals import *from MyLibrary import *class Dungeon(object): def __init__(se原创 2022-01-14 17:50:57 · 2363 阅读 · 0 评论 -
Pygame学习笔记12:随机地形及Artillery Gunner游戏
地形可以应用于许多不同的游戏中,因此这一章主要来学习构造地形,并且创造一个Artillery Gunner游戏。原创 2022-01-14 13:53:23 · 2909 阅读 · 1 评论 -
Pygame学习笔记11:三角函数及Tank Battle游戏
这一次将运用三角函数的相关知识以及前面学过的相关知识,如声音、精灵图像等来设计Tank Battle游戏,即坦克大战。Tank Battle游戏原创 2022-01-13 20:15:06 · 2690 阅读 · 1 评论 -
Pygame学习笔记10:编程逻辑及Snake游戏
贪吃蛇游戏想必大家都不陌生,这一次就来介绍开发一个简单的贪吃蛇游戏。Snake游戏创建精灵首先需要在MySprite的基础上创建新的精灵类以满足我们的需求蛇代码如下:# 蛇的身体部分class SnakeSegment(MySprite): def __init__(self, color=(20, 200, 20)): MySprite.__init__(self) image = pygame.Surface((32, 32)).convert_al原创 2022-01-12 14:50:30 · 578 阅读 · 0 评论 -
Pygame中alpha值及其设置
pygame中有时候需要设置alpha值以达到渐入渐出的效果,同时也需要其实现透明的效果,那么接下来就来介绍下。我们以一个游戏为例,这里不再详细讲述该游戏,详情参考我的另一篇博客《Pygame学习笔记9:计时、声音和Oil Spill游戏》实现渐入渐出的效果具体代码如下: def fade(self): r2 = self.radius // 2 color = self.image.get_at((r2, r2)) # 设置颜色的alpha值逐原创 2022-01-12 11:41:55 · 1774 阅读 · 0 评论 -
Pygame学习笔记9:计时、声音和Oil Spill游戏
Oil Spill游戏其实就是使用鼠标按动来去除油污的一个游戏,在这个游戏中,我们应用了pygame的声音模块。Oil Spill游戏声音的相关操作首先需要对其进行初始化,我们在使用pygame的时候,也是一定要初始化,即pygame.init(),同样的道理,对声音模块的初始化操作为:pygame.mixer.init()其次,我们要加载声音文件,pygame支持两种音频文件格式:未压缩的WAV和OGG音频文件。常见的使用方法是将WAV用于较短的音频文件,将OGG用于较长的音频文件。导入方式如原创 2022-01-10 22:51:37 · 907 阅读 · 0 评论 -
Pygame学习笔记8:Block Breaker游戏
这次来制作一个Block Breaker游戏,即在这次制作中,上一章制作的MyLibrary.py有一些改动和添加,完整的新代码如下:import randomimport sysimport mathimport timeimport pygamefrom pygame.locals import *# 类中的X、Y、position用于设置精灵的位置class MySprite(pygame.sprite.Sprite): def __init__(self):原创 2022-01-10 15:20:48 · 1053 阅读 · 0 评论 -
Pygame学习笔记7:精灵冲突及Zombie Mob游戏
上一章我们对于冲突的检测只是使用的pygame的最简单的冲突检测,即只是两个精灵之间的冲突检测,但是pygame支持多种冲突检测技术,因此这一章就来学习一下这些冲突检测技术。冲突检测技术两个精灵之间的矩形检测这个方法在上一章中已经讲过了,就是使用pygame.sprite.collide_rect()方法进行一对一的检测,需要传递两个参数,都是pygame.sprite.Sprite派生出来的对象,具体来讲就是关键要有一个rect的Rect属性可用,实例如下:对于如下的类:# 类中的X、Y、pos原创 2022-01-09 17:59:47 · 1359 阅读 · 1 评论 -
出现类似错误AttributeError: ‘MySprite‘ object has no attribute ‘image‘的解决方法
出现这种错误的原因其实就是没有给pygame.sprite.Sprite这个类的image属性赋上有用的值,因为对于pygame.sprite.Sprite,最重要的属性就是rect属性和image属性,因此当我们要扩展pygame.sprite.Sprite这个类的时候,可以在其__init__方法中这样做:def __init__(self, image_file): self.image = pygame.image.load(image_file).convert_alpha() sel原创 2022-01-08 18:10:03 · 3634 阅读 · 1 评论 -
Pygame学习笔记6:使用Pygame精灵以及Escape the Dragon
上一章介绍了位图编程的相关内容,这一章就开始实现动画操作,那么主要就是要来了解pygame.sprite模块。在pygame.sprite模块中,有一个名为Sprite的类,我们需要对其进行扩展使其成为一个我们需要的精灵类,pygame精灵以image和rect为基础,因此关键就是围绕这两个属性编写代码。首先我们使用如下精灵图:可以看到,精灵序列图包含了由“帧”组成的行和列,其中的每一个都是动画序列的一帧,注意,每一帧都带有行和列的标签,且标签是从0开始的。精灵组会自动调用update()方法进原创 2022-01-07 21:26:48 · 1663 阅读 · 0 评论 -
Pygame学习笔记5:位图图形和Orbiting Spaceship
使用位图前面一直使用的如下代码:screen = pygame.display.set_mode((600, 500))screen是一个surface对象,在pygame中,一个位图就是一个surface那么接下来就是慢慢开始使用位图。加载位图从网上找一张星空的图片,然后根据图片的大小进行加载,源代码如下:import sysimport pygamefrom pygame.locals import *pygame.init()screen = pygame.display.s原创 2022-01-02 19:22:38 · 1208 阅读 · 0 评论 -
Pygame学习笔记4:使用Math函数绘制Analog Clock
画圆的基本数学知识制作一个时钟,首先要解决的问题就是画一个圆,而且在众多游戏中,如炮弹的飞行轨迹,子弹的射击轨迹等,都需要用到圆的相关知识,那么由数学的参数方程有:x = R * costy = R * sint然后我们开始尝试画一个圆,源代码如下:import mathimport randomimport sysimport pygamefrom pygame.locals import *pygame.init()screen = pygame.display.set_mod原创 2022-01-01 22:33:21 · 944 阅读 · 0 评论 -
Pygame学习笔记3:用户输入以及Bomb Catcher游戏
事件检测pygame.event.get()函数用于获取用户输入,通过以下代码可以持续获取用户输入,若用户点击窗口的×,即触发QUIT事件,则程序结束:while True: for event in pygame.event.get(): if event.type == QUIT: sys.exit()键盘事件键盘事件包括KEYUP和KEYDOWN,若想要响应按键按下的时候,则检查KEYDOWN,若想要响应按键释放的时候,则检查KEYUP。一个比较常用的按键:ESC,即Escap原创 2021-12-30 20:58:58 · 1551 阅读 · 0 评论 -
Pygame学习笔记2:文件I/O以及一个简易的问答游戏——Trivia
使用pygame制作一个Trivia小游戏,即问答小游戏源代码:import sysimport pygamefrom pygame.locals import *def print_text(font, x, y, text, color=(255, 255, 255), shadow=True): if shadow: imgText = font.render(text, True, (0, 0, 0)) screen.blit(imgText,原创 2021-12-30 14:58:40 · 874 阅读 · 0 评论 -
Pygame学习笔记1:绘制图形
绘制一个圆import sysimport pygamefrom pygame.locals import *# 初始化pygame.init()# 设置窗口大小、窗口文字screen = pygame.display.set_mode((600, 500))pygame.display.set_caption("Drawing Circles")while True: for event in pygame.event.get(): if event.type原创 2021-12-30 10:59:56 · 1358 阅读 · 0 评论