2017-04-23 6 views
0

私は、あなたがなりたいキャラクターを選択できるスネークゲームを作成しようとしています。私はゲームのデフォルトキャラクターをgoombaに設定しました。 「文字」画面があり、その中からボタンでどんなキャラクターにしたいのかを選択できるようにしたい。私はゲームで別のゲームキャラクターを作成できません

elif currentchar == "mario": 
      charU = pygame.image.load('mario up') 
      charD = pygame.image.load('mario down') 
      charL = pygame.image.load('mario left') 
      charR = pygame.image.load('mario right') 
      gameLoop() 

を行うことを試みたが、それは思い付く「NameError:名 『currentchar』が定義されていません」。私がそれを定義すれば、私は何をすべきかわかりません。 完全なコードはここにあります: https://pastebin.com/7gtvdf8E 助けていただければ幸いです。 ありがとうございます。

EDIT:oops私はペーストする前にちょっと手を加えていて、それを変更するのを忘れていました。ここでは実際のペーストビンですhttps://pastebin.com/sYNHqPyD EDIT:私は "マリオ"を押しても何も起こりません。

+0

Line 194、私は 'currentchar =" mario "'を意味していて、 '='ではなく '='であると信じています。また、 'elif' * after *は意味をなさない。 ifブロックが正しく配置されていますか? –

+0

ええ、私は1つの "="を使うことを意味していました。それはまだ動作しません。私は何をすべきかわからない。 – PikachuPopcorn

+0

この場合、あなたのエラーは/異なっているはずです。そうでない場合は、完全なエラートレースバックを貼り付ける必要があります。 –

答えて

0

新しい文字画像を表示するには、別の機能で起こった変更を知る必要があります。それがグローバル変数が入る場所です。変数をグローバルにすると、変更が表示され、コードは必要に応じて機能します。

チェックアウト何のコマンドglobal手段と、ここで行います。

あなたが def functionName():後の最初の行に直接 charUcharD、...変数を持っている各機能にに入れたより

Using global variables in a function other than the one that created them

global charU, charD, charL, charR 
+0

ああありがとう!意味あり。私はそれをtommorowテストします。私は現在私の携帯電話に乗っているので、私は今それをテストすることはできません。それがうまくいけば、私はあなたに最善の答えを与えるでしょう – PikachuPopcorn

+0

私はそれを行う場合、= – PikachuPopcorn

+0

で構文エラーが表示されますはい、あなたは、最初にassigmentとグローバル宣言を行う場合、構文エラーを取得...グローバルは来る必要があります最初は関数本体の最上部にあります。 – Claudio

関連する問題