RPGXP/VX [THDO]판화 세계지도제작 스크립트.
2007.06.25 18:36
#THDO 자체 제작. 세계지도 그리기 스크립트.
#우선 세계지도 그림을 준비한다. 가로 5등분한 지도.
# 5 * 2 지도 = 10개의 맵 파일을 형성하도록 한다.
#그림 파일은 5개. 가로 200픽셀,세로 420~450 픽셀가량이 적합하다.
#결론적으로 가로 200픽셀, 세로 250픽셀로 잘릴 지도다.
#200*250 타일을 뜻한다.
def draw_세계지도윗맵
@all_map = Sprite.new
@all_map.bitmap = Bitmap.new("Graphics/Pictures/world055")
#지도 파일을 불러온다
# p @overlap
# 약 23칸으로 맞아 떨어진다. 지도크기는 885 픽셀이다.
for m in 1..5
@this_map = load_data("Data/Map010.rxdata")
@overlap = (1000 - @all_map.bitmap.width)/5
for y in 0...250
#문제는 너비다. 5등분을 한 경우 겹치는 건 23 * 5 = 115칸.
#수학적인 규칙을 찾아내자.
#[1, 200), [201-overlap, 400-overlap), [401-2overlap, 600-2overlap)....
for x in (m-1) * (200 - @overlap)...200 + (m-1) * (200 - @overlap)
#2번째: 200-23..199 + 200-23
#3번째: 199 + 400 - 46 = 599 - 46 = 553
#4번째: 199 + 600 - 3overlap = 800 - 69 = 731.
#5번째: 199 + 800 - 4overlap = 1000 - 92 = 908.
#계산이 맞지 않는다.
@tile_num = @all_map.bitmap.get_pixel(x,y)
if (@tile_num.red <255 or @tile_num.green <255) and @tile_num.blue > 0
#검은선과 흰색을 칠하지 않고 파란색만 칠하는 방법이 없을까?
#파랑이 5보다 커야 하기 때문에 검은색은 칠해지지 않음
#빨강, 초록이 255보다 작아야 하기 때문에 흰색은 칠해지지 않음
#타일 아이디의 3차원 배열
@this_map.data[x - (m-1) * (200 - @overlap),y,0] = 96
if @tile_num.blue <= 100 and (@tile_num.red <=150 or @tile_num.green <=150)
@this_map.data[x - (m-1) * (200 - @overlap),y,0] = 48 #검은선은 얕은 물로 장식.
end
end
#타일 아이디를 변환한다.
end
end
#맵을 저장한다.
save_data(@this_map, "Data/Map00#{m}.rxdata")
#위의 경우 1번에서 5번 지도까지다.
end
end
def draw_세계지도아랫맵
@all_map = Sprite.new
@all_map.bitmap = Bitmap.new("Graphics/Pictures/world055")
#지도 파일을 불러온다
# p @overlap
# 약 23칸으로 맞아 떨어진다. 지도크기는 885 픽셀이다.
for m in 1..5
@this_map = load_data("Data/Map010.rxdata")
@overlap = (1000 - @all_map.bitmap.width)/5
for y in @all_map.bitmap.height - 250...@all_map.bitmap.height
for x in (m-1) * (200 - @overlap)...200 + (m-1) * (200 - @overlap)
@tile_num = @all_map.bitmap.get_pixel(x,y)
if (@tile_num.red <255 or @tile_num.green <255) and @tile_num.blue > 0
#타일 아이디의 3차원 배열
@this_map.data[x - (m-1) * (200 - @overlap),y - (@all_map.bitmap.height - 250),0] = 96
if @tile_num.blue <= 100 and (@tile_num.red <=150 or @tile_num.green <=150)
@this_map.data[x - (m-1) * (200 - @overlap),y - (@all_map.bitmap.height - 250),0] = 48
#검은 선은 얕은 물로 장식.
end
end
#타일 아이디를 변환한다.
end
end
save_data(@this_map, "Data/Map00#{m+5}.rxdata")
end
end
#아래 경우 6번에서 10번 지도까지다.
def draw_지도지우기
for m in 1..5
@this_map = load_data("Data/Map010.rxdata") #주의. 백지가 물이 아니게 할 것.
# p @this_map.data[0,0,0]
# exit
save_data(@this_map, "Data/Map00#{m}.rxdata")
save_data(@this_map, "Data/Map00#{m+5}.rxdata")
end
print "지도를 지웁니다"
end
#draw_지도지우기
#draw_세계지도윗맵
draw_세계지도아랫맵
#exit
#세계지도가 다 그려졌으면 나간다.
#Data 폴더에서 Maps001~ Maps005 파일명을 Map001~Map005로 바꿔서 덮어 씌운다.
댓글 7
-
협객
2007.06.25 19:12
그런데 막상 써놓고 보니 이거 이해할 능력되는 사람은 이거 만들 수도 있다는거.|+rp2+|2978|+rp3+|acoc_board_ideatip -
유리병속꽃잎
2007.06.26 01:12
.. 역시나,, 이해가 안간다는,,
좋은 스크립트긴 한데..|+rp2+|2979|+rp3+|acoc_board_ideatip -
협객
2007.06.26 01:24
지도 원판이 흐릿해서 판화를 깔끔하게 찍지 못한 아쉬움.
육지와 바다의 명도가 흑과 백으로 깔끔하게 구분되어 있으면서 정확도가 높은 지도를 찾는 중.|+rp2+|2980|+rp3+|acoc_board_ideatip -
협객
2007.06.26 07:45
마지막 스샷은 깔끔한 지도 원판을 구해서 다시 찍은 판화.
저 스샷이 나오기까지 칼라 한계치를 조정해가며 찍은 작품 판화가 반올림해서 열 장.
원판의 색깔 구성에 따라 칼라 한계치를 조정해줘야 판화가 잘 나오므로 주의. |+rp+|2980|+rp2+|2982|+rp3+|acoc_board_ideatip -
협객
2007.06.26 10:06
세계지도 제공해주신 geoworld에 감사. |+rp+|2980|+rp2+|2983|+rp3+|acoc_board_ideatip -
협객
2007.06.26 10:37
버그 하나 발견 후 수정. ㅡ.ㅡ;
@this_map.data[x - (m-1) * (200 - @overlap),y,0] = 48 #검은선은 얕은 물로 장식.
이것을
@this_map.data[x - (m-1) * (200 - @overlap),y - (@all_map.bitmap.height - 250),0] = 48
이것으로 수정.
윗맵과 아랫맵의 구성에 일관성이 있어야 하므로.|+rp2+|2984|+rp3+|acoc_board_ideatip -
kcss
2007.07.19 00:31
대단하네요
문제는 제가만드는 겜이랑은 거리가 먼 스크립트;;|+rp2+|3006|+rp3+|acoc_board_ideatip
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
469 | 게이지바 스크립트 [6] | 브레인 | 2006.09.06 | 4371 |
468 | [MiD]비전투RPG -1- [2] | 천공MiD짱 | 2006.05.17 | 3211 |
467 | 연애 시뮬레이션 만들기 2 [11] | Vermond | 2006.07.26 | 3082 |
466 | 신개념 마법시스템? [16] | [S's-S] | 2006.07.25 | 2856 |
465 | 게임에서 마우스로 게임하기 [10] | 브레인 | 2006.09.06 | 2472 |
464 | SRPG 만들기 강의 - 0. SRPG는 무엇일까? [6] | contect | 2008.07.23 | 2392 |
463 | RPG 2000/2003에서의 마우스 사용(수정) [14] | Black-☆ | 2007.11.19 | 2132 |
462 | 미니맵을 만들어 보자 - 스크립트 - [11] | 브레인 | 2006.09.06 | 1922 |
461 | [VX] 창문으로 빛이 뚫고 나오게 하기 [뽀샵] [2] | 정의로운녀석! | 2008.06.22 | 1875 |
460 | rpg만들기 DS 사용법(60%) [4] | GMF | 2007.12.28 | 1819 |
459 | 인벤토리 시스템 [내용 또 수정] [17] | 비밀소년 | 2006.07.28 | 1800 |
458 | RPG만들기 실력테스트! [16] | 엔젤레기온 | 2007.12.18 | 1792 |
457 | 악당들의 유형들..? [23] | 크레시스 | 2005.12.27 | 1767 |
456 | RPG_xp업그레이드 팩키지 [3] | 星の카비 | 2007.12.16 | 1764 |
455 | [TIP]대기 0초 [19] | Yggdrasil | 2006.08.11 | 1763 |
454 | 보스는 왜 맨날 쫄자들만 보내는가!? [23] | 다크아머 | 2006.01.23 | 1674 |
453 | 바람의나라 - 쇄혼비무 , 초혼비무 [9] | 액알의초보 | 2006.07.04 | 1672 |
» | [THDO]판화 세계지도제작 스크립트. [7] | 협객 | 2007.06.25 | 1668 |
451 | 콤보 스크립트 [7] | 귀여븐닌자 | 2006.08.23 | 1624 |
450 | [공개자료] 먼치킨 액알 만들기 [11] | 책벌레공상가 | 2007.03.26 | 1598 |