언어/기타
2007.06.25 19:12

[THDO]판화 세계지도제작 스크립트.

조회 수 2704 추천 수 3 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부








#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로 바꿔서 덮어 씌운다.

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
884 언어/기타 액션알피지 왕초보도 따라하는.. -스킬만들기- LifeⓘⓢGood 2005.09.08 1789
883 언어/기타 귀찮아‡님의 자동세이브 스크립트의 한글화 J.Clifford 2007.08.20 1771
882 RPG Maker 초보의 로그인박스로 웹사이트에서 인증하는 방법 설명 챔피온 2005.05.28 1770
881 언어/기타 MFC 색상표 file 피군 2006.09.12 1770
880 RPG Maker 액션 게임을 만들어 보자! 『연금술사』 2006.09.27 1766
879 언어/기타 [DX/VB] DirectDraw? 별거 아냐! (1) DirectDraw객체의 생성과 표면의 생성 악희 2007.07.29 1757
878 RPG Maker 대화창을 화사하게 장식해볼까요? 장식은 정말 쉽죠? 노친네 2006.08.17 1748
877 언어/기타 액알 의견들을 모집합니다. 비밀소년 2006.08.03 1746
876 언어/기타 게이지바 만들기 블리쳐 2005.06.24 1740
875 RPG Maker [스크립트 문제]RPGXP에서 타일셋의 우선순위 문제 해결 file Novelist 2007.07.19 1739
874 RPG Maker 게임제작 시작하시는분들을위한 강좌!(외부링크) diget 2013.09.23 1736
873 언어/기타 [DX&C++] 화면에 글씨를 써볼까요. 10 Zeprod 2007.05.22 1735
872 RPG Maker 웨이브 파일 용량 줄이는 법 file 아마란스 2005.07.01 1732
871 언어/기타 플레이어가 자기의 이름을 정한다 . [영어] file Norid 2005.05.21 1718
870 언어/기타 ARM 어셈블리 강좌 #0: 무념 원스타 2006.08.17 1718
869 RPG Maker 아주~~아주~~(커 치킨;;)쉬운 액션알피지배우기 사토루 2005.08.11 1712
868 RPG Maker RPG 만들기로 애니메이션 만들기 file CC 2005.08.19 1708
867 RPG Maker 아르바이트를 만들자 . - 1 Norid 2005.05.20 1702
866 언어/기타 대기중에 캐릭터가 움직이게/못움직이게 하려면? 유진 2007.08.24 1700
865 언어/기타 [한단계 도약] 변수 번호의 스위치 2 A. 미스릴 2007.09.13 1694
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 51 Next
/ 51






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)