【pygame】Sprite类

这篇具有很好参考价值的文章主要介绍了【pygame】Sprite类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Sprite类

pygame.sprite.Sprite 可视游戏中的对象的基础类

属性:Sprite(*groups) -> Sprite

使用Sprite类派生新类时需要分配 Sprite.image 和 Sprite.rect 属性并添加 Sprite.update() 方法。初始设定项可以添加任何数量的组(Group)实例。当派生 Sprite类的子类时,请确保在将 Sprite类添加到组群( Groups)之前已调用基础初始设定项。例如:

class Block(pygame.sprite.Sprite):
 
    # 构造函数。传入图块的颜色和x,y位置。
    def __init__(self, color, width, height):
       # 调用父类 (Sprite) 构造函数
       pygame.sprite.Sprite.__init__(self)
 
       # 创建一个图块并填色,或加载image
       self.image = pygame.Surface([width, height])
       self.image.fill(color)
 
       # 获取有图像尺寸的Rect形对象
       # 通过设定rect.x和rect.y来更新对象的位置
       self.rect = self.image.get_rect()

pygame.sprite.Sprite.update() 控制精灵行为的方法

update(*args, **kwargs) -> None

这个方法的默认执行动作为nothing,是一个便于重写的“钩子”。此方法由 Group.update() 调用。【 Group.update() 参数可随意设定】
如果不使用组类中的同名方法,则无需使用此方法。

pygame.sprite.Sprite.add() 将精灵添加到组

add(*groups) -> None

任何数量的组实例都可以作为参数传递。精灵将被添加到它还不是成员的组中。

pygame.sprite.Sprite.remove() 从组中移除精灵

remove(*groups) -> None
任何数量的组实例都可以作为参数传递。精灵将从其当前所属的组中移除。

pygame.sprite.Sprite.kill()从所有组中移除精灵

kill() -> None
精灵将从包含它的所有组中移除。这不会改变精灵的状态。调用此方法后,可以继续使用精灵,包括将其添加到组中。

pygame.sprite.Sprite.alive()判断精灵是否属于任何一个团体

alive() -> bool
当精灵属于一个或多个组时返回True。

pygame.sprite.Sprite.groups() 获取包含此精灵的组列表

groups() -> group_list

返回包含此精灵的所有组的列表。

pygame.sprite.DirtySprite 精灵类的一个子类,具有更多的属性和特性。

DirtySprite(*groups) -> DirtySprite

额外的DirtySprite属性及其默认值:

dirty = 1
如果设置为1,则重新绘制,然后再次设置为0

如果设置为2,则它总是脏的(重新绘制每个帧,flag未重置)

0表示它不脏,因此不会重新喷绘

blendmode = 0 blit,blendmodes的特殊flags参数
source_rect = None
要使用的源rect,相对于self.imaged的topleft(0,0)

visible = 1
通常为1,如果设置为0,则不会重新喷绘(必须将其设置为脏的以便从屏幕上删除)

layer = 0
只读值,将其添加到LayeredDirty时可读(详见LayeredDirty文档)

pygame.sprite.Group 用于保存和管理多重精灵对象的容器类。

Group(*sprites) -> Group

简单的精灵对象的容器。可以继承该类以创建具有更特定行为的容器。构造函数接受任意数量的精灵参数添加到组类中。该组类支持以下标准的Python操作:

in 测试一个精灵是否被包含在内
len 包含的精灵数
bool 测试是否包含任何精灵
iter 遍历所有精灵

组类中的精灵没有顺序,因此绘制和迭代精灵没有特定的顺序。

pygame.sprite.Group.sprites() 此组类包含的精灵列表

sprites() -> sprite_list

返回此组类包含的所有精灵的列表。也可以从组类中获取迭代器,但在修改组类时不能对其进行迭代器操作。

pygame.sprite.Group.copy() 复制组类

copy() -> Group

创建一个与原始组类具有相同精灵的新组类。如果有子类组类,则新对象将具有与原始对象相同的(子)类。仅当派生类的构造函数采用与组类相同的参数时,此操作才有效。

pygame.sprite.Group.add() 将精灵添加到此组类

add(*sprites) -> None

