|
前后看了三个游戏案例代码,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()
|