1
我正在使用python 2.7嘗試使用pygame模塊做一個簡單的遊戲。在這個程序中,它會形成一個矩形,我所遇到的麻煩是讓它在鍵被按下時移動。我認爲問題出在我的代碼中的'player.move'部分,但pygames網站上的文檔很差。任何幫助表示讚賞。如何在pygame中添加移動到形狀?
import pygame
import random
import time
pygame.init()
white = (255,255,255)
black = (0,0,0)
displayWidth = 800
displayHeight = 800
FPS = 30
clock = pygame.time.Clock()
blockWidth = 50
blockHeight = 50
pygame.display.set_caption('Test Game')
screen = pygame.display.set_mode([displayWidth, displayHeight])
background = pygame.Surface(screen.get_size())
background.fill((white))
background = background.convert()
screen.blit(background, (0,0))
global xStart, yStart
xStart = 400
yStart = 400
global player
player = pygame.draw.rect(screen, black, ([xStart,yStart,blockWidth,blockHeight]))
pygame.display.update()
def mainloop():
global x, y
x = xStart
y = yStart
mainloop = True
pygame.display.update()
while mainloop == True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
mainloop = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
mainloop = False
if event.key == pygame.K_UP:
player.move(x, y + 10)
pygame.display.update()
if event.key == pygame.K_DOWN:
player.move(x, y - 10)
pygame.display.update()
if event.key == pygame.K_LEFT:
player.move(x - 10, y)
pygame.display.update()
if event.key == pygame.K_RIGHT:
player.move(x + 10, y)
pygame.display.update()
clock.tick(FPS)
pygame.display.flip()
mainloop()
pygame.quit()
'pygame.draw.rect()'是繪製矩形,而不是用於創建對象。在'while True'中,你必須清除屏幕並在新的地方繪製矩形 - 一次又一次。現在你改變了球員的位置,但是你不會再以新的位置抽球。 PyGame是低級庫,你必須自己做所有事情 - 它不會自動移動和繪製。 – furas
更好找一些教程 - 即。 [編程街機遊戲 與Python和Pygame](http://programarcadegames.com/) – furas
@奧斯汀,也嘗試閱讀我們自己的測試文檔[pygame。](http://stackoverflow.com/documentation/pygame /主題) –