微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pygame - 在中心周围创建一个旋转弹丸

如何解决Pygame - 在中心周围创建一个旋转弹丸

我的问题更像是一个数学问题,由于我不太擅长数学,我想寻求帮助或任何想法。我想创建可以围绕敌人中心创建螺旋或围绕敌人中心旋转的射弹,如下图所示。现在,我只创建了敌人向各个方向随机发射弹丸,如您在视频中看到的那样。对某些数学公式有什么想法或如何做?

图片

enter image description here

视频: https://vimeo.com/534844958

每当敌人射击时,我都会在每个方向创建 4 个敌人射弹的对象,这是射弹移动的代码。这对我的问题并不重要,但至少你可以看到它是如何完成的。

class Enemy_projectile:
    projectiles = []

    def __init__(self,color,x,y,size,veLocity,direction,position):
        self.color = color
        self.x = x
        self.y = y
        self.size = size
        self.veLocity = veLocity
        self.hitBox = (self.x - self.size,self.y - 2,self.size * 2,self.size * 2)
        self.direction = direction # -1 or 1
        self.position= position # x or y

    def shoot(self,window):
        py.draw.circle(window,self.color,(self.x,self.y),self.size)
        if self.position == 1:
            self.y += self.veLocity * self.direction
        else:
            self.x += self.veLocity * self.direction
        self.hitBox = (self.x - self.size,self.size * 2)
        projectile_border = py.Rect(self.hitBox)
        if hitBoxes:
            py.draw.rect(window,(255,0),self.hitBox,2)
        if self.x >= width_window or self.x <= 0 or self.y >= height_window or self.y <= 0:
            Enemy_projectile.projectiles.remove(self)

        for element in Element.elements:
            element_border = py.Rect(element.hitBox)
            collision = element_border.colliderect(projectile_border)
            if collision:
                Enemy_projectile.projectiles.remove(self)


# This for loop runs in while loop
for projectile in Enemy_projectile.projectiles:
    projectile.shoot(window)


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。