wxPython和pycairo练习记录16

不知道方向就先走着,最近又无所事事,准备照着别人的代码写一下 Mario 游戏,参照链接:https://github.com/mx0c/super-mario-python

虽然这位作者有写是受另一个项目启发,但是有些地方比如依赖关系也挺混乱的,但好在项目很完整,是用 pygame 写的,照着写总比自己瞎折腾容易吧。

先找出没有依赖其他文件的代码,可以作为后续其他代码的零件,这里选择 https://github.com/mx0c/super-mario-python/blob/master/classes/Spritesheet.py

文件结构直接按参考项目创建,主要用 cairo.ImageSurface 对象替代 pygame.image 对象,并另外实现 set_colorkey 指定颜色作为透明色。笔记和想法都直接写到注释里了。

# SpriteSheet.py
from cairo import ImageSurface, Context, Rectangle, FORMAT_ARGB32
from mario.classes.Utils import Utils
"""
cairo.ImageSurface 提供了一个灵活和强大的方式来在内存中创建和操作图像

在 Cairo 中,一切都被视为绘图操作,即使是对图像的修改也被视为在绘图上下文中进行的操作。
创建图像表面(Surface)的主要目的是为了提供一个统一的接口,使得对不同类型的绘图目标(比如窗口、PDF 文档、图像文件等)进行绘制操作时,能够使用相同的 API 和模式。

总之,将图像存储在 Surface 中的主要目的是为了提供一个统一的、灵活的、可移植的绘图接口,使得开发者可以更容易地进行绘图操作,并且可以轻松地将相同的绘图操作应用于不同的输出目标。
"&
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值