2016-04-23 11 views
0

ちょうどpygameの(のpython 2.7、win7の、I3)と、ここでチュートリアルを見て始める:、IDLEまたはPowerShellのからpygameはマウスがゲームウィンドウ上でアクティブになっているときにのみ更新されますか?

import sys, pygame 
pygame.init() 

size = width, height = 320, 240 
speed = [2, 2] 
black = 0, 0, 0 

screen = pygame.display.set_mode(size) 

ball = pygame.image.load('ball.bmp') 
ballrect = ball.get_rect() 

while 1: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: sys.exit() 

     ballrect = ballrect.move(speed) 
     if ballrect.left < 0 or ballrect.right > width: 
      speed[0] = -speed[0] 
     if ballrect.top < 0 or ballrect.bottom > height: 
      speed[1] = -speed[1] 

     screen.fill(black) 
     screen.blit(ball, ballrect) 
     pygame.display.flip() 

...:私は、コード例を実行するとhttp://www.pygame.org/docs/tut/intro/intro.html

ゲームウィンドウは、マウスがゲームウィンドウ上でアクティブに移動しているときにのみ更新されます。私はボールがそれ自身で跳ね返ることを期待していました。 pygame/SDLがグラフィックスモードを処理する方法に起因するこのマウス位置関連のパフォーマンスですか?それはハードウェアに関連していますか?コードを通じてパフォーマンスを向上させる方法はありますか?私はパイガームと一緒に転がるプロボールのボールを手に入れたいと思っています。ありがとうございました。

編集:

while 1: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: sys.exit() 

    ballrect = ballrect.move(speed) 
    if ballrect.left < 0 or ballrect.right > width: 
     speed[0] = -speed[0] 
    if ballrect.top < 0 or ballrect.bottom > height: 
     speed[1] = -speed[1] 

    screen.fill(black) 
    screen.blit(ball, ballrect) 
    pygame.display.flip() 

答えて

1

あなたが機能INSIDE更新コードを持っています!このようにそれを移動し、それは動作します。

while 1: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: sys.exit() 

     ballrect = ballrect.move(speed) 
     if ballrect.left < 0 or ballrect.right > width: 
      speed[0] = -speed[0] 
     if ballrect.top < 0 or ballrect.bottom > height: 
      speed[1] = -speed[1] 

    screen.fill(black) 
    screen.blit(ball, ballrect) 
    pygame.display.flip() 
+0

heh ...(embarassed) –

+1

いつかや他の人に起こります。 :) – emorphus

関連する問題