将任意数量的精灵添加到此组。此方法只会将精灵添加进尚未成为成员的组类中。
每个精灵参数也可以是包含精灵的迭代器。

pygame.sprite.Group.remove() 从组类中移除精灵

remove(*sprites) -> None

从组中移除任意数量的精灵,将只删除已经是组类成员的精灵。
每个精灵参数也可以是包含精灵的迭代器。

pygame.sprite.Group.has() 测试组类是否包含精灵

has(*sprites) -> bool

如果组类包含所有给定的精灵,则返回True。这类似于在组类上使用“in”运算符(“if sprite in Group:…”)测试单个sprite是否属于组。
每个精灵参数也可以是包含精灵的迭代器。

pygame.sprite.Group.update() 对包含的精灵调用update方法

update(*args, **kwargs) -> None

对组类中的所有精灵调用 update() 方法。基础Sprite类有一个 update() 方法,该方法接收任意数量的参数但不执行任何操作。传递给 Group.update()的参数将传递给每个精灵。
无法从 Sprite.update() 方法获得返回值。

pygame.sprite.Group.draw() 位块传输精灵images

draw(Surface) -> None

将包含的精灵绘制到Surface参数。使用 Sprite.image 属性和 Sprite.rect 属性作为源surface的属性。
组类不按任何顺序保存精灵,因此绘制顺序是任意的。

pygame.sprite.Group.clear() 在精灵上(覆盖)绘制背景

clear(Surface_dest, background) -> None

删除上次使用 Group.draw()绘制的精灵。通过用背景填充绘制的精灵位置来清除目标Surface。
背景通常是与目标Surface尺寸相同的Surface image。但是,它也可以是一个有两个参数【目标Surface和要清除的区域】的回调函数。后台回调函数将在每次清除时调用多次。下面是一个回调示例,它将清除纯红的精灵:

def clear_callback(surf, rect):
    color = 255, 0, 0
    surf.fill(color, rect)

pygame.sprite.Group.empty() 移除所有精灵

empty() -> None
从该组中删除所有精灵。

pygame.sprite.RenderPlain

功能:等同于 pygame.sprite.Group。 这个类是pygame.sprite.Group()的别称。它没有额外的功能。

pygame.sprite.RenderClear

功能:等同于 pygame.sprite.Group。 这个类是pygame.sprite.Group()的别称。它没有额外的功能。

pygame.sprite.RenderUpdates 跟踪脏更新的组类子类。

属性:RenderUpdates(*sprites) -> RenderUpdates

这个类派生自 pygame.sprite.Group()。它有一个扩展的 draw() 方法,用于跟踪屏幕的更改区域。

pygame.sprite.RenderUpdates.draw() 位块传输精灵images并跟踪更改的区域

draw(surface) -> Rect_list

将所有精灵绘制到Surface,等同于 Group.draw()。此方法还返回屏幕上一个已更改的矩形区域的列表。返回的更改包括受前一个 Group.clear()调用影响的屏幕区域。
返回的Rect列表会传递给pygame.display.update()。 这将有助于提高软件驱动显示模式的性能。这种类型的更新通常只对具有非动画背景的目标有用。

pygame.sprite.OrderedUpdates() RenderUpdates子类,按添加顺序绘制精灵。

属性:OrderedUpdates(*spites) -> OrderedUpdates

这个类派生自 pygame.sprite.RenderUpdates()。它维持将精灵添加到组类中进行渲染的顺序。这使得在组类中添加和移除精灵的速度比常规组类稍慢。

pygame.sprite.LayeredUpdates 图层类

LayeredUpdates是一个精灵组,处理层和绘制【like OrderedUpdates】。

属性:LayeredUpdates(*spites, **kwargs) -> LayeredUpdates

此组可以与pygame.sprite.Sprite完全兼容。
可以使用’default_layer’或一个整数来通过kwargs设置默认图层。默认层为0。

如果添加的精灵有一个属性层,则将使用该层。如果kwarg包含“layer”,则传递的精灵将添加到该层(重写sprite.layer属性)。如果精灵既没有属性层也没有kwarg,则使用默认层添加精灵。

New in pygame 1.8.

pygame.sprite.LayeredUpdates.add() 将一个精灵或精灵序列添加到一个组中

