[英]Pygame I can move an image once but don't know how to move it twice
我有一個要增量移動的框,我知道如何增量移動,但只能移動一次。 我不怎么會多次這樣做。 任何人有任何想法嗎? 包裝盒:
highlight = pygame.draw.rect(window, (darkYellow),(30, 300, 130, 40),0)
移動盒子(一次移動一次)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit(); sys.exit()
if event.type == pygame.KEYDOWN and pygame.K_RIGHT:
highlight = pygame.draw.rect(window, (darkYellow),(260, 300, 130, 40),0)
difficultyText = myFont.render("Difficulty", 1, red)
window.blit(difficultyText, (260, 300))
pygame.display.update()
當我只希望在按下鍵“ ARROW DOWN”時激活它時,可以接受任何鍵輸入
if event.type == pygame.KEYDOWN and pygame.K_DOWN:
window.blit(arrowImg, (5,400))
pygame.display.update()
您的代碼幾乎沒有問題。
您正在事件循環中繪制,渲染文本和變白。 您應該將它們移出循環體。
看來您想要一個可以用右箭頭鍵更改其位置的光標。
為此,請使用一個變量,該變量將告訴您光標所在的位置。
然后,您的draw語句將如下所示:
pygame.draw.rect(window, (darkYellow),(30+cursorPos*230, 300, 130, 40),0)
編輯:
至於為什么event.type == pygame.KEYDOWN and pygame.K_DOWN
對於所有KEY_DOWN事件都是true,是因為它可以轉換為(event.type==pygame.KEYDOWN) and pygame.K_DOWN
。
由於pygame.K_DOWN是非零值,因此當作為布爾值評估時為true。 要解決此問題,您需要執行以下操作:
event.type == pygame.KEYDOWN and event.key == pygame.K_DOWN
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.