異なるパラメータが必要な場合、クラス内でif / elifを使用するにはどうすればよいですか?

スミス

pygameのキーボードに関するすべてのコマンド、少なくとも必要なものすべてを内部に配置するクラスを実行していますが、後で定義する「変数」と等しいかどうかを使用すると、エラーが返されます。定義されていません。

私は技術的なサームで言うのに十分なことを知りません、間違いで申し訳ありません。ボタンをkey()引数として使い始めて、同じエラーが発生したので、使っ__init__()てみましたが、まだ使えます(方法はわかりません)、こうして作りました...

class control():
    def button(self, button):
        self.button = button
    def exit(self):
        if event.type == pygame.QUIT:
            pygame.quit()
    def key(self, axis, speed):
        if event.type == pygame.KEYDOWN:
            if event.key == self.button:
                axis = 0
                axis = speed


ctrl = control()
w = control().button(K_w)
s = control(K_s)
UP = control(K_UP)
DOWN = control(K_DOWN)


while True:
    for event in pygame.event.get():
        ctrl.exit()  
        w.key(y1, -5)
        s.key(y1, +5)
        UP.key(y2, -5)
        DOWN.key(y2, +5)
 File "C:/Users/Smith/PycharmProjects/untitled/venv/test0002.py", line 25, in <module>
    w = control().button(K_w)
NameError: name 'K_w' is not defined

キー関数を使用してボタンを定義したいので、後ですべてのキーボード入力に対してそれを取得し、毎回すべてを書き直すことができます。

Rabbid76

エラーメッセージ

名前「K_w」が定義されていません

モジュールの名前空間を忘れたために発生します。

定数の名前はpygame.K_wなくですK_w定数はpygameモジュールの名前空間に配置されます。

定数のフルネームを使用します

w = control().button(pygame.K_w)

またはpygame定数をインポートしますpygame.localsを参照してください

from pygame.locals import *

# [...]

w = control().button(K_w)

さらに、オブジェクトを生成しますが、値を返さないwため、変数が定義されることcontrol()はありbutton()ません。メソッドボタンは次を返す必要がありますself

class control():
    def button(self, button):
        self.button = button
        return self

ただしcontrol、メソッドではなくクラスにコンストラクターを実装することをお勧めしbuttonます(もちろん両方を実行できます)。

class control():
    def __init__(self, button=0):
        self.button = button

ctrl = control()
w = control(K_w)
s = control(K_s)
UP = control(K_UP)
DOWN = control(K_DOWN)

このメソッドkeyは、パラメーターの新しい値を返す必要がありますaxis

class control():

    # [...]

    def key(self, axis, speed):
        if event.type == pygame.KEYDOWN:
            if event.key == self.button:
                axis = speed
        return axis

y1, y2 = 0, 0
while True:
    for event in pygame.event.get():
        ctrl.exit()  
        y1 = w.key(y1, -5)
        y1 = s.key(y1, +5)
        y2 = UP.key(y2, -5)
        Y2 = DOWN.key(y2, +5)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

D:\ abstractクラスに任意のパラメーターを使用して必要なメソッドを作成するにはどうすればよいですか?

分類Dev

RSpecモック/スタブで異なるパラメーター値を使用するにはどうすればよいですか?

分類Dev

JsonConstructorパラメーター名がJSONと一致しない場合に例外をスローするにはどうすればよいですか?

分類Dev

コンストラクターが再割り当てされていない場合、関数で「new」を使用するにはどうすればよいですか

分類Dev

APIに認証トークンが必要な場合、統合テストにAsp.Net Core 2.0のメモリ内TestServerクラスを使用するにはどうすればよいですか?

分類Dev

OpenAPI(Swagger)で同じパスに異なるクエリパラメーターを定義するにはどうすればよいですか?

分類Dev

パラメータが整数でない場合、ルートを別の方法で定義するにはどうすればよいですか?

分類Dev

すべてのパラメーターが保証されていない場合に、ネストされたロジックを使用してmongooseJsで検索するにはどうすればよいですか?

分類Dev

サーブレット。キーが一意でない場合、パラメーターを取得するにはどうすればよいですか?

分類Dev

渡された関数にパラメーターがある場合、makecontextから警告をマスクするにはどうすればよいですか?

分類Dev

基本クラスのみがC ++で異なる場合、コードを再利用するにはどうすればよいですか?

分類Dev

クラスやコンストラクターがない場合、Reactで状態を設定するにはどうすればよいですか?

分類Dev

Goで不要なJSONパラメーターを使用するにはどうすればよいですか?

分類Dev

Rails 4で強力なパラメーターを使用するにはどうすればよいですか?

分類Dev

javascriptで異なるパラメータを持つオブジェクトとして文字列を使用するにはどうすればよいですか?

分類Dev

phpにアクセスするリンクに必要なパラメータを配置するにはどうすればよいですか?

分類Dev

クラス参照が必要な場合、リストにゲームオブジェクトを追加するにはどうすればよいですか?

