当我尝试旋转它时,Pygame rect会扩展和收缩吗?

时间:2017-05-19 20:04:22

标签: python pygame

新手在这里,试图从大学级C ++的背景中找出pygame(以及Python的复杂性,我猜)。我已经得到了一个基本的平台机制,主要是通过查看示例程序 - 我正在制作一个小矩形跳转一轮。我正在尝试添加第二个矩形,附加到第一个矩形,其末端将跟随鼠标。但是,我当前的方法不起作用,而且 - 奇怪的是 - 精灵在“基础”内调整大小而不是旋转。

这是我的__init__方法。道歉的格式,它只是没有

class Player(_Physics):
    def __init__(self,location,speed):
        _Physics.__init__(self)
        self.image = pg.image.load('playertst.png')
        self.rect = self.image.get_rect(topleft=location)
        self.speed = speed
        self.jump_power = -9.0
        self.jump_cut_magnitude = -3.0
        self.on_moving = False
        self.collide_below = False

        self.original_hand = pg.image.load('playertst2.png')
        self.fake_hand = self.original_hand.copy()
        self.hand = self.original_hand.copy()
        self.hand_rect = self.hand.get_rect(topleft=location)
        self.angle = self.get_angle(pg.mouse.get_pos())

get_angle方法显然出现了问题,所以这就是:

def get_angle(self,mouse):
    offset = (mouse[1]-self.hand_rect.centery, mouse[0]-self.hand_rect.centerx) 
    self.angle = 135-math.degrees(math.atan2(*offset))
    self.hand = pg.transform.rotate(self.original_hand, self.angle)
    self.hand_rect = self.hand.get_rect(topleft=self.rect.topleft)

这两个人通常都是blitted,只有self.rect与平台互动 - 而且它的工作非常好。它只是重塑自身而非旋转的“手”。这是一个例子。 I can't animate it, so I can't show it happening.它还可以将自身压缩为基本矩形顶部的小矩形。我没有最模糊的想法是怎么回事;有没有人有任何想法?

0 个答案:

没有答案