0

ある画像が別の画像に当たるかどうかを手動で確認する必要があります。結果が得られないようです...これは私を夢中にさせています!!! 2日間試しましたが、うまくいきません。

Menu().main() などの他のコードは含めませんでしたが、うまく機能します。ゾンビがプレイヤーに乗っているときに true を返さない理由がわかりません。

class Game():

    def setup(self):
        global tiles
        for files in os.listdir(os.curdir):
            if files.endswith(".png") and files != "Player.png" and files != "Zombie.png":
                tilees.append(files)
                numtil = tilees.count(files)
                print("a " + str(numtil))

        fli = pygame.image.load(files).convert_alpha()

        i = 0

        while i <= 1000:
            tiles.append(fli)
            i = i + 1

        global TileLen
        TileLen = tiles.count(fli)

        Game().Game()

    def Game(self):
        global zomx, zomy, zombie, MMS, step, zombieRect
        zombieRect = []
        zomx = []
        zomy = []
        zombie = []
        step = 0
        HP = 15
        Map = pygame.image.load("BG.png").convert()
        Map = pygame.transform.scale(Map, (pygame.display.list_modes()[0]))

        person = pygame.image.load("Player.png").convert()
        person = pygame.transform.scale(person, (30, 30))

        dagger = pygame.image.load("Dagger.png").convert_alpha()
        dagger = pygame.transform.scale(dagger, (13, 13))

        screen.blit(Map, (0, 0))
        perx = 800
        pery = 700

        ai().zombieadd(MMS)

        screen.blit(person, (perx, pery))
        screen.blit(dagger, (perx+20, pery-5))

        global thething

        thething = 0
        for crap in zombie:

            screen.blit(zombie[thething], (zomx[thething], zomy[thething]))
            print(thething)
            thething = thething + 1

        pygame.display.flip()

        awesome = 1
        fttt = 0
        ff = 0
        ofx = 0
        ofy = 0

        while 1:
            print(perx, pery)
            for event in pygame.event.get():
                if event.type == QUIT:
                    pygame.quit()
                    sys.exit()
                elif event.type == KEYDOWN:
                    if event.key == K_w:
                        pery = pery - 5
                        if fttt != 1:
                            if awesome == 4:
                                dagger = pygame.transform.rotate(dagger, 270)
                                person = pygame.transform.rotate(person, 270)
                            elif awesome == 3:
                                dagger = pygame.transform.rotate(dagger, 90)
                                person = pygame.transform.rotate(person, 90)
                            elif awesome == 2:
                                dagger = pygame.transform.rotate(dagger, 180)
                                person = pygame.transform.rotate(person, 180)
                            person = pygame.transform.rotate(person, 0)
                            dagger = pygame.transform.rotate(dagger, 0)
                        awesome = 1
                        fttt = 1

                    elif event.key == K_s:
                        pery = pery + 5
                        if fttt != 2:
                            if awesome == 4:
                                dagger = pygame.transform.rotate(dagger, 270)
                                person = pygame.transform.rotate(person, 270)
                            elif awesome == 3:
                                dagger = pygame.transform.rotate(dagger, 90)
                                person = pygame.transform.rotate(person, 90)
                            person = pygame.transform.rotate(person, 180)
                            dagger = pygame.transform.rotate(dagger, 180)
                        awesome = 2
                        fttt = 2

                    elif event.key == K_a:
                        perx = perx - 5
                        if fttt != 3:
                            if awesome == 2:
                                dagger = pygame.transform.rotate(dagger, 180)
                                person = pygame.transform.rotate(person, 180)
                            elif awesome == 4:
                                dagger = pygame.transform.rotate(dagger, 270)
                                person = pygame.transform.rotate(person, 270)
                            person = pygame.transform.rotate(person, 270)
                            dagger = pygame.transform.rotate(dagger, 270)
                        awesome = 3
                        fttt = 3

                    elif event.key == K_d:
                        perx = perx + 5
                        if fttt != 4:
                            if awesome == 2:
                                dagger = pygame.transform.rotate(dagger, 180)
                                person = pygame.transform.rotate(person, 180)
                            elif awesome == 3:
                                dagger = pygame.transform.rotate(dagger, 90)
                                person = pygame.transform.rotate(person, 90)
                            person = pygame.transform.rotate(person, 90)
                            dagger = pygame.transform.rotate(dagger, 90)
                        awesome = 4
                        fttt = 4

                    elif event.key == K_e:
                        if awesome == 1:
                            while ofx >= -6:
                                ofx = ofx - 1
                                screen.blit(dagger, (perx+20, pery-5+ofx))
                                pygame.time.delay(1)
                                pygame.display.update()
                            if ofx <= -6:
                                ofx = 0
                        elif awesome == 2:
                            while ofx >= -6:
                                ofx = ofx - 1
                                screen.blit(dagger, (perx-5, pery+25-ofx))
                                pygame.time.delay(1)
                                pygame.display.update()
                            if ofx <= -6:
                                ofx = 0
                        if awesome == 3:
                            while ofx >= -6:
                                ofx = ofx - 1
                                screen.blit(dagger, (perx-5+ofx, pery-5))
                                pygame.time.delay(1)
                                pygame.display.update()
                            if ofx <= -6:
                                ofx = 0
                        if awesome == 4:
                            while ofx >= -6:
                                ofx = ofx - 1
                                screen.blit(dagger, (perx+20-ofx, pery+25))
                                pygame.time.delay(1)
                                pygame.display.update()
                            if ofx <= -6:
                                ofx = 0



            screen.blit(Map, (0, 0))
            screen.blit(person, (perx, pery))
            if awesome == 1:
                screen.blit(dagger, (perx+20, pery-5))
            elif awesome == 2:
                screen.blit(dagger, (perx-5, pery+25))
            elif awesome == 3:
                screen.blit(dagger, (perx-5, pery-5))
            else:
                screen.blit(dagger, (perx+20, pery+25))

            text = "Health: "+str(HP)
            font = pygame.font.Font(None, 32)
            ttex = font.render(text, True, (255, 0, 0))
            screen.blit(ttex, (30, 30))


            thecrap = 0
            while thecrap < thething:
                print(thecrap)
                screen.blit(zombie[thecrap], (zomx[thecrap], zomy[thecrap]))
                if perx >= zomx[thecrap]:
                    loop = 0
                    while loop <= 5:
                        zomx[thecrap] = zomx[thecrap] + .09
                        loop = loop + 1

                if pery >= zomy[thecrap]:
                    loop = 0
                    while loop <= 5:
                        zomy[thecrap] = zomy[thecrap] + .09
                        loop = loop + 1
                if perx <= zomx[thecrap]:
                    loop = 0
                    while loop <= 5:
                        zomx[thecrap] = zomx[thecrap] - .09
                        loop = loop + 1
                if pery <= zomy[thecrap]:
                    loop = 0
                    while loop <= 5:
                        zomy[thecrap] = zomy[thecrap] - .09
                        loop = loop + 1
                if person.get_rect().contains(pygame.Rect(zomx[thecrap], zomy[thecrap], 30, 30)):
                    HP = HP - .5
                thecrap = thecrap + 1
            thecrap = 0
            pygame.display.update()

            if HP <= 0:
                print("Game over! Sorry!")
                while 1:
                    abss = font.render("Sorry, but you lost! Press any key to continue...", True, (255, 255, 255))
                    pygame.display.update()
                    screen.blit(abss, (90, 90))

                    for event in pygame.event.get():
                        Menu().main()