分類Dev

Windows Jenkinsスペースがある場合、WORKSPACEシステムパラメータを使用するにはどうすればよいですか?

分類Dev

さまざまなパラメータでCrudRepositoryを使用するにはどうすればよいですか?

分類Dev

さまざまなパラメータでCrudRepositoryを使用するにはどうすればよいですか?

分類Dev

さまざまなパラメータでCrudRepositoryを使用するにはどうすればよいですか?

分類Dev

クラスを特殊化する場合、異なる数のテンプレートパラメータを取得するにはどうすればよいですか?

分類Dev

PHP GMTがパラメータになる場合、日付を取得するにはどうすればよいですか?

分類Dev

オプションのパラメータが必要になるにはどうすればよいですか?

分類Dev

コンストラクターが異なる場合、継承を使用して2つの異なる動物をテキストファイルに追加するにはどうすればよいですか?

分類Dev

必要なStringパラメーターを持つオブジェクトで@InjectMocksとinitMocks()を使用するにはどうすればよいですか?

分類Dev

タイプと引数の長さが異なる可能性がある場合、「パラメーターを持つ関数」をパラメーターとして渡すにはどうすればよいですか?

分類Dev

テンプレート引数とパラメータパックを使用する場合、enableを使用するにはどうすればよいですか?

分類Dev

Tがnullになるときに、パラメータタイプがTのクラスを宣言するにはどうすればよいですか?

Related 関連記事

  1. 1

    D:\ abstractクラスに任意のパラメーターを使用して必要なメソッドを作成するにはどうすればよいですか?

  2. 2

    RSpecモック/スタブで異なるパラメーター値を使用するにはどうすればよいですか?

  3. 3

    JsonConstructorパラメーター名がJSONと一致しない場合に例外をスローするにはどうすればよいですか?

  4. 4

    コンストラクターが再割り当てされていない場合、関数で「new」を使用するにはどうすればよいですか

  5. 5

    APIに認証トークンが必要な場合、統合テストにAsp.Net Core 2.0のメモリ内TestServerクラスを使用するにはどうすればよいですか?

  6. 6

    OpenAPI(Swagger)で同じパスに異なるクエリパラメーターを定義するにはどうすればよいですか?

  7. 7

    パラメータが整数でない場合、ルートを別の方法で定義するにはどうすればよいですか?

  8. 8

    すべてのパラメーターが保証されていない場合に、ネストされたロジックを使用してmongooseJsで検索するにはどうすればよいですか?

  9. 9

    サーブレット。キーが一意でない場合、パラメーターを取得するにはどうすればよいですか?

  10. 10

    渡された関数にパラメーターがある場合、makecontextから警告をマスクするにはどうすればよいですか?

  11. 11

    基本クラスのみがC ++で異なる場合、コードを再利用するにはどうすればよいですか?

  12. 12

    クラスやコンストラクターがない場合、Reactで状態を設定するにはどうすればよいですか?

  13. 13

    Goで不要なJSONパラメーターを使用するにはどうすればよいですか?

  14. 14

    Rails 4で強力なパラメーターを使用するにはどうすればよいですか?

  15. 15

    javascriptで異なるパラメータを持つオブジェクトとして文字列を使用するにはどうすればよいですか?

  16. 16

    phpにアクセスするリンクに必要なパラメータを配置するにはどうすればよいですか?

  17. 17

    クラス参照が必要な場合、リストにゲームオブジェクトを追加するにはどうすればよいですか?

  18. 18

    Windows Jenkinsスペースがある場合、WORKSPACEシステムパラメータを使用するにはどうすればよいですか?

  19. 19

    さまざまなパラメータでCrudRepositoryを使用するにはどうすればよいですか?

  20. 20

    さまざまなパラメータでCrudRepositoryを使用するにはどうすればよいですか?

  21. 21

    さまざまなパラメータでCrudRepositoryを使用するにはどうすればよいですか?

  22. 22

    クラスを特殊化する場合、異なる数のテンプレートパラメータを取得するにはどうすればよいですか?

  23. 23

    PHP GMTがパラメータになる場合、日付を取得するにはどうすればよいですか?

  24. 24

    オプションのパラメータが必要になるにはどうすればよいですか?

  25. 25

    コンストラクターが異なる場合、継承を使用して2つの異なる動物をテキストファイルに追加するにはどうすればよいですか?

  26. 26

    必要なStringパラメーターを持つオブジェクトで@InjectMocksとinitMocks()を使用するにはどうすればよいですか?

  27. 27

    タイプと引数の長さが異なる可能性がある場合、「パラメーターを持つ関数」をパラメーターとして渡すにはどうすればよいですか?

  28. 28

    テンプレート引数とパラメータパックを使用する場合、enableを使用するにはどうすればよいですか?

  29. 29

    Tがnullになるときに、パラメータタイプがTのクラスを宣言するにはどうすればよいですか?

ホットタグ

アーカイブ