덧글수0
요즘 3D 맵 에디터를 만들고 있는데, 하다보니 텍스쳐를 못 읽어와서 메쉬에 컬러 값을 랜덤으로 넣고 있었다.
결과물은 매우 보기 흉함...
어떻게 할까 하다가 웹에서 이런 페이지를 찾았다.

아... 이 정도면 괜찮겠구나.
문제는 이 데이터를 액션스크립트에서 사용 가능한 형태로 뽑아주는 것.
일단 생각 없이 마우스로 긁어서 에디트 플러스에 옮겼다.

필요한 건 가운데에 있는 헥스코드다. Mahogany나 205, 74, 74 따위는 필요 없다. 액션스크립트에서는 다음과 같은 코드를 쓸 예정이기 때문이다.
var mat:ColorMaterial = new ColorMaterial(colors[int(Math.random() * 120)]);
요즘 열심히 풀고 있는 알고리즘 문제들이 생각나면서, 파이썬으로 이 문제를 쉽게 풀 수 있을 거라는 생각이 들었다. 파이썬을 실생활에 활용하는 것은 처음이다.
아래는 간단하게 짜 본 코드다.
f=open('color.txt','r')
m=[]
for i in range(120):
t=f.readline().replace(" ","").split()
m.append(t[1])
m=["0x"+s for s in m]
print m
color.txt 에 에디트 플러스의 값을 저장한 뒤 파이썬에서 위 코드를 실행시키니 아래와 같은 결과가 나왔다.
이 값을 그대로 복사해서 액션스크립트에 넣었다.
private var colors:Array = ['0xCD4A4A', '0xCC6666', '0xBC5D58', '0xFF5349', '0xFD5E53', ...
그 결과 나름대로 괜찮은 컬러값을 사용할 수 있었다.
나중에 생각해보니 엑셀이나 정규표현식으로도 간단히 할 수 있는 작업이었다는 것은... 음;



최근 덧글