我目前正在开发一款名为 Table Wars 的游戏,这是一款面向两名玩家的回合制策略游戏。进展一直很顺利,直到我遇到了生成单位的问题。
该程序不会产生多个相同的单位,也不会在旧单位死亡后重新产生新单位。
以下是一些可能有帮助的信息:
- 每个类都存储在一个变量中: (
redI = Red_Infantry()
) - 所有函数都存储在主循环中。
- sprite 类具有硬编码的 X 和 Y 值,用于生成单位和移动单位。
我应该怎么办?
根据要求,这是红步兵的课程:
class Red_Infantry(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image, self.rect = load_image('Soldier_red.png', -1)
self.selected = 0
self.area = screen.get_rect()
self.rect.topleft = (100, 300)
self.health = 100 #Soldiers are have mediocre toughness.
self.attack_damage = 25
self.range_maximum = 20 #in pixels, this is melee range
self.range_minimum = 0
self.update()
def update(self):
if self.health <= 0:
self.kill()
以及生成这个单元的代码:
if spawned_units < 3 and PHASE == 1 and TURN == 'Red':
if REDGOLD < 10:
print "Out of money! Moving to Phase 2!"
PHASE = 2
spawned_units = 0
elif event.type == KEYDOWN and event.key == K_1:
if REDGOLD >= 10 and REDCOMMAND >= 5:
Sprites.append(redI)
REDGOLD -= 10
REDCOMMAND -= 5
spawned_units = spawned_units + 1
else:
print "Not enough gold!"
这与所有单位的风格相似。它第一次正确执行,但在第二次、第三次等等中都没有,这意味着我只能拥有一个士兵。此外,当那个士兵通过 self.kill 死亡时,如果我尝试生成它,它就不会回来。