新手在这里,试图从大学级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
与平台互动 - 而且它的工作非常好。它只是重塑自身而非旋转的“手”。这是一个例子。 它还可以将自身压缩为基本矩形顶部的小矩形。我没有最模糊的想法是怎么回事;有没有人有任何想法?