我正在做一个射击游戏,你作为玩家看到整个战场,你的任务是杀死从左到右的敌人。每一次鼠标点击都是一次射击,这应该会杀死一个敌人,但是当一个地方有几个敌人时,他们都会被鼠标点击杀死。我用pygame.sprite.Group来对付敌人。
def events(self):
for event in pg.event.get():
if event.type == pg.QUIT:
self.__running = False
if event.type == pg.MOUSEBUTTONDOWN and event.button ==
我有一个代码,我随机生成敌人的产卵位置,但我想排除一些区域,因为它是与一些不应该与之碰撞的精灵。
这是我从敌人来自的地方(从上、下、左和右)生成随机点的代码:
int z = ran.nextInt(4);
int r1 = ran.nextInt(GameControl.CAMARA_WIDTH+1);
int r2 = ran.nextInt(GameControl.CAMARA_WIDTH+ 1);
int r3 = ran.nextInt(GameControl.CAMARA_HEIGHT+ 1);
int r4 = ran.nextInt(ControlJuego.CAMARA_HE
我有一组精灵,我正在试着测试碰撞。然而,我似乎在我的玩家精灵和我的敌人精灵之间立即得到了很多碰撞。
我试过了:
hits = pygame.sprite.spritecollide(player, enemy_list, True)
print "hits is this long: " + str(len(hits))
for i in hits:
player.damage()
但这会立刻杀死我所有的敌人。我包含了
self.rect = self.image.get_rect()
在物体上。
然后我试过了:
for o in enemy_list:
o.d
我正在建立我在Swift的第一场比赛,我想知道如何一次处理多个屏幕上的精灵。我的游戏不断地用addChild把精灵推到屏幕上,所以一次有很多活动。我意识到我没有一个正确的方法同时影响他们--就像我想同时影响所有敌人精灵的物理属性一样。到目前为止,我在var enemySprites = [enemyType1]()一开始就创建了一个空数组GameScene,并且已经将雪碧实例作为appending,而不是使用addChild将它们直接绘制到场景中。但是,我不能简单地循环并绘制它们,以便使用:
for enemy in enemySprites{
addChild(ene
因此,我目前正在计划制作一个相对基础的游戏,其中包括敌人向玩家的“基地”进发,该基地将直接位于屏幕的中心。我正在努力寻找一种方法,让我可以从屏幕的各个方面产生这些敌人,但只在屏幕的边缘。下面是我为敌人精灵创建的基本类,以及我试图在屏幕外部的位置生成它们的尝试。在大多数情况下,它是有效的,除了它永远不会在我的屏幕底部外部产生任何精灵,因为我不确定如何使Y坐标在0,80或600,680之间的随机数。而且,这似乎不是分配X和Y值的最有效的方法。如有任何建议或帮助,我将不胜感激。我使用的屏幕尺寸是800x680,谢谢。
class Enemy(pygame.sprite.Sprite):
def __