我目前工作的一个名为Table战争,一个回合制策略游戏两名球员的比赛。 进展一直都很顺利,直到我遇到了与产卵单位的问题。
该程序将不生成同一单元的多个,或重生新的旧的死了以后。
下面是一些信息,可以帮助:
- 每个类存储在一个变量:(
redI = Red_Infantry()
- 所有功能都存储在主回路。
- 子画面类具有硬编码的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死了,就不会再回来,如果我尝试产卵它。