walkSmall = [((32,194,64,64)),((129,194,64,64)) ,((226,194,64,64)),((323,32,64,128)),((420,32,64,128)),((517,32,64,128))]
class player(object):
        def __init__(self,x,yfilename):
            self.x = x
            self.y = y
            self.spritesheet = pygame.image.load(filename).convert()
        def get_image(self, x, y, width, height, posX, posY, window):
            #grab an image out of a larger spritesheet
            window.blit(self.spritesheet, (posX,posY), (x,y, width, height))
        def draw(self, win):
            if self.left:
                self.get_image(walkSmall[self.walkCount//3], self.x, self.y)
                self.walkCount += 1

जब मैं इस कोड को निष्पादित करने का प्रयास करता हूं (मैंने स्पष्ट रूप से कुछ चीजें छोड़ दी हैं), मुझे त्रुटि संदेश मिलता है कि सूची से मान walkSmall केवल एक तर्क है और 5 गायब हैं। मैं मूल्य प्राप्त करना चाहता हूँ उदा:

walkSmall[5] = (517,32,64,128)

और मैं चाहता हूं कि मान व्यक्तिगत हो, इसलिए यह x, y, चौड़ाई, ऊंचाई के लिए भरता है

1
Cool Ninja 14 नवम्बर 2020, 05:12

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप इसे व्यक्तिगत चाहते हैं, तो इस तरह कुछ उपयोग करना बहुत आसान है:

walkSmall = [((32,194,64,64)),((129,194,64,64)) ,((226,194,64,64)),((323,32,64,128)),((420,32,64,128)),((517,32,64,128))]

print(walkSmall[5])
print(walkSmall[5][2])

या आप एक और फ़ंक्शन बना सकते हैं जो 4 मान लौटाता है:

def your_function(array):
    
    # simple code iteration 2D array

    return a, b, c, d

x, y, width, height = your_function(walkSmall)
0
Adi OS 14 नवम्बर 2020, 02:39