2
我需要在我的實習中爲這個客戶添加一個字庫(對於沒有任何編程背景的人)。下面顯示的pygame是我所擁有的骨架(顯然不能向互聯網顯示內部代碼),我需要一個函數,它需要2個文本對象,並將它們放置在一個單獨的區域中,像歷史測試中的一個字庫一樣以垂直方式放置或者其他的東西。如何添加一個wordbank區域到pygame
如何使用pygame庫將此GUI類型元素實現到此代碼中?
本質上下面的這個遊戲運行時會填充兩個文本框對象,以便在用戶屏幕上拖動。我想要一個指定的(內部或外部)區域來放置這些單詞,這樣當遊戲加載時,這些單詞將在列中排列在窗口的邊上。
import sys
import pygame as pg
pg.init()
FONT = pg.font.Font(None, 42)
class Text(pg.sprite.Sprite):
def __init__(self, text, pos, color, *groups):
super().__init__(*groups)
self.image = FONT.render(text, True, color)
self.rect = self.image.get_rect(center=pos)
def main():
screen = pg.display.set_mode((640, 480))
clock = pg.time.Clock()
all_sprites = pg.sprite.Group(
Text('hello', (100, 300), pg.Color('steelblue1')),
Text('world', (250, 300), pg.Color('sienna1')),
)
selected = None
done = False
while not done:
for event in pg.event.get():
if event.type == pg.QUIT:
done = True
elif event.type == pg.MOUSEBUTTONDOWN:
for sprite in all_sprites:
if sprite.rect.collidepoint(event.pos):
selected = sprite
break
elif event.type == pg.MOUSEBUTTONUP:
selected = None
elif event.type == pg.MOUSEMOTION:
if selected:
selected.rect.center = event.pos
all_sprites.update()
screen.fill((30, 30, 30))
all_sprites.draw(screen)
pg.display.flip()
clock.tick(30)
if __name__ == '__main__':
main()
pg.quit()
sys.exit()
你的「我需要一個函數,它需要2個文本對象並將它們放置在一個單獨的區域以垂直方式」太含糊。請[編輯]你的問題,並更詳細地解釋,以及這與你目前的問題中的代碼有什麼關係。 – martineau
編輯幫助嗎? – supahoopa95
是的,那樣更好。 'pygame'本身不會執行多個窗口。可以使用多處理並創建一個也可以使用它並運行自己的主顯示循環的子任務,但是它和主進程需要使用[IPC]進行通信(https://en.wikipedia.org/wiki/Inter -process_communication),這會變得複雜。在一個單獨的「pygame」程序中,您可以將一列字詞作爲一組精靈,這將允許您執行一些操作,例如集體移動它們。用戶/程序與他們的互動到底是什麼? – martineau