'2010/09/25'에 해당되는 글 1건

  1. 2010/09/25 펭귄대왕 IEditor v0.1 - 2D게임 개발지원툴
사용자 삽입 이미지

10일간의 결과물 완성.
기능적으로는 SIS-Animator 툴하고 아주 흡사한 물건입니다..

만들어진 스프라이트 그림들을 불러들여 게임 화면처럼 구성하면, 프로그램 소스에 바로 적용할 수 있는 배열이나 pseudo code를 생성할 수 있습니다.

여러장의 스프라이트가 한 장으로 합쳐진 것을 불러들여 크롭된 별개의 리소스로 재등록하는 것도 가능.
하나의 리소스로 복수의 레이어를 생성할 수 있습니다.

동일한 리소스를 사용하는 레이어라도 레이어 별로 상하, 좌우 플립이나 10~500% 사이에서 확대축소를 별도로 적용할 수 있어, 기본적으로는 피처폰 게임이나 SDL 게임 등에서 사용하기 위한 툴이지만, 스마트폰이나 저사양 콘솔 게임용으로도 사용 가능합니다. (현재 회전기능은 미구현)

이미지 변환 옵션은 레이어 단위로 이루어져서 리소스에 대한 영향은 없음.

만들다보니까 이런저런 구현이 들어가서 제법 프로그램처럼 되었네요..
java.awt로 만들어진 프로그램이니 아마 맥에서도 돌릴 수 있을 듯.

※스크린샷의 데이터를 그대로 써서 export한 의사 코드
-------------------------------------------
Title_INIT(){
//Resource
image[title_bg]=createImage("C:\work\rsc\title_bg.png","title_bg");
image[logo]=createImage("C:\work\rsc\vk_logo.png","logo");
image[corp_logo]=createImage("C:\work\rsc\mgcook_1.png","corp_logo");
image[rate]=createImage("C:\work\rsc\all.png","rate");
image[etc]=createImage("C:\work\rsc\eft_ellec.png","etc");
image[etc_c0,0]=createImage("C:\work\rsc\eft_ellec.png","etc_c0,0", 0,0, 28,19);
}
//
Title_DRAW(){
//Layer
drawImage(image[title_bg],0,0, 0, 0, 100, 0);
drawImage(image[etc_c0,0],196,193, 0,0, 28,19, 4, 1, 200, 0);
drawImage(image[logo],120,189, 4, 0, 100, 0);
drawImage(image[corp_logo],120,282, 4, 0, 100, 0);
drawImage(image[rate],238,2, 2, 0, 100, 0);
drawImage(image[etc_c0,0],20,197, 0,0, 28,19, 4, 0, 100, 0);
drawImage(image[etc_c0,0],92,153, 0,0, 28,19, 0, 2, 150, 0);
}
-------------------------------------------

개인작업으로 개발한 거지만 일단 회사 내에서 돌려 써보고 차후로 기능을 추가하다가 공개하거나..

일단 직후에 추가할 내용은, 레이어 별로 회전 적용(360도 자유회전)과, 프레임 단위 관리를 가능하게 해서, 일종의 애니메이션 메이커처럼 쓸 수 있는 기능 되겠군요..

초반엔 awt 다루는데 서툴러서 고전하고 소스도 막 꼬였지만, 10일간 작업하고 나니 이건 이것대로 익숙해져서 웬만한 건 뭐든지 할 수 있겠습니다..


사용자 삽입 이미지
애니메이션 프레임 기능을 간단히 추가해봤습니다..
프로그램상에서 곧바로 애니메이션을 돌리지는 못하지만 프레임 탐색 기능으로 애니메이션 흉내는 가능. 레이어 복제 기능 정도는 추가해야 할지도..

frame_test_INIT() {
//Resource
 image[e1]=createImage("C:\work\valen\rsc\enemy_01.png","e1");
 image[e2]=createImage("C:\work\valen\rsc\enemy_02.png","e2");
 image[e3]=createImage("C:\work\valen\rsc\enemy_03.png","e3");
 image[e5]=createImage("C:\work\valen\rsc\enemy_05.png","e5");
 image[e4]=createImage("C:\work\valen\rsc\enemy_04.png","e4");
 image[e6]=createImage("C:\work\valen\rsc\enemy_06.png","e6");
 image[e7]=createImage("C:\work\valen\rsc\enemy_07.png","e7");
 image[e8]=createImage("C:\work\valen\rsc\enemy_08.png","e8");
 image[e9]=createImage("C:\work\valen\rsc\enemy_09.png","e9");
 image[e10]=createImage("C:\work\valen\rsc\enemy_10.png","e10");
 image[e11]=createImage("C:\work\valen\rsc\enemy_11.png","e11");
 image[e12]=createImage("C:\work\valen\rsc\enemy_12.png","e12");
 image[e13]=createImage("C:\work\valen\rsc\enemy_13.png","e13");
 image[e14]=createImage("C:\work\valen\rsc\enemy_14.png","e14");
}
//
//Layer
frame_test_DRAW() {
 switch(frame){
 case 0://Frame 0
  drawImage(image[e1],50,50, 4, 0, 100, 0);
  break;
 case 1://Frame 1
  drawImage(image[e2],50,50, 4, 0, 100, 0);
  break;
 case 2://Frame 2
  drawImage(image[e3],50,50, 4, 0, 100, 0);
  break;
 case 3://Frame 3
  drawImage(image[e2],50,50, 4, 0, 100, 0);
  break;
 }
}
프레임이 적용된 코드 export 기능 테스트.
2010/09/25 05:15 2010/09/25 05:15
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.modelisland.pe.kr/blog/rss/response/218

트랙백 주소 :: http://www.modelisland.pe.kr/blog/trackback/218

트랙백 RSS :: http://www.modelisland.pe.kr/blog/rss/trackback/218

댓글을 달아 주세요

댓글 RSS 주소 : http://www.modelisland.pe.kr/blog/rss/comment/218
[로그인][오픈아이디란?]