이거 하나 하자고 벡터 클래스 만들기도 귀찮아서 아래와 같은 코드를 작성하곤 했는데...
import math
src = (sx, sy)
dst = (dx, dy)
scale = 2.0
delta = dst[0] - src[0], dst[1] - src[0]
deltaLen = math.sqrt(delta[0] * delta[0], delta[1] * delta[1])
deltaDir = (delta[0] / deltaLen, delta[1] / deltaLen)
newPos = deltaDir[0] * scale, deltaDir[1] * scale
속도는 둘째치고, 코드량의 압박이 장난이 아닙니다.
오늘 몬스터 날리기를 구현하던 도중 불현듯 재밌는 아이디어가 떠오르더군요
바로 복소수!! 입니다.
(x, y) 좌표 연산이나 복소수 연산이나 2차원 연산이라는 점에서 동일하거든요
짠 ~
src = (sx, sy)
dst = (dx, dy)
scale = 2.0
delta = complex(*dst) - complex(*src)
deltaLen = abs(delta)
deltaDir = delta / abs(delta)
newPos = delta / abs(delta) * scale
와하하 너무 좋아요


python 을 좋아하는 게임 프로그래머