2016-04-05 6 views
2

私はパイゲームを学び始めました。シンプルなアナログ時計をコーディングしています。シンプルなアナログ時計が遅くなり、エラーが表示されます。

import sys, pygame 
pygame.init() 

white = 255, 255, 255 
size = width, height = 480, 480 
screen = pygame.display.set_mode(size) 

minute_hand = pygame.image.load('minute_hand.png') 
minute_hand_rect = minute_hand.get_rect() 

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

    center = minute_hand_rect.center 
    rotate = pygame.transform.rotate 

    minute_hand = rotate(minute_hand, -1) 
    minute_hand_rect = minute_hand.get_rect(center=center) 

    screen.fill(white) 
    screen.blit(minute_hand, minute_hand_rect) 

    pygame.display.update() 
    pygame.time.delay(100) 

This is my hand_minute

しかし、しばらくの間、遅く、遅くなって、私のhand_clockは、実行中に停止し、言う:

Traceback (most recent call last): 
    File "clock.py", line 21, in <module> 
    minute_hand = rotate(minute_hand, -1) 
pygame.error: Width or height is too large 

は、どうやら私は何か間違ったことをやっているが、私はわかりませんでしたなにが問題ですか。

+0

これは、90度以外の増分で回転すると、新しい回転画像を保持するように画像のサイズが拡大されるからです。 – Keatinge

+0

画面のサイズを大きくして画像を大きくするか、 Racialzが述べているように、回転によって画像のサイズが大きくなっています。 – marienbad

答えて

0

問題がminute_hand = rotate(minute_hand, -1)

であるこれは、変換データの全体負荷にそれが更新されるたびに記憶意味し、次を生成するために、最後のフレーム画像を用いています。また、「メモリエラーのうち」とあなたが気づくように画像が

ソリューションは、元の画像を使用し続けると回転させることである時間をかけて歪んで取得する原因となる私に与えたそれより

は以下のとおり:

import sys, pygame 
pygame.init() 

white = 255, 255, 255 
size = width, height = 480, 480 
screen = pygame.display.set_mode(size) 

minute_hand = pygame.image.load('box4.jpg') 
minute_hand_rect = minute_hand.get_rect() 

angle = 0 

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

    center = minute_hand_rect.center 
    rotate = pygame.transform.rotate 

    new_image = rotate(minute_hand, angle) 
    new_image_rect = new.get_rect(center=center) 

    angle -= 1 
    if angle == -360: 
     angle = 0 

    screen.fill(white) 
    screen.blit(new, new_rect) 

    pygame.display.update() 
    pygame.time.delay(100) 

これは、すべてのフレームを変更し、この情報がお役に立てば幸い元

にそれを適用する角度をとります。

関連する問題