2016-05-20 34 views
0

私はそれをクリックするたびにランダムな位置にリンゴのイメージを移動したいと思います。初めてクリックするとうまくいきますが、次回はそれを試みると応答がありません。ここ
はコードです:pygameをクリックして画像をランダムな位置に移動する方法は?

import pygame 
pygame.init() 
foodimg=pygame.image.load("food.png") 
foodrect=foodimg.get_rect() 
white = (255,255,255) 
#Game Display 
display_width = 1080 
display_height = 720 
gameDisplay = pygame.display.set_mode((display_width,display_height)) 
pygame.display.set_caption('Click It! ~ Snapnel Productions') 
gameDisplay.fill((white)) 
running=True 
while running: 
    gameDisplay.fill((white)) 

    for event in pygame.event.get(): 
     if event.type==pygame.QUIT: 
      running=False 
      pygame.quit() 
      quit() 
     if event.type == pygame.MOUSEBUTTONDOWN: 
      # Set the x, y postions of the mouse click 
      x, y = event.pos 
      if foodimg.get_rect().collidepoint(x, y): 
       foodrect.center=(random.randint(5,1060),random.randint(5,700)) 
       print "Hi", 
       continue 
    gameDisplay.blit(foodimg,foodrect) 
    pygame.display.flip() 

Thisは、食品のイメージです。

+0

if foodimg.get_rect()。collidepoint(x、y): ' - >' if foodrect.collidepoint(x、y): ':)現時点では、あなたが動いている 'rect'を更新していないので、果物の最初のポジションです。 – jDo

答えて

0

の変更、画像の矩形が、常に<rect(0, 0, 30, 30)>になるだろう、動くことはありませんので、ライン

if foodimg.get_rect().collidepoint(x, y): 

if foodrect.collidepoint(x, y): 

へのあなたのコードは動作しませんでした。あなたの矩形がどこにあるのかを実際に表しています。 foodrect.center =を実行すると、値は変更されます。イメージの矩形ではなく、マウスのクリックが実際の矩形と衝突しているかどうかを確認する必要があります。

関連する問題