저는 파이 게임에서 약간의 해적 게임을 쓰고 있습니다. Empires Total War에서 바다 전투를했다면, 내가 얻고 싶은 것을 생각할 수 있습니다.마우스 클릭 위치로 단계별로 스프라이트 이동
우주선의 스프라이트 위치는 (x1|y1)
입니다. 이제 플레이어는 화면상의 (x2|y2)
위치를 클릭합니다. 스프라이트는 이제 새로운 위치로 (x2|y2)
을 가져 가기로되어 있습니다. 즉각적으로 거기를 비추는 것이 아니라 단계적으로 진행하는 것입니다.
이 나는 사각형 (x1|y1)
, (x1|y2)
, (x2|y2)
, (x2|y1)
의 대각선 함께 할 수있는 뭔가가 있지만 난 그냥, 특히하지에 상관없이 각 대각선이 같은 속도를 유지하지로, 그것을 알아낼 수 있다고 생각 x
및 y
중 하나 (선박 또는 클릭)의 값이 다른 것보다 크거나 작을 수도 있습니다.
def update(self, new_x, new_y, speed, screen, clicked):
if clicked:
self.xshift = (self.x - new_x)
self.yshift = ((self.y - new_y)/(self.x - new_x))
if self.x > (new_x + 10):
self.x -= 1
self.y -= self.yshift
elif self.x > new_x and self.x < (new_x + 10):
self.x -= 1
self.y -= self.yshift
elif self.x < (new_x - 10):
self.x += 1
self.y += self.yshift
elif self.x < new_x and self.x < (new_x - 10):
self.x += 1
self.y += self.yshift
else:
self.x += 0
self.y += 0
screen.set_at((self.x, self.y), (255, 0, 255))
은 "배는"여기에 단지 분홍색 픽셀입니다 :
이 작은 조각은 작동 기능을 쓸 수있는 내 마지막 시도입니다. 내 클릭이 화면에 표시되는 반응은 대략 내 클릭으로 이동하지만 클릭 한 지점의 임의의 거리에서 멈추는 것입니다.
변수는 : 마우스 클릭
speed
= 일정한 속도
new_x
new_y
= 위치 선종
clicked
에 따라 = xshift 자기의 yshift가되도록 상기
MOUSEBUTTONDOWN
이벤트에 의해
true
세트 플레이어가 클릭 할 때만 정의되고 각 프레임은 다시 정의되지 않습니다.
우주선을 현재 위치에서 플레이어가 클릭 한 지점까지 부드럽게 움직이게하려면 어떻게해야합니까?
내 동생의 이름도 (그러나 "C"를 "K"와) "도미니크"입니다 : D 대단히 감사합니다! 내 생각에, 나는 내 문제를 알아 냈다. :) 대답은 분명했다. –
완료 :) 한 가지 더 : 문서에서 @property를 어디에서 찾을 수 있습니까? 파이 게임 특유입니까? 파이썬의 문서에서 단어를 찾을 수 없습니까 (아니면 그냥 간과 했습니까?) –
@patrichartmann http://docs.python.org/2/library/functions.html#property – sloth