http://blog.sysuschool.com/u/mygod/index.html
请稍候,载入中。。。
 
请稍候,载入中。。。
2019-5-9 16:56:00
博文:pygame续(二)关于surface对象


 

前后看了三个游戏案例代码,pygame的surface对象的用法又出现了几种,先小结,还有新发现再补充。

pygame的surface对象,前面已知,用pygame.display.set_mode()创建的屏幕,如用pygame.image.load()加载图像,这两个函数返回的都是surface对象。

surface对象的方法有:

.blit() 将一个图像画到另一个图像上,如将游戏角色画到屏幕上,屏幕对象和游戏角色本身就是surface对象

.fill() 使用颜色填充surface,注意括号里用元组,如((0,0,0))

.get_rect() 获取surface对象的(x,y,w,h),获取后可以用.size .top .bottom .left .right .topleft .width .height .x .y,这里注意.topleft可以直接获取(x,y),midtop返回顶中心位置、还有center\centerx\centery

以上是前面小结过的,下面是新学的,有点乱,不管了,先上:

.subsurface()  可以裁切surface对象(取部分),象css使用精灵图(所有图标集中在一起),可以避免服务器频繁相应,可以用坐标(左上角)来取,如下图,hero角色的各种状态集中到一张图(精灵),第一个坐标0,0,第二个102,0,每个宽102,高126。

shoot_img = pygame.image.load("images/shoot.png")

hero_img1= shoot_img.subsurface(pygame.Rect(0,0,102,126)

hero_img2= shoot_img.subsurface(pygame.Rect(102,0,102,126)

 

surface还可以直接创建,如

img = pygame.Surface([10,10])     # w10,h10

img.fill((0,0,0))    # 黑色填充

暂时知道这些,有新的继续补充。

补充:

.get_width()

.get_height()

 

mygod | 阅读全文 | 回复(0) | 引用通告 | 编辑
发表评论:
请稍候,载入中。。。
公告
请稍候,载入中。。。
时间记忆
请稍候,载入中。。。
最新日志
请稍候,载入中。。。
最新评论
请稍候,载入中。。。
最新回复
请稍候,载入中。。。
我的好友
我的相册
站点信息
请稍候,载入中。。。
生活因感动而精彩,理想在创造中放飞
Powered by Oblog.