1
私はPython 2.7を使用しています。これは、pygameモジュールを使用して単純なゲームを作成しようとしました。プログラムでは四角形になりますが、私がやっていることはキーが押されると動くようにすることです。私は問題が私のコードの 'player.move'部分にあると信じていますが、pygamesのWebサイトではドキュメンテーションが貧弱です。どんな助けもありがとうございます。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
@Austin、[pygame。](http://stackoverflow.com/documentation/pygame)の独自のベータ版のドキュメントも読んでみてください。 /トピック) –