导图社区 pygame游戏制作方法
一些用pygame制作游戏时常用的方法函数总结。Pygame是跨平台Pyth,包含图像、声音。建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。基于这样一个设想,所有需要的游戏功能和理念都(主要是图像方面)都完全简化为游戏逻辑本身,所有的资源结构都可以由高级语言提供,如Python。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
游戏模块
设置窗口
创建窗口(screen)
pygame.display.set_mode(size)
设置标题
pygame.display.set_caption("..")
绘制图形
加载图片(object)
pygame.image.load("..").convert()
pygame.image.load("..").convert_alpha()
获得图像的位置矩形(position)
object.get_rect()
移动图像
object.move([..,..])
翻转图像
pygame.transform.flip(image_object, (水平翻转True/False), (垂直翻转))
转换后再转换会损失精度
缩放图像(快速)
scale
旋转图像(逆时针)
pygame.transform.rotate(object, dushu)
缩放并旋转图像
rotozoom
快速放大一倍图像
scale2x
平滑缩放图像(精准)
pygame.transform.smoothscale(object, (new_width, new_height))
裁剪图像
chop
画矩形
pygame.draw.rect(screen, (r, g, b), rect_object, kuandu(int类型, 单位px))
获取表层图像
screen.subsurface(select_area)
透明处理
子主题
绘制矩形
pygame.draw.rect(Surface, color, Rect, width=0)
width=0表示全填充, 1及以上为边框, Rect是四个参数表示的矩形
pygame.draw.polygon(screen, GREEN, points, 0)
绘制圆形
pygame.draw.circle(screen, RED, position, r, 1)
绘制椭圆
pygame.draw.ellipse(screen, BLACK, (x, y, width, height), 1)
绘制弧形
arc(screen, color, Rect, start_angle, stop_angle, width=1)
绘制线段
line(screen, color, start_pos, end_pos, width=1)
lines(screen, color, closed, pointlist, width=1)
抗锯齿
aaline(screen, color, startpos, endpos, blend=1)
aalines(screen, color, closed, pointlist, blend=1)
显示图片
填充背景
screen.fill(RGB_object[.., .., ..])
更新图像
screen.blit(object, position)
更新界面
pygame.display.flip()
全屏(开启硬件加速)
pygame.display.set_mode((1024, 768), FULLSCREEN | HWSURFACE)
本质就是修改窗口大小为当前屏幕的分辨率
窗口拖拽
pygame.display.set_mode(size, RESIZABLE)
窗口默认为不可拖拽
用户拖拽事件为VIDEORESIZE, 当用户拖拽后会得到一个event.size属性,此时修改窗口宽高为size,然后重新执行pygame.display.set_mode(size, RESIZABLE)
动画效果
外设交互
获取外设数据
pygame.event.get()
按键检测
event.key == ..
获取鼠标位置
pygame.mouse.get_pos()
鼠标
event.type = MOUSEBUTTONDOWN
event.button =
1 鼠标左键
2 鼠标右键
3 鼠标中键
4 鼠标滚轮向上
5 鼠标滚轮向下
event.type = MOUSEBUTTONUP
播放声音
初始化
pygame.init()
pygame.mixer.init()
播放音效(.wav)
object = pygame.mixer.Sound("...路径")
播放音效
object.play()
停止播放
object.stop()
淡出
object.fadeout()
设置音量
object.set_volume()
获取音量
object.get_volume()
计算该音效播放了多少次
object.get_num_channels()
获得该音效的长度
object.get_length()
将该音效以二进制格式的字符串返回
object.get_raw()
播放背景音乐(.ogg)
pygame.mixer.music.
载入音乐
load("...(路径)")
播放音乐
play()
重新播放
rewind()
stop()
暂停播放
pause()
恢复播放
unpause()
fadeout()
set_volume(如: 0.2)
get_volume()
检测音乐流是否正在播放
get_busy()
设置开始播放的位置
set_pos()
获取已经播放的时间
get_pos()
将音乐文件放入待播放列表中
queue()
在音乐播放完毕时发送事件
set_endenvent()
获取音乐播放完毕时发送的事件类型
get_endevent()
碰撞检测
pygame.sprite.spritecollide(sprite, group, dokill, collided = None)
最后一个参数可指定精灵的形状
圆形
pygame.sprite.collide_circle(left, right)
控制游戏节奏
clock = pygame.time.Clock()
clock.tick(如: 30)
等待
pygame.time.delay(2000(单位: ms))