2017-02-20 9 views
1

私はPythonでPongゲームを作っています。これを行うには、私はパイゲームを使用しています。私は、キー押しでイメージを連続的に動かそうとしています。私は複数の方法を試しましたが、誰も働いていません。ここに私の動きのためのコードです:keypressでpygame/pythonで画像を移動するには?

import pygame, sys 
from pygame.locals import * 
import time 

try: #try this code 
pygame.init() 

FPS = 120 #fps setting 
fpsClock = pygame.time.Clock() 

#window 
DISPLAYSURF = pygame.display.set_mode((1000, 900), 0, 32) 
pygame.display.set_caption('Movement with Keys') 

WHITE = (255, 255, 255) 
wheatImg = pygame.image.load('gem4.png') 
wheatx = 10 
wheaty = 10 
direction = 'right' 

pygame.mixer.music.load('overworld 8-bit.WAV') 
pygame.mixer.music.play(-1, 0.0) 
#time.sleep(5) 
#soundObj.stop() 

while True: #main game loop 
    DISPLAYSURF.fill(WHITE) 

    bign = pygame.event.get() 
    for event in bign: 
     if event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_d: 
       pygame.mixer.music.stop() 
    keys_pressed = key.get_pressed() 
    if keys_pressed[K_d]: 
     wheatx += 20 

    #events = pygame.event.get() 
    #for event in events: 
     # if event.type == pygame.KEYDOWN: 
     #  if event.key == pygame.K_p: 
     #   pygame.mixer.music.stop() 
     #  time.sleep(1) 
      #  pygame.mixer.music.load('secondscreen.wav') 
      #  pygame.mixer.music.play() 

    DISPLAYSURF.blit(wheatImg, (wheatx, wheaty)) 

    pygame.display.update() 
    fpsClock.tick(FPS) 


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

インデントは正常です、私はスタックオーバーフローに新しいです!私には例外があるので、試行がそこにあるのです。助けてくれてありがとう!

+0

エラーが発生しましたか?あなたはそれが動作していないが、何が動作していないと言いましたか?また、 'key.get_pressed()'を呼び出すのですが、誤解していない場合は 'pygame.key.get_pressed()'にする必要があります。 –

答えて

0

このコードは、押されて、最大上矢印キーが押された場合(ユーザーがダウンキーを押すとY軸とwheatyを変更するのではなくwheatxを変更すべきではない下矢印キー上に画像を下に移動します?)。他の矢印キーも同様です。

while True: 
    DISPLAYSURF.fill(WHITE) 
    bign = pygame.event.get() 
    for event in bign: 
     if event.type == QUIT: 
      pygame.quit() 
      sys.exit() 
     elif event.type == pygame.KEYDOWN: 
      pygame.mixer.music.stop() 
      if event.key == pygame.K_DOWN: 
       wheaty +=20 
      elif event.key == pygame.K_UP: 
       wheaty -= 20 
    DISPLAYSURF.blit(wheatImg, (wheatx, wheaty)) 
    pygame.display.update() 
    fpsClock.tick(FPS) 
+0

ありがとう、完璧に働いた!私はすべてを変更する前に私が使ったコードとあまり変わりませんが、 'event.type == QUIT'はそれが別々であったので、それを乱していたと思います。しかし、キーを押したままにすると、どうやって動き続けますか?ありがとう! :) –

+1

心配しないで、固定してください! –