2017-12-14 36 views
-1

のpython(3.4.0)は、それが

pygameの(pygameの-1.9.3-CP34-cp34m-win_amd64)

import pygame 
from pygame import * 
init() 
display.set_mode((500,500)) 
gameExit = False 
while not gameExit: 
    for event in event.get(): 
     print(event) 
    display.update() 

実行それpygameのウィンドウを持っていたときにオブジェクトが属性を持っていないことを言います通常は開きますが、私はこれを取得:

私は設定した場合、オブジェクトは属性を持っていないどのように
<Event(17-VideoExpose {})> 
<Event(16-VideoResize {'h': 500, 'size': (500, 500), 'w': 500})> 
<Event(1-ActiveEvent {'gain': 0, 'state': 1})> 
<Event(4-MouseMotion {'buttons': (0, 0, 0), 'rel': (500, 309), 'pos': (499, 
308)})> 
Traceback (most recent call last): 
    File "C:\Python34\a_2.py", line 7, in <module> 
    for event in event.get(): 
AttributeError: 'Event' object has no attribute 'get' 

from pygame import * 
0を

???????

OBS:

import pygame 

とpygameのダウンロードを置く:私だけをインポートします。すべてのpygameの関数の前には、同じ変数名を使用しないでくださいどんな手助け^^

+1

これは、グローバルインポートの使用を避けるべき理由の良い例です。 'pygame.event'オブジェクトと' pygame.event.Event'オブジェクト名は競合しています。 pygame.event.get()で 'for event 'を使用してください。 –

+0

特定のモジュールについてはわかりませんが、forループを 'for event in:print(e)'に変更し、どんな種類のオブジェクトが出てくるのかを調べる方法があります。 – mbowden

答えて

0

ため

おかげで動作します。これは、最初の反復に上書きされている:

for event in event.get(): 

これはループのために、それはget()メソッドを持たないオブジェクトに名前eventを再バインド実行を開始します。したがって、問題です。 import *を避けるため、また

for ev in event.get(): 
    print(ev) 

のようなものを試してみてください。次に、あなたは次のように書くことができます:

for event in pygame.event.get(): 
    print(event)