2017-06-06 40 views
1

此代碼是從書「開始遊戲開發Python和pygame的」,下面的腳本顯示由鼠標和鍵盤在屏幕上生成的事件:event_text [-SCREEN_SIZE [1]/font_height:]的說明?

import pygame 
from pygame.locals import * 
from sys import exit 

pygame.init() 
SCREEN_SIZE = (800, 600) 
screen = pygame.display.set_mode(SCREEN_SIZE, 0, 32) 

font = pygame.font.SysFont("arial", 16) 
font_height = font.get_linesize() 
event_text = [] 

while True: 

    event = pygame.event.wait() 
    event_text.append(str(event)) 
    event_text = event_text[-SCREEN_SIZE[1]/font_height:] 

我有這樣一個問題, line:

event_text = event_text[-SCREEN_SIZE[1]/font_height:] 

有人能解釋嗎? 感謝提前:)

回答

1

這似乎是通過獲取屏幕高度,將其除以一行文本的高度,切片event_text列表以獲得被找出如何文本的多行可以在屏幕上出現只有最後有多少行文字。

1

event_textlist。它不僅支持下標(即,「MYLIST [4]」來獲得第五元件),而且還slicing(獲得一個子部分 - 或「切片」 - 列表的)與list\[start:stop:step\] syntax

在這個例子中,start值計算爲-SCREEN_SIZE[1]/font_heightSCREEN_SIZE[1]是屏幕的高度(在這種情況下是600),font_height是,使用的字體高度 - 如果我們假設字體高度爲20,-SCREEN_SIZE[1]/20 =>-600/20 =>-30,所以我們很好地得到event_text[-30:],這實際上是「event_text」中的最後30個元素。

+0

在字體高度上劃分屏幕大小,這是一種衆所周知的數學算法嗎? – Belle