2012-11-18 6 views
2

어떻게하면 X 축 만 감지 할 수 있습니까?파이 게임 : 마우스 특정 축 감지

maus_x = 0 
maus_y = 0 
pygame.mouse.get_pos(maus_x, maus_y) 

while not done: 

    for event in pygame.event.get(): 

    if event.type == pygame.MOUSEMOTION:   
     if maus_x < wx_coord: 
      angle += 10 

이론적으로이 "pygame.mouse.get_pos"는 터플 (x, y)을 반환합니다. 하지만,이 튜플에서 x와 y를 나타내는 변수를 정의하고 있습니다. 문제는 마우스를 움직일 때 ("pygame.MOUSEMOTION"), "maus_x < wx_coord :"로 작성된 것을 할 때, Y 축과 함께 함수를 실행한다는 것입니다. 그리고 그것은 전혀 이해가되지 않습니다.

"angle + = 10"은 x 축에서 마우스를 움직일 때만 실행되어야합니다. 누구든지 무슨 일이 일어나고 있는지 알 수 있습니까? :)

답변

2

이것은 함수 호출이 작동하는 방식이 아닙니다. 코드에서 maus_x은 항상 0입니다. 아무 것도 수정하지 않기 때문입니다. 당신이 원하는 : 이미, 그것은 않는다는 것을 시도했습니다

while not done: 
    for event in pygame.event.get(): 
     if event.type == pygame.MOUSEMOTION:  
      relx, rely = event.rel 
      if relx != 0: # x movement 
       angle += 10 
+0

: 더 나은 아직

while not done: for event in pygame.event.get(): if event.type == pygame.MOUSEMOTION: mousex, mousey = event.pos if mousex < wx_coord: angle += 10 

또는 :

while not done: for event in pygame.event.get(): if event.type == pygame.MOUSEMOTION: mousex, mousey = pygame.mouse.get_pos() if mousex < wx_coord: angle += 10 

는 사실, 당신은 아마 그냥 event 직접 객체를 검사 할 작동하지. 경우 event.type == pygame.MOUSEMOTION : maus_x, mouse_y pygame.mouse.get_pos =() 경우 maus_x> 0 : 각도 = + 10 이것은 Y 축에서 "각도 = + 10"를 실행 "get_pos"함수가 하나의 값만 반환하는 것처럼 (마우스 움직임, 어떤 축에서도 상관 없음) –

+0

@EricsonWillians 세 번째 예제에서 원하는 경우 'maus_x> 0 :'을 원하지 않습니다. – Xymostech

+0

'maus_x > 0'은 거의 항상 참이 될 것입니다. 왜냐하면 마우스의 좌표가 절대 음수가 아니어야하기 때문입니다. – Eric