已經有很多這些問題了,但我無法弄清楚什麼是錯的。複雜的問題代碼分散在一個類。我正在嘗試創建一個滾動面板。這是類插槽,其顯示了一些短語,並作爲一個鏈接的列表,以允許生長(希望緊湊的代碼)pygame:在屏幕上繪製文本之前繪製文本
代碼: 變量:the_game:模塊pygame的,字體的實例:模塊pygame.font的實例,短語:被推動的字符串,self.bitmap:要繪製到屏幕的槽的表面對象,num:表示槽號的數字,因爲它們應該是按順序排列的。
class slot(object):
def __init__(self,x,y,num,dimx,dimy,the_game,font):
...
self.wordnum = convertnum(num)+". "
self.phrase=""
self.bitmap = the_game.Surface((dimx,dimy))
self.updatesprite(the_game,font)
功能updatesprite清理和重新塊傳輸任何短語插槽應該持有改變時:
def updatesprite(self,the_game,font):
self.bitmap.fill((240,240,240))
phrase = self.wordnum
if(self.has_phrase==True):
phrase+=self.phrase
text = font.render(phrase,1,(0,0,255))
the_game.Surface.blit(text,self.bitmap,[self.x+2, self.y+2])
...
因爲當一個又一個「推送向後移動一個短語或句子到下一時隙「關於先前時隙
def mypush(self,num,phrase,the_game,font):
if (num > self.num):
if (self.has_next==False):
self.addmore(num-self.num,the_game,font)
self.next.mypush(num,phrase,the_game,font)
self.updatesprite(the_game,font)
elif (num == self.num):
if (self.has_phrase==True):
self.mypush(self.num+1,self.phrase,the_game,font)
else:
self.has_phrase=True
self.phrase=phrase
self.updatesprite(the_game,font)
功能用於設置槽的短語:
def setphrase(self,phrase,realx,realy,virty,realdim,mousex,mousey,the_game,font):
...
if (self.has_phrase==True):
self.mypush(self.num+1,self.phrase,the_game,font)
self.has_phrase=True
self.phrase=phrase
self.updatesprite(the_game,font)
,然後繪製到屏幕的方法,包括:
def mydraw(self,the_game,scrn,realx,realy,virty,realdim):
...
holder = self.bitmap.subsurface(0,self.e_y-virty,self.dim_x,self.dim_y-(self.e_y-virty))
scrn.blit(holder,[self.x,0])
if(self.has_next==True):
self.next.mydraw(the_game,scrn,realx,realy,virty,realdim)
代碼被縮寫出是用於確定所述用戶上的狹槽點擊時,確定屏幕從滾動座標座標等
這樣寫的原因是因爲:a)我期望有一個面板可能有相當多的插槽。我想繪製到一個大的位圖,並抓住我所需要的不聰明或可擴展。 b)個別插槽可能會被刪除
我可以做例子工作,但不是這項工作。我可以看到實際的位圖:self.bitmap,被繪製到屏幕但沒有字符串。 IDK什麼在