【问题标题】:pygame sprite tagging and analyzing the distance between several sprites and one spritepygame精灵标记和分析几个精灵和一个精灵之间的距离
【发布时间】:2022-11-04 17:31:37
【问题描述】:

我试图为我的 pygame 测试(确定我应该使用什么功能的简单测试)项目描绘我的进度图表,这是图表:

1.调用播放器:

让玩家成为all_sprite(),球员()团体,

射击()每一秒的技能。

2.召唤敌人:

把敌人变成all_sprite(),暴徒()团体,

并逐渐靠近玩家。

3.调用技能

射击():

把技能变成all_sprite(),技能()

每秒技能会链接到离玩家最近的敌人

并且可能标记这两个或其他方式以确保它们最终会发生碰撞

4.攻击:

当技能连接到敌人时,技能会以相同的速度接近移动的敌人。

这是我为要显示的功能设计的简要进度图,但是,当porgram运行时,屏幕上必须存在多个Enemies,我如何在每次Player射击技能时分析所有Enemies的位置?

我使用代码

`

for i in range(8):
    enemy = Enemy()
    all_sprites.add(enemy)
    mob.add(enemy)

`

从不同方向同时召唤8个敌人,如何检查每个人的位置和标签或使其有编号?例如,对于 O(0, 0) 处的 Player,A(10, 15) 处的 EnemyA,B(20, 15) 处的 EnemyB,(3, 4) 处的 EnemyC,当 Skill1 被击出时,它会链接到 EnemyC而它是离播放器最近的。

还是我应该使用不同的方式来召唤敌人?
另外,我应该如何使标记为与它相关的敌人接近的技能?

【问题讨论】:

    标签: python pygame position sprite


    【解决方案1】:

    可以在这里使用三角函数

    import math
    
    def measure_distance(x1, y1, x2, y2):
        dx = abs(x2-x1)
        dy = abs(y2-y1)
        distance = math.sqrt((dx*dx)+(dy*dy))
        return distance
    

    然后比较A-O和B-O的距离

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多