将玩家移向宇宙飞船和单位 x 时间 Pygame

时间:2021-07-28 20:41:27

标签: python-3.x pygame pygame2

你好,我正在用 python 做一个小游戏,我的主要想法是抓住一个单位,如果它大于 1 (2,3,4) 玩家应该去那次宇宙飞船并返回同样的 n 次去抓住单位,所以它会是这样的: 如果单位为 2,玩家应该去飞船交付一个单位并返回第二个单位,依此类推,但我无法弄清楚,也不知道最后是否可以删除该单位在循环中,我使用 spritecollide 来知道我的玩家何时应该返回单位或飞船

hasunit 和 isgoingback 在开始时设置为 False

spaceship_units 和 score 应该是一样的

 if self.hasunit == False & self.isgoingback == False:
    # If player collides with unit
        if pygame.sprite.spritecollide(self, unit_group, False):
            unitx = self.rect.x
            unity = self.rect.y
            if unitsize == 1:
                self.carrryingunit += unitsize
                self.hasunit = True
                self.isgoingback = False
            elif unitsize >= 2:
                self.carrryingunit += unitsize
                self.hasunit = True
                self.unitsleft = unitsize - 1
                self.isgoingback = True
               
                
                
                
    elif self.hasunit == True & self.isgoingback == False: #If only one unit
        if(self.rect.x > spaceship_x):
            dx -= 1
        else:
            dx += 1
        if(self.rect.y < spaceship_y):
            dy += 1
        else:
            dy -= 1
        if pygame.sprite.spritecollide(self, spaceship_group, False):
            score += self.carrryingunit
            spaceship_units += self.carrryingunit
            self.hasunit = False
            self.isgoingback = False
            self.carrryingunit = 0
    
    elif self.hasunit == True & self.isgoingback == True: #If bigger than 2 units
        for i in range(1,self.unitsleft,1):
            if(self.rect.x > spaceship_x):
                dx -= 1
            else:
                dx += 1
            if(self.rect.y < spaceship_y):
                dy += 1
            else:
                dy -= 1
            if pygame.sprite.spritecollide(self, spaceship_group, False):
                score += 1
                spaceship_units += 1
                self.carrryingunit = 0
                if(self.rect.x > unitx):
                    dx -= 1
                else:
                    dx += 1
                if(self.rect.y < unity):
                    dy += 1
                else:
                    dy -= 1
                
        score += 1
        spaceship_units += 1
        self.hasunit == False
        self.isgoingback == False

0 个答案:

没有答案