2016-04-22 5 views
0
import pygame 
# Some colors 
GREEN = (0,255,0) 
BLUE = (0, 0, 255) 
WHITE = (255, 255, 255) 
BLACK = (0, 0, 0) 
pygame.init() 
clock = pygame.time.Clock() 
#Screen 
SCREEN = pygame.display.set_mode([1000,700]) 
#Title 
pygame.display.set_caption("Trying to move things") 

#Variables 
x_position = 100 
y_position = 100 
x_speed = 0 
y_speed = 0 
#Positions 
image_image_positions = [x_position,y_position] 


#Graphics 
image_image = pygame.image.load("izzat.png").convert() 
image_image.set_colorkey(BLACK) 


#Main loop ____ 
done = False 

while not done: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      done = True 
    # Keyboard commands. 

     elif event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_UP: 
       y_speed = -5 
      elif event.key == pygame.K_DOWN: 
       y_speed = 5 
      elif event.key == pygame.K_w: 
       x_speed = -5 
      elif event.key == pygame.K_s: 
       x_speed = 5 
     elif event.type == pygame.KEYUP: 
      if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: 
       x_speed = 0 
      elif event.key == pygame.K_UP or event.key == pygame.K_DOWN: 
       y_speed = 0 
      elif event.key == pygame.K_w or event.key == pygame.K_s: 
       x_speed += 0 
    if y_position + y_speed >=0 and y_position + y_speed + 60 <=500: 
     y_position += y_speed 
    x_position += x_speed 


    SCREEN.fill(GREEN) 
    SCREEN.blit(image_image, image_image_positions) 
    print(x_position) 
    print(y_position) 


    pygame.display.flip() 
    clock.tick(60) 


pygame.quit() 

こんにちは、私は今それをしばらく修正しようとしているので、私は本当に幸せではないという問題を抱えています。だから、基本的にはイメージがあり、キーボード入力に基づいてイメージを移動したいのですが、何も試しても何もしません。私は多分yとxの位置が全く変わっていないのかもしれないと思ったのですが、画像の位置が変化していないのはうまく印刷されましたが(それらの位置)、位置は間違いなく変化しています。画像位置は全く変化しない。それでタプルだと思っていたので、かっこに変更しました。それもうまくいきませんでした。私は、画像の位置の変数が変更された場合、なぜ私の画像の位置が動かないのか分かりません。あなたが何とか私を助けてくれてありがとう、ありがとう。私はこれを見ましたが、私は助けを見つけることができませんでした。助けてくれてありがとう!画像は私の人生のために動いていません

更新________________ 私がimage_image_positionの位置を印刷したときに変数が変わっても、image_image_positionは同じように変わりません。それらを変更する方法はありますか?それらは100,100に常に留まり、変更された変数で変更しないでください。

+0

ヒント:

が、これは単にあなたのループに更新を追加する修正するには、あなたが '変更した場合x_position'はそれは' image_image_positions'で開催された値を変更しますか? – Chris

+0

それはありませんか?私はそれらの位置を印刷しただけで、変化しません。こんにちは、問題を見つけてくれてありがとうございますが、どうすれば値を変更できますか? – HALLOPEOPLE

答えて

1

速度を指定していません。

image_image_positions [0] = [1] =あなただけの変数yspeedxspeedを変更しているが、あなたは、画像の実際の位置を設定していない

+0

それは動作しませんでしたか?ループの前後にこれを配置する必要がありますか?また、私は位置xとyをタプルの速度に影響させるようにしようとしています。とにかくあなたの応答をありがとう。私はまた、y_positionとx_positionであなたの答えのxspeedとyの速度を置き換えようとしましたが、image_image_positionsも変更されませんでした。 – HALLOPEOPLE

+0

オイは気にせず、うまくいった。私はループの後に置いた。どうもありがとうございます!!!! – HALLOPEOPLE

1

をyspeed image_image_positionsをxspeed。 blit前に次の行を追加します。

image_image_positions = [x_position,y_position] 

全コード:イメージが描かれている

import pygame 
# Some colors 
GREEN = (0,255,0) 
BLUE = (0, 0, 255) 
WHITE = (255, 255, 255) 
BLACK = (0, 0, 0) 
pygame.init() 
clock = pygame.time.Clock() 
#Screen 
SCREEN = pygame.display.set_mode([1000,700]) 
#Title 
pygame.display.set_caption("Trying to move things") 

#Variables 
x_position = 100 
y_position = 100 
x_speed = 0 
y_speed = 0 
#Positions 
image_image_positions = [x_position,y_position] 


#Graphics 
image_image = pygame.image.load("izzat.png").convert() 
image_image.set_colorkey(BLACK) 


#Main loop ____ 
done = False 

while not done: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      done = True 
    # Keyboard commands. 

     elif event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_UP: 
       y_speed = -5 
      elif event.key == pygame.K_DOWN: 
       y_speed = 5 
      elif event.key == pygame.K_w: 
       x_speed = -5 
      elif event.key == pygame.K_s: 
       x_speed = 5 
     elif event.type == pygame.KEYUP: 
      if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: 
       x_speed = 0 
      elif event.key == pygame.K_UP or event.key == pygame.K_DOWN: 
       y_speed = 0 
      elif event.key == pygame.K_w or event.key == pygame.K_s: 
       x_speed += 0 
    if y_position + y_speed >=0 and y_position + y_speed + 60 <=500: 
     y_position += y_speed 

    x_position += x_speed 

    image_image_positions = [x_position,y_position] 
    SCREEN.fill(GREEN) 
    SCREEN.blit(image_image, image_image_positions) 
    print(x_position) 
    print(y_position) 


    pygame.display.flip() 
    clock.tick(60) 


pygame.quit() 
+0

また、ありがとうございました! – HALLOPEOPLE

1

あなたはX/Y位置を更新しているが、これは変更されません。

SCREEN.blit(image_image, image_image_positions) 

image_image_positionsは、アプリケーションのライフサイクル全体で(起動時以外に)変更されることはありません。

image_image_positions = [x_position,y_position] 
+0

ありがとうございました!、.... – HALLOPEOPLE

関連する問題