我寫了這個函數作爲我試圖在pygame中製作的滾動面板的一部分。該函數是一個名爲slot的類的一部分,該類是面板類的一部分,slot是包含字符串或數據的面板上的條。此方法將插槽繪製到屏幕上,如果屏幕位於插槽之間,則只繪製插槽的一部分。該IF/ELIF /別的語法絆倒了我,讓python,如果/ elif/else語法按註釋拆分?
def mydraw(self,my_pygame,scrn,panel_x,panel_y,scroll_at,window_size,virtual_size):
if((self.y<(scrollat+window_size))or((self.e_y)>scrollat)):
onscreensy = (self.y-scrollat)+panel_y
onscreeney = onscreensy + self.dim_y
"""the top case"""
if(onscreensy<panel_y):
onscrnwidth = (onscreensy+self.dim_y)-panel_y
onbitmapwidth = self.dim_y-onscrnwidth
holder = self.bitmap.subsurface(0,onbitmapwidth-1,self.dim_x,onbitmapwidth-1)
scrn.blit(holder,(panel_x,panel_y))
"""end top case"""
"""the normal case"""
elif(onscreeney<(panel_y+window_size)): #### right here ####
scrn.blit(self.bitmap,(panel_x,onscreensy))
"""end normal case"""
"""the bottom case"""
else:
onscrnwidth = (panel_y+window_size)-self.y
onbitmapwidth = self.dim_y-onscrnwidth
holder = self.bitmap.subsurface(0,0,self.dim_x,onbitmapwidth-1)
scrn.blit(holder,(panel_x,onscreensy))
"""end bottom case"""
if(self.has_next==True):
self.next.mydraw(my_pygame,scrn,panel_x,panel_y,scroll_at,window_size,virtual_size)
錯誤:
me$ python testscrolling3.py
File "testscrolling3.py", line 164
elif(onscreeney<(panel_y+window_size)):
^
SyntaxError: invalid syntax
請發佈整個錯誤消息。 – BrenBarn
顯示完整的錯誤消息,以便我們可以看到它是什麼類型的錯誤。 –
這是'elif'語法錯誤,因爲這些字符串的代碼與'if'的縮進級別相同。 –