2013-12-21 5 views
1

파이 게임을 사용하여 페인트 프로그램을 작성하려고하는데 타원 도구에 문제가 있습니다. 사용자가 마우스를 누르고있을 때 타원을 솔리드 또는 링으로 그릴 수 있기를 바랍니다. 그런 다음 교대를 유지할 때 사용자가 서클을 그릴 수있게하려고합니다. 나는 이것을 할 수있는 방법이 있음을 압니다. 나는 방법을 모른다. 동일한 아이디어를 기반으로 사각형을 그릴 수있는 사각형 도구가 있으며 작동합니다. 그렇지 않습니다. 도와주세요.타원형 파이 게임이있는 동그라미 그리기

if tool=="ellipse": 
       screen.blit(copy,(0,0)) 
       a=min(mx,start[0]) 
       b=min(my,start[1]) 
       x=abs(mx-start[0]) 
       y=abs(my-start[1]) 
       if keys[304] or keys[305]: 
        y=x 

       if keys[32]: 
        if x<size*2 or y<size*2: 
         draw.ellipse(screen,(c),(a,b,x,y))  
        else: 
         draw.ellipse(screen,(c),(a,b,x,y),size) 
       else: 
        draw.ellipse(screen,(c),(a,b,x,y)) 

답변

0

나는 당신이 거기에서 무엇을하려하는지 모르지만, 불필요하게 복잡해 보입니다. downpos 마우스가 내려 놓으 된 곳이며, 마우스가 지금 어디 pos가 어디 당신이 필요로이 같은 것입니다 :이 테스트하지 않았습니다

if tool=="ellipse":#and the mouse is being clicked 
    if downpos[0]<pos[0]: 
     l=downpos[0] 
    else: 
     l=pos[0] 
    if downpos[1]<pos[1]: 
     t=downpos[0] 
    else: 
     t=pos[0] 
    if shiftDown: 
     if l<t: 
      pygame.draw.ellipse(screen, c, (l, l, abs(downpos[0]-pos[0]), abs(downpos[1]-pos[1])), size) 
     else: 
      pygame.draw.ellipse(screen, c, (t, t, abs(downpos[0]-pos[0]), abs(downpos[1]-pos[1])), size) 
    else: 
     pygame.draw.ellipse(screen, c, (l, t, abs(downpos[0]-pos[0]), abs(downpos[1]-pos[1])), size) 

, 그것이 작동하지 않는 경우, 그래서 그냥 날 보자 알고있다.

+0

내가 찾고 있던 것이 아니라 내 눈을 열어서 서클로 그려 내 프로그램을 수정했습니다. 고맙습니다! – Collin