2011-06-04 11 views
13

मैं pygame सीख रहा हूं और तीन राज्यों के साथ एक बटन के लिए ग्राफिक चाहता हूं: सामान्य, होवर, और दबाया गया। मैं इस तरह एक छवि है ...मैं पगमेम के साथ एक छवि कैसे फसल कर सकता हूं?

Three button states, stacked vertically

... और मैं इसके बारे में एक हिस्से का उपयोग एक नया Surface प्राप्त करना चाहते हैं।

buttonStates = pygame.image.load(os.path.join('image','button.png')) 

मैं एक नए सतह कि ग्राफिक के केवल एक भाग का उपयोग कर सकते हैं:

मैं इस कोड के साथ छवि लोड कर रहा हूँ?

उत्तर

21
cropped = pygame.Surface((80, 80)) 
cropped.blit(buttonStates, (0, 0), (30, 30, 80, 80)) 

सतह पर चिपकने वाली विधि 'पेस्ट' पर एक और सतह है। ब्लाइट करने का पहला तर्क स्रोत सतह है। दूसरा पेस्ट करने के लिए स्थान है (इस मामले में, शीर्ष बाएं कोने)। तीसरा (वैकल्पिक) तर्क स्रोत छवि का क्षेत्र पेस्ट करने के लिए है - इस मामले में शीर्ष से 80x80 वर्ग 30px और बाईं ओर से 30px।

+0

बहुत बहुत शुक्रिया pygame का उपयोग करने के लिए है लगता है! आपके उत्तर ने मुझे समझने में मदद की कि ब्लिट विधि क्या करती है और कैसे। मैंने आपके उदाहरण को अपने कोड में जोड़ दिया और मुझे क्या उम्मीद थी, मुझे क्या मिला! – dobleseis

-1

मैं सबसे अच्छा तरीका यह एक बाहरी कार्यक्रम और विभिन्न सतह में लोड में बटन के इन 3 प्रकार के चित्र काटने के बजाय क्रॉप करने के लिए यह

संबंधित मुद्दे