【问题标题】:Can you shift an images' rect center?你可以移动图像的矩形中心吗?
【发布时间】:2020-06-09 21:38:10
【问题描述】:

我的图像的矩形就在图像的右侧,我想将矩形向左移动几个像素或向右移动图像。另外有没有办法向下移动矩形或使顶部更小而矩形底部保持不变?

PLAYER_RECT_HIT = py.Rect(0, 0, 33, 33)
class Player(py.sprite.Sprite):
    def __init__(self, game, x, y):
        self._layer = PLAYER_LAYER
        self.groups = game.all_sprites
        py.sprite.Sprite.__init__(self, self.groups)
        self.game = game
        self.running = False
        self.jumping = False
        self.wallSlide = False
        self.current_frame = 0
        self.last_update = 0
        self.load_images()
        self.image = self.idle_frames[0]
        self.rect = self.image.get_rect()
        self.rect.center = (x, y)
        self.hit_rect = PLAYER_RECT_HIT
        self.hit_rect.center = self.rect.center
        self.pos = vec(x, y)
        self.vel = vec(0, 0)
        self.acc = vec(0, 0)

这是一个例子,红色框是我的矩形,我想把它移到左边,使我的图像接触到蓝色框的矩形

【问题讨论】:

  • 我的图片的矩形就在图片的右边这到底是什么意思?你打电话给self.rect = self.image.get_rect(),所以矩形就是图像的大小。

标签: python pygame collision rect


【解决方案1】:

如果你想让矩形的顶部更小而底部保持不变,你可以这样做:

newRect = pygame.Rect(
    oldRect.top - 10, 
    oldRect.left, 
    oldRect.width - 10, 
    oldRect.height
)

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2017-07-26
    • 2019-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    相关资源
    最近更新 更多