属性:add(*sprites, **kwargs) -> None

如果 sprite(s)(精灵)有一个属性层,则该属性层用于该层。如果**kwargs包含“layer”,则 sprite(s) 将被添加到该参数中(重写精灵层属性)。如果两者都不通过,则 sprite(s) 将添加到默认层。

pygame.sprite.LayeredUpdates.sprites() 返回精灵的有序列表(第一个在下,最后一个上)

属性:sprites() -> sprites

pygame.sprite.LayeredUpdates.draw()

功能:按正确顺序将所有精灵绘制到传递的Surface上。

属性:draw(surface) -> Rect_list

pygame.sprite.LayeredUpdates.get_sprites_at()

功能:返回一个包含该位置所有精灵的列表(第一个在下,最后一个上)

属性:get_sprites_at(pos) -> colliding_sprites

pygame.sprite.LayeredUpdates.get_sprite()

功能:从组精灵中返回索引idx处的精灵

属性:get_sprite(idx) -> sprite

如果idx不在范围内,则引发 IndexOutOfBounds 。

pygame.sprite.LayeredUpdates.remove_sprites_of_layer()

功能:从层中移除所有精灵并将其作为列表返回。

属性:remove_sprites_of_layer(layer_nr) -> sprites

pygame.sprite.LayeredUpdates.layers()

功能:返回定义的(唯一的)图层列表,从下到上排序。

属性:layers() -> layers

pygame.sprite.LayeredUpdates.change_layer()

功能:更改精灵的层

属性:change_layer(sprite, new_layer) -> None

必须事先将精灵添加到渲染器中。注意检查。

pygame.sprite.LayeredUpdates.get_layer_of_sprite()

功能:返回精灵当前所在的层。

属性:get_layer_of_sprite(sprite) -> layer

如果找不到精灵,它将返回默认层。

pygame.sprite.LayeredUpdates.get_top_layer()

功能:返回顶层

属性:get_top_layer() -> layer

pygame.sprite.LayeredUpdates.get_bottom_layer()

功能:返回底层

属性:get_bottom_layer() -> layer

pygame.sprite.LayeredUpdates.move_to_front()

功能:把精灵带到顶层

属性:move_to_front(sprite) -> None

将精灵置于最前面,将精灵层更改为最顶层(添加在该层的末尾)。

pygame.sprite.LayeredUpdates.move_to_back()

功能:将精灵移动到底层

属性:move_to_back(sprite) -> None

将精灵移动到底层,将其移到所有其他层的后面并添加一个附加层。

pygame.sprite.LayeredUpdates.get_top_sprite()

功能:返回最上面的精灵

属性:get_top_sprite() -> Sprite

pygame.sprite.LayeredUpdates.get_sprites_from_layer()

返回一个层中的所有精灵,按其添加位置排序:功能

属性:get_sprites_from_layer(layer) -> sprites

返回图层中的所有精灵,按其添加位置排序。它使用线性搜索,精灵不会从层中移除。

pygame.sprite.LayeredUpdates.switch_layer()

功能:将精灵从层1切换到层2

属性:switch_layer(layer1_nr, layer2_nr) -> None

层编号必须存在,注意检查。

pygame.sprite.LayeredDirty

功能:LayeredDirty组类用于DirtySprite对象。子类LayeredUpdates。

属性:LayeredDirty(*spites, **kwargs) -> LayeredDirty

此组类需要 pygame.sprite.DirtySprite 或具有以下属性的任何精灵:image, rect, dirty, visible, blendmode (see doc of DirtySprite).
此组类使用脏标志技术,因此比 pygame.sprite.RenderUpdates更快。如果程序有很多静态精灵,它还可以在脏的rect更新和全屏绘图之间自动切换。
与 pygame.sprite.Group 一样,可以通过kwargs指定一些其他属性:
_use_update True/False 默认是 False
_default_layer 没有图层添加的精灵的默认图层
_time_threshold
脏rect模式之间切换的阈值时间。全屏模式,默认为1000./80==1000./fps

New in pygame 1.8.

pygame.sprite.LayeredDirty.draw()

功能:按正确顺序将所有精灵绘制到被传递surface上。

