我想要做的是如果一個矩形被點擊,它被選中並且文本將被顯示,但是如果它再次被點擊,那麼它被取消選擇並且文本消失。Pygame - 如何檢查我的矩形是否已被點擊?
list_of_rect是表示rect的位置和大小的座標列表(x,y,寬度,高度)。
render_display只顯示屏幕上的文字。
if event.type == pygame.MOUSEBUTTONUP and event.button == 1:
x, y = event.pos
for i in range(len(list_of_rect)):
j = list_of_rect[i]
if j[0][0] <= x <= (j[0][0] + j[0][2]) and j[0][1] <= y <= \
(j[0][1] + j[0][3]):
render_display(screen, text)
編輯:一個想法,我想是跟蹤已被點擊的矩形。但我不知道如何實現具有榜單
我用一個名爲selected_rect的變量來代替,並使用了你的想法。完美的作品,謝謝! – Theo
這隻有在@Theo將矩形存儲在列表中時纔有效。他(抱歉,如果錯誤的代詞)已經表示,唯一存儲的信息是list_of_rect,其中包含座標,而不是矩形對象 – PMARINA
@PMARINA假設'list_of_rect'存儲其數據像'[[x,y,width,height], [x2,y2,width2,height2],... [xn,yn,widthn,heightn]] rects_clicked不需要跟蹤矩形對象,而是檢查子列表是否在'rects_clicked'中。所以'rects_clicked'可能看起來像是[[x,y,width,height],[x3,y3,width3,height3]],這對OP的要求很好 – rassar