2016-03-30 33 views
-2

WASDキーを使用して移動したい画像があります。私はこれを行う方法を完全に理解していない、私はメインループを持っています。 これは私のイメージのように見えるものであり、このコードは、メインループの後ろにあるpossition画像の移動方法

no_image = pygame.image.load("Ideot.png").convert 
x_coord = 500 
y_coord = 250 
no_position = [x_coord,y_coord] 

です。メインループの後、私は実際にこれは私のループが行わ 次のようになります

screen.blit(no_image,no_position) 

を行うことで画像を描画= Falseの

while not done: 
    for event in pygame == pygame.Quit: 
     done = True 

あなたはWASDでの画像移動を作成する方法を示しすることはでき

+0

スタックオーバーフローは、コード作成サービスまたはチュートリアルサービスではありません。あなたの質問を編集して、入力や期待される出力、エラーやトレースバックのフルテキスト**など、これまでに試したことを投稿してください。 – MattDMo

+0

[リンク] http://stackoverflow.com/questions/35818505/pygame-the-rectangle-is-not-moving/35826041#35826041 – marienbad

答えて

2

まず、私は現在のコメントに対処します。 MattDoは正しいです、これはコード作成サービスではなく、人々が問題を理解するのを手助けする方法や、なぜ作品が動作するのか、なぜ動作しないのかを理解する方法です。 に最初にを試みることをお勧めします。あなたがそれを理解できない場合は、質問してください。 marienbadのリンクは画像を移動させますが、不便な方法で行います。そのリンクのコードは、特定のキーを押すたびに画像を移動します(便利ですが、チェックアウトすることをお勧めします)が、キーを押したまま移動するといいです。

キーを押しながら移動するイメージを取得するのは難しいです。私の好みはブール値を使うことです。

ダニ法を使用していない場合は、今すぐ中止して、適所に取得してください。 Pygame.org/docsを見て、それを行う方法を見て、彼らは素晴らしいサンプルコードを持っています。あなたがそれを制限しなければあなたのコンピュータが処理することができるので、あなたの動きを見ることさえできないかもしれないので、このループは速く動くので、あなたはそれなしで動きません。

from pygame.locals import * # useful pygame variables are now at your disposle without typing pygame everywhere. 

speed = (5, 5) # Amount of pixels to move every frame (loop). 
moving_up = False 
moving_right = False 
moving_down = False 
moving_left = False # Default starting, so there is no movement at first. 

上記コードはあなたのwhileループのためのコードです。あなたのイベントforループは、コードを改善するためにわずかに変更する必要があります。関数をここに置くことをお勧めします。これらのif文をすべて削除するために辞書を使用することをお勧めします。指す。 event.quitのようないくつかの詳細は除外しています。

キーアップ部分を含めないと、あなたのキャラクターは決して動かなくなります!それらが移動するように設定されている場合

以降のループで次に
for event in pygame.event.get(): 
    if event.type == KEYDOWN: 
     if event.key == K_w: 
      moving_up = True 
     if event.key == K_d 
      moving_right = True 
     if event.key == K_s: 
      moving_down = True 
     if event.key == K_a: 
      moving_left = True 

    if event.type == KEYUP: 
     if event.key == K_w: 
      moving_up = False # .. repeat this for all 4. 

...

if moving_up: 
    y_coord += -speed[1] # Negative speed, because positive y is down! 
if moving_down: 
    y_coord += speed[1] 
if moving_right: 
    x_coord += speed[0] 
if moving_left: 
    x_coord += -speed[0] 

今すぐあなたのx/y座標は、あなたのイメージをブリットするために使用される、変更されます!このシナリオではelifを使用しないようにしてください。2つのキーを保持している場合は、北東に移動できるように、キーと組み合わせて移動することができます。

+0

編集ありがとうございました^^ –

+0

これを書いて申し訳ありません、私は実際にそれを発見しましたgoogleで検索する、私のせい。あなたの答えをありがとう! – HALLOPEOPLE

関連する問題