作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创造了一个连续射击的炮塔。但是,我想让它转向不断产卵的僵尸。我设法让炮塔瞄准玩家,因为我已经初始化了它:
if tile_object.name == 'player':
self.player = Player(self, obj_center.x, obj_center.y)
那么目标是:'self.player'。虽然,对于僵尸我是这样初始化的:
if tile_object.name == 'zombie':
Mob(self, obj_center.x, obj_center.y, 'normal', 420)
之后我尝试给它设置game.mobs(而不是game.player)的目标,它提示群怪没有possess属性'pos',我很确定它确实有。
class Turret(pg.sprite.Sprite):
def __init__(self, game, x, y):
self.last_shot = 0
self.maxforce = 0.1
self.damage = 0
self.detect_radi = 360
self._layer = MOB_LAYER
self.groups = game.all_sprites, game.turrets
self.image = game.turret_img.copy()
self.rect = self.image.get_rect()
self.rect.center = (x, y)
self.hit_rect = MOB_HIT_RECT.copy()
self.hit_rect.center = self.rect.center
self.weapon = 'pistol'
pg.sprite.Sprite.__init__(self, self.groups)
self.game = game
self.rect = self.image.get_rect()
self.rect.center = (x, y)
self.pos = vec(x, y)
self.rect.center = self.pos
self.rot = 0
############## HERE IS WHERE THE ISSUE IS ##############
self.target = game.mobs
def update(self):
target_dist = self.target.pos - self.pos
if target_dist.length_squared() < self.detect_radi**2:
self.rot = target_dist.angle_to(vec(1, 0))
self.image = pg.transform.rotate(self.game.turret_img, self.rot)
self.rect.center = self.pos
self.acc = vec(1, 0).rotate(-self.rot)
self.shoot(self.weapon)
非常感谢任何帮助,因为当我试图让炮塔瞄准暴徒时,我感到完全迷失了......
最佳答案
it prompts that the group mobs do not posess the attribute 'pos', which i am very sure it does."*
pos
属性,但包含怪物的组没有
pos
属性。
target_dist = None
for mob in self.target:
dist = mob.pos - self.pos
if target_dist == None or dist.length_squared() < target_dist.length_squared()
target_dist = dist
注意:如果
self.target
不包含任何敌人,您需要实现一个额外的案例。
关于class - PYGAME - 使一个对象朝向自动生成的对象旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65170383/
作为一个在*NIX系统(OS X,Ubuntu,......这需要设置 JAVA_HOME : 例如 MAVEN : "JAVA_HOME,指的是你的JDK目录" HADOOP:“JAVA_HOME,
这个问题在这里已经有了答案: How do you find a float's nearest non-equal value? [duplicate] (3 个答案) 关闭 8 年前。 我正在尝
我是一名优秀的程序员,十分优秀!