属性:draw(surface, bgd=None) -> Rect_list

也可以传递背景。如果已设置背景,则bgd参数无效。

pygame.sprite.LayeredDirty.clear()

功能:用于设置背景

属性:clear(surface, bgd) -> None

pygame.sprite.LayeredDirty.repaint_rect()

功能:重新绘制给定区域,screen_rect 在屏幕坐标中。

属性:repaint_rect(screen_rect) -> None

pygame.sprite.LayeredDirty.set_clip()

功能:剪辑要绘制的区域。通过传递 None(默认值)以重置剪辑

属性:set_clip(screen_rect=None) -> None

pygame.sprite.LayeredDirty.get_clip()

功能:剪辑要绘制的区域。通过传递 None(默认值)以重置剪辑

属性:get_clip() -> Rect

pygame.sprite.LayeredDirty.change_layer()

功能:更改精灵的层

属性:change_layer(sprite, new_layer) -> None

必须事先将精灵添加到渲染器中,注意检查。

pygame.sprite.LayeredDirty.set_timing_treshold()

功能:以毫秒为单位设置阈值

属性:set_timing_treshold(time_ms) -> None

默认值是1000/80,其中80是切换到全屏模式的fps。此方法的名称有小错误。

Raises: TypeError --如果 time_ms 不是int或float
pygame.sprite.GroupSingle()
功能:保存单个精灵的组类容器。

属性:GroupSingle(sprite=None) -> GroupSingle

GroupSingle容器只保存一个精灵。添加新精灵时,旧精灵将被移除。
有一个特殊的属性【 GroupSingle.sprite】用以访问此组类包含的精灵。当组类为空时,显示 None 。还可以指定属性以将精灵添加到GroupSingle容器中。
pygame.sprite.spritecollide()
功能:在与另一个精灵相交的组类中查找精灵。

属性:spritecollide(sprite, group, dokill, collided = None) -> Sprite_list

返回一个列表,其中包含与另一个精灵相交的组中的所有精灵。相交就是比较每个精灵的 Sprite.rect 属性。
dokill参数是个布尔量。如果设置为True,则所有碰撞的精灵都将从组中移除。
碰撞参数是一个回调函数,用于计算两个精灵是否碰撞。它应该取两个精灵作为值,并返回一个bool值,指示它们是否发生碰撞。如果未碰撞,则所有精灵都必须具有“rect”值【精灵区域的矩形,用于计算碰撞】。collided 可调用参数:collide_rect, collide_rect_ratio, collide_circle,collide_circle_ratio, collide_mask。例如:

查看精灵块是否与组类block_list中的任何内容冲突

True标志将删除block_list中的精灵

blocks_hit_list = pygame.sprite.spritecollide(player, block_list, True)

检查碰撞精灵列表,并计数

for block in blocks_hit_list:
score +=1
​​​​​​​pygame.sprite.collide_rect()
功能:检测两个精灵之间的碰撞,使用rects表示。

属性:collide_rect(left, right) -> bool

测试两个精灵之间的碰撞。使用pygame rect colliderect函数计算碰撞。并作为碰撞回调函数传递给*collide函数。
精灵必须具有“rect”属性。
New in pygame 1.8.

pygame.sprite.collide_rect_ratio()
功能:两个精灵之间的碰撞检测,使用给定比例缩放的rects表示。

属性:collide_rect_ratio(ratio) -> collided_callable

一个检查两个精灵之间碰撞的可调用的类,使用精灵rects的缩放版本表示。
使用比率创建,然后将实例作为冲突回调函数传递给*collide函数。
比率是一个浮点数 – 1.0是相同的大小,2.0是两倍大,0.5是一半大
New in pygame 1.8.1.

pygame.sprite.collide_circle()
功能:检测两个精灵之间的碰撞,使用圆表示。

属性:collide_circle(left, right) -> bool

测试两个精灵之间的碰撞,方法是测试以精灵为中心的两个圆是否重叠。如果精灵有一个“radius”属性,该属性用于创建圆,否则将创建一个大到足以完全包围精灵“rect”属性的圆。并作为冲突回调函数传递给*collide函数。
精灵必须有一个“rect”和一个可选的“radius”属性。
New in pygame 1.8.1.