class ai():

    def zombieadd(self, Num):
        global zomx, zomy, zombie, zombieRect
        zombieRect = []
        zombie = []
        global step

        step = 0
        print(Num)

        while Num > step:
            global zomx, zomy, zombie
            print(step)
            zomx.append(random.randint(0, 600))
            zomy.append(random.randint(0, 600))
            zombieI = pygame.image.load("Zombie.png").convert()
            zombie.append(zombieI)
            zombie[step] = pygame.transform.scale(zombie[step], (30, 30))
            print(zomx[step], zomy[step])
            zombieRect.append(zombie[step].get_rect())

            step = step + 1

        Num = 0

        return 0


Menu().main()

class Game():

    def setup(self):
        global tiles
        for files in os.listdir(os.curdir):
            if files.endswith(".png") and files != "Player.png" and files != "Zombie.png":
                tilees.append(files)
                numtil = tilees.count(files)
                print("a " + str(numtil))

        fli = pygame.image.load(files).convert_alpha()

        i = 0

        while i <= 1000:
            tiles.append(fli)
            i = i + 1

        global TileLen
        TileLen = tiles.count(fli)

        Game().Game()

    def Game(self):
        global zomx, zomy, zombie, MMS, step, zombieRect
        zombieRect = []
        zomx = []
        zomy = []
        zombie = []
        step = 0
        HP = 15
        Map = pygame.image.load("BG.png").convert()
        Map = pygame.transform.scale(Map, (pygame.display.list_modes()[0]))

        person = pygame.image.load("Player.png").convert()
        person = pygame.transform.scale(person, (30, 30))

        dagger = pygame.image.load("Dagger.png").convert_alpha()
        dagger = pygame.transform.scale(dagger, (13, 13))

        screen.blit(Map, (0, 0))
        perx = 800
        pery = 700

        ai().zombieadd(MMS)

        screen.blit(person, (perx, pery))
        screen.blit(dagger, (perx+20, pery-5))

        global thething

        thething = 0
        for crap in zombie:

            screen.blit(zombie[thething], (zomx[thething], zomy[thething]))
            print(thething)
            thething = thething + 1

        pygame.display.flip()

        awesome = 1
        fttt = 0
        ff = 0
        ofx = 0
        ofy = 0

        while 1:
            print(perx, pery)
            for event in pygame.event.get():
                if event.type == QUIT:
                    pygame.quit()
                    sys.exit()
                elif event.type == KEYDOWN:
                    if event.key == K_w:
                        pery = pery - 5
                        if fttt != 1:
                            if awesome == 4:
                                dagger = pygame.transform.rotate(dagger, 270)
                                person = pygame.transform.rotate(person, 270)
                            elif awesome == 3:
                                dagger = pygame.transform.rotate(dagger, 90)
                                person = pygame.transform.rotate(person, 90)
                            elif awesome == 2:
                                dagger = pygame.transform.rotate(dagger, 180)
                                person = pygame.transform.rotate(person, 180)
                            person = pygame.transform.rotate(person, 0)
                            dagger = pygame.transform.rotate(dagger, 0)
                        awesome = 1
                        fttt = 1

                    elif event.key == K_s:
                        pery = pery + 5
                        if fttt != 2:
                            if awesome == 4:
                                dagger = pygame.transform.rotate(dagger, 270)
                                person = pygame.transform.rotate(person, 270)
                            elif awesome == 3:
                                dagger = pygame.transform.rotate(dagger, 90)
                                person = pygame.transform.rotate(person, 90)
                            person = pygame.transform.rotate(person, 180)
                            dagger = pygame.transform.rotate(dagger, 180)
                        awesome = 2
                        fttt = 2

                    elif event.key == K_a:
                        perx = perx - 5
                        if fttt != 3:
                            if awesome == 2:
                                dagger = pygame.transform.rotate(dagger, 180)
                                person = pygame.transform.rotate(person, 180)
                            elif awesome == 4:
                                dagger = pygame.transform.rotate(dagger, 270)
                                person = pygame.transform.rotate(person, 270)
                            person = pygame.transform.rotate(person, 270)
                            dagger = pygame.transform.rotate(dagger, 270)
                        awesome = 3
                        fttt = 3

                    elif event.key == K_d:
                        perx = perx + 5
                        if fttt != 4:
                            if awesome == 2:
                                dagger = pygame.transform.rotate(dagger, 180)
                                person = pygame.transform.rotate(person, 180)
                            elif awesome == 3:
                                dagger = pygame.transform.rotate(dagger, 90)
                                person = pygame.transform.rotate(person, 90)
                            person = pygame.transform.rotate(person, 90)
                            dagger = pygame.transform.rotate(dagger, 90)
                        awesome = 4
                        fttt = 4

                    elif event.key == K_e:
                        if awesome == 1:
                            while ofx >= -6:
                                ofx = ofx - 1
                                screen.blit(dagger, (perx+20, pery-5+ofx))
                                pygame.time.delay(1)
                                pygame.display.update()
                            if ofx <= -6:
                                ofx = 0
                        elif awesome == 2:
                            while ofx >= -6:
                                ofx = ofx - 1
                                screen.blit(dagger, (perx-5, pery+25-ofx))
                                pygame.time.delay(1)
                                pygame.display.update()
                            if ofx <= -6:
                                ofx = 0
                        if awesome == 3:
                            while ofx >= -6:
                                ofx = ofx - 1
                                screen.blit(dagger, (perx-5+ofx, pery-5))
                                pygame.time.delay(1)
                                pygame.display.update()
                            if ofx <= -6:
                                ofx = 0
                        if awesome == 4:
                            while ofx >= -6:
                                ofx = ofx - 1
                                screen.blit(dagger, (perx+20-ofx, pery+25))
                                pygame.time.delay(1)
                                pygame.display.update()
                            if ofx <= -6:
                                ofx = 0



            screen.blit(Map, (0, 0))
            screen.blit(person, (perx, pery))
            if awesome == 1:
                screen.blit(dagger, (perx+20, pery-5))
            elif awesome == 2:
                screen.blit(dagger, (perx-5, pery+25))
            elif awesome == 3:
                screen.blit(dagger, (perx-5, pery-5))
            else:
                screen.blit(dagger, (perx+20, pery+25))

            text = "Health: "+str(HP)
            font = pygame.font.Font(None, 32)
            ttex = font.render(text, True, (255, 0, 0))
            screen.blit(ttex, (30, 30))


            thecrap = 0
            while thecrap < thething:
                print(thecrap)
                screen.blit(zombie[thecrap], (zomx[thecrap], zomy[thecrap]))
                if perx >= zomx[thecrap]:
                    loop = 0
                    while loop <= 5:
                        zomx[thecrap] = zomx[thecrap] + .09
                        loop = loop + 1

                if pery >= zomy[thecrap]:
                    loop = 0
                    while loop <= 5:
                        zomy[thecrap] = zomy[thecrap] + .09
                        loop = loop + 1
                if perx <= zomx[thecrap]:
                    loop = 0
                    while loop <= 5:
                        zomx[thecrap] = zomx[thecrap] - .09
                        loop = loop + 1
                if pery <= zomy[thecrap]:
                    loop = 0
                    while loop <= 5:
                        zomy[thecrap] = zomy[thecrap] - .09
                        loop = loop + 1
                if person.get_rect().contains(zombieRect)):
                    HP = HP - .5
                thecrap = thecrap + 1
            thecrap = 0
            pygame.display.update()

            if HP <= 0:
                print("Game over! Sorry!")
                while 1:
                    abss = font.render("Sorry, but you lost! Press any key to continue...", True, (255, 255, 255))
                    pygame.display.update()
                    screen.blit(abss, (90, 90))

                    for event in pygame.event.get():
                        Menu().main()

class ai():

    def zombieadd(self, Num):
        global zomx, zomy, zombie, zombieRect
        zombieRect = []
        zombie = []
        global step

        step = 0
        print(Num)

        while Num > step:
            global zomx, zomy, zombie
            print(step)
            zomx.append(random.randint(0, 600))
            zomy.append(random.randint(0, 600))
            zombieI = pygame.image.load("Zombie.png").convert()
            zombie.append(zombieI)
            zombie[step] = pygame.transform.scale(zombie[step], (30, 30))
            print(zomx[step], zomy[step])
            zombieRect.append(zombie[step].get_rect())

            step = step + 1

        Num = 0

        return 0


Menu().main()
4

1 に答える 1