下面的代码是我正在编写的游戏中npc类的一个绘图函数(源代码:https://github.com/hailfire006/games/blob/master/strategy%20gamev2),除了这一行之外,它都很好用
pygame.transform.rotate(self.sprite.image,angle)它应该使全国人民代表大会转向它要移动的点。不管是什么原因,它都不是旋转的。我认为这可能与我没有将这个函数的结果存储到一个变量的事实有关,但我不确定。
其馀职能如下:
target = get_target(self)
if target != 0:
angle = math.degrees(math.atan2(self.x - target[0], self.y - target[1])) + 90
self.sprite.image = pygame.transform.rotate(self.sprite.image,angle)
self.shoot(target)
if self.moving != False:
if abs(self.x - self.moving[0]) < 3 and abs(self.y - self.moving[1]) < 3:
self.moving = False
else:
self.move(self.moving)
if target == 0:
angle = math.degrees(math.atan2(self.x - self.moving[0], self.y - self.moving[1])) + 90
pygame.transform.rotate(self.sprite.image,angle)
if self.hp <= 0:
objects.remove(self)
return
self.sprite.rect = self.sprite.image.get_rect()
self.sprite.rect.topleft = [self.x - 20, self.y - 20]
window.blit(self.sprite.image, self.sprite.rect)发布于 2015-09-17 03:26:54
你需要一个self._base_sprite和一个self._active_sprite
将init代码设置为初始化_base_sprite,然后从以下位置更改行:
pygame.transform.rotate(self.sprite.image,angle)至:
self._active_sprite = pygame.transform.rotate(self._base_sprite.image,angle)然后把你的能动的精灵
理由是:
此外,您的.rect调整代码可能只应该在init函数中完成。我猜你是想调整雪碧的中心?
编辑:注意,this question here是高度相关的(并且在侧栏中)。
https://stackoverflow.com/questions/32621960
复制相似问题