pygame.sprite.collide_circle_ratio()
功能:两个精灵之间的碰撞检测,使用给定比例缩放的圆表示。

属性:collide_circle_ratio(ratio) -> collided_callable

一个检查两个精灵之间碰撞的可调用的类,使用精灵radius的缩放版本表示。
使用浮点比率创建,然后将实例作为冲突回调函数传递给collide函数。
比率是一个浮点数 – 1.0是相同的大小,2.0是两倍大,0.5是一半大。
创建的两个精灵之间碰撞的可调用测试,方法是在按存储的比率缩放圆半径后,测试以精灵为中心的两个圆是否重叠。如果精灵有一个“radius”属性,该属性用于创建圆,否则将创建一个大到足以完全包围精灵rect”属性的圆。并作为冲突回调函数传递给
collide函数。
精灵必须有一个“rect”和一个可选的“radius”属性。
New in pygame 1.8.1.

pygame.sprite.collide_mask()
功能:两个精灵之间的碰撞检测,使用mask表示。

属性:

collide_mask(sprite1, sprite2) -> (int, int)
collide_mask(sprite1, sprite2) -> None
通过测试两个精灵的位掩码是否重叠(使用 pygame.mask.Mask.overlap())检测碰撞。如果精灵具有 mask 属性,则将其用作掩码,否则将从精灵的 image属性创建掩码(使用 pygame.mask.from_surface())。精灵必须具有 rect 属性; mask 属性是可选的。
返回掩码之间的第一个碰撞点。碰撞点的坐标原点是精灵1的掩码左上角【始终视为(0,0)】。碰撞点是掩码内的一个位置,与精灵1的实际屏幕位置无关。
此函数将作为碰撞回调函数传递给组类碰撞函数(请参见spritecollide()、group collide()、spritecollideany())。
注意:

若要提高性能,请为将使用此函数检查碰撞的所有精灵创建并设置 mask 属性。否则,每次调用此函数时,它都将创建新的掩码。
每次更改精灵的图像时(例如,如果使用新图像或旋转现有图像),都需要重新创建一个新的掩码。

为精灵创建掩码的示例。

sprite.mask = pygame.mask.from_surface(sprite.image)
Returns: 掩码之间的第一个冲突点;如果没有冲突,则返回 None
Return type: tuple(int, int) 或 NoneType
New in pygame 1.8.0.

pygame.sprite.groupcollide()
功能:查找两个组之间碰撞的所有精灵

属性:groupcollide(group1, group2, dokill1, dokill2, collided = None) -> Sprite_dict

此方法将查找两个组中所有精灵之间的碰撞。碰撞是通过比较每个精灵的 Sprite.rect 属性,如果,或者使用collided函数【其参数不是None时】。
group1中的每个精灵都会被添加到返回字典中。每个项的值是group2中相交的精灵列表。
如果dokill参数为真,碰撞的精灵将从各自的组类中移除。
碰撞参数是一个回调函数,用于计算两个精灵是否碰撞。它应该取两个精灵作为值,并返回一个bool值,指示它们是否发生碰撞。如果未发生碰撞,则所有精灵都必须具有一个“rect”值【精灵区域的矩形,用于计算碰撞】。
pygame.sprite.spritecollideany()
功能:简单测试一个精灵是否与一组中的 anything 相交。

属性:

spritecollideany(sprite, group, collided = None) -> Sprite Collision with the returned sprite.
spritecollideany(sprite, group, collided = None) -> None No collision
如果精灵与组中的任何单个精灵碰撞,则返回组中的单个精灵。无碰撞时返回None。
如果你不需要pygame.sprite.spritecollide() 函数的所有特征,此函数将快一点。
碰撞参数是一个回调函数,用于计算两个精灵是否碰撞。它应该取两个精灵作为值,并返回一个bool值,指示它们是否发生碰撞。如果未发生碰撞,则所有精灵都必须具有一个“rect”值【精灵区域的矩形,用于计算碰撞】。文章来源地址https://www.toymoban.com/news/detail-700457.html

到了这里,关于【pygame】Sprite类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 模块十一:sprite模块

    sprite模块是一个主要用来实现精灵的模块,在pygame中,精灵可以认为是一张张可以在屏幕中移动的小图片,并且可以和其他图形对象交互。精灵可以是pygame绘制的图像,也可以是其他途径生成的图像。在pygame中,精灵用Sprite对象来表示,使用时不需要实例化,而是继承这个类

    2024年02月08日
    浏览(22)
  • Unity创建sprite动画【2】

    前提:拥有多张sprite。 步骤一:在Hierarchy中创建一个Sprite对象,命名S1. 步骤二:点击window→animation→animation,打开Animation视窗。 点击视窗中的create。会弹出保存动画位置,在assets视窗中建立文件夹animations, 命名A1并保存。 步骤三: 将多张sprite拖到create按钮所在的时间轴面板

    2024年02月14日
    浏览(28)
  • Unity 代码动态改变Sprite的实验

    在我的Resources文件夹在建立了一个General文件夹,文件夹下有一个叫General的PNG文件。 自己想用代码调用该文件的图片内容。 测试后没有一个能调用到图片的。 于是在网上找到了新的代码:在原来的代码中加入 Sprite 这次发现正确的代码是: Sprite spriteTest3 = Resources.LoadSprite(\\\"

    2024年02月06日
    浏览(33)
  • Unity2021 Sprite图像不显示 问题解决

    创建Sprite后 图片在Scene中显示,在Game中却无法显示。 问题出在Camera未照到 解决办法: 点击Camera,调整位置,直到图片显示。  

    2024年02月16日
    浏览(36)
  • 【CocosCreator入门】CocosCreator组件 | Sprite(精灵)组件

            Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中 Sprite 组件是最常用的之一。Sprite 组件用于渲染 2D 图像,并提供了许多可配置的选项,如图像纹理、尺寸、位置、旋转等。在本文中,我们将深入探讨 Sprite 组件的技术实现和使用方法。 目录

    2023年04月15日
    浏览(73)
  • Unity把png图片转换为sprite格式

    最近自己在做游戏项目,经常碰到导入的图片是png格式,但是要转换为sprite格式才能应用。以下是转换的简单方式,不需要代码的。                                                                        1选中要转换的png图片,在Inspector窗口查看属性   2在窗口中找

    2024年02月12日
    浏览(34)
  • 【Unity 学习笔记】 Sprite的部分属性和功能

    在unity2D中,每导入一个图片资源,unity都会为其添加一些属性,这些属性可以在对应图片资源的Inspector中查看。在unity中,图片资源被称作sprite,翻译成中文就是“精灵”。精灵sprite指的是一张集成场景中的一部分图像,个人形象地理解就是unity中的图片资源都是游戏场景(或

    2024年02月07日
    浏览(26)
  • [Unity] ShaderGraph实现Sprite图片描边/发光效果

    使用版本为:2022.3.10f1  [原始图]      [运行前]      [运行后] 更详细的实现逻辑及步骤参考CodeMonkey的视频: https://youtu.be/FvQFhkS90nI?si=zy6XRlqGnzIdQkqD OS:猴子老师,我永远的神!!! 目录 一、准备工作 二、偏移效果与颜色叠加 三、单侧描边与原理 四、另一侧与Sub管理 五、

    2024年01月20日
    浏览(36)
  • 【Unity Optimize】使用图集(Sprite Atlas)优化项目

    Unity中的图集(Sprite Atlas)是一种用于优化游戏性能和内存的纹理集。Sprite Atlas 可以应用于 2D 和 3D 项目中的 UI、粒子系统、贴图等等。 使用Unity可以很方便地创建Sprite Atlas,只需要创建一个Sprite Atlas GameObject,然后将纹理分配给它。在创建Sprite Atlas时,需要将纹理名称按角色

    2024年02月14日
    浏览(28)
  • Unity 如何通过2D Sprite切割一张图为多张

    1、理解 在一些2D游戏开发中,我们常常使用2D Sprite把一张大图切割成多个小图使用。 这样做有不少好处,首先,通过精准使用小图,能够一定程度上节省内存,提高渲染性能。 其次把同类的小图做成一张大图在切割使用会更方便我们进行对资源的管理。 再者,在2D游戏中通

    2024年04月26日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包