RPG2K YMD_time system
2007.01.22 10:47
-_- 제목이 너무 거창하네요
YMD란, Year Month Day의 약자입니다.
솔직히 어디 쓰일란지는 모르겠지만 (애초에 그런 게임이 많이 안 나와서 그렇습니다)
일단 올려나 봅니다.
◆ 정의.
1.변수 이름
년도 = Year , 월 = Month , 일 = Day , 시간 = Hour , 분 = min , 초 = s
짝수홀수 판별식용 변수 = 2n, 2n(ass)
2. 시간
실제 시간 1초 = 게임 시간 1분
3. 기초상식
1분= 60초
1시간= 60분
하루 = 24시간
1개월 = 28,30,31일이고(윤달은 뺍니다)
1년 = 12개월
2월달은 28일까지
1,3,5,7,8,10,12월달은 31일까지
4,6,9,11월달은 30일까지
설명은 나중에. 결과부터
- 결과물
1.
커먼 이벤트생성, 이름은 time
◆대기: 10프레임
◆변수의 조작: min + 1
◆조건분기: min = 60
◆변수의 조작 : Hour + 1
◆변수의 조작 : min - 60
◆조건분기: Hour = 24
◆변수의 조작 : day + 1
◆변수의 조작 : Hour - 24
◆스위치의 조작 : date, on
: 그 외의 경우
◆
:분기종료
: 그 외의 경우
◆
:분기종료
◆
2.
커먼 이벤트 생성, 이름은 date
발동 조건은 스위치 date가 on 되었을 경우
◆조건분기 : 변수 Month = 2
◆조건분기 : 변수 Day = 29
◆변수의 조작 : Month + 1
◆변수의 조작 : Day - 28
◆라벨 이동 : end
◆
: 그 외의 경우
◆라벨 이동 : end
◆
: 분기 종료
◆
:그 외의 경우
◆변수의 조작 : 2n = Month
◆변수의 조작 : 2n * 10
◆변수의 조작 : 2n / 2
◆변수의 조작 : 2n(ass) = Month
◆변수의 조작 : 2n(ass) / 2
◆변수의 조작 : 2n(ass) * 10
◆변수의 조작 : 2n - 2n(ass)
◆조건분기 : 변수 month =< 7
◆조건분기 : 변수 2n = 0
◆조건분기 : 변수 day = 31
◆변수의 조작 : month + 1
◆변수의 조작 : day - 30
◆라벨 이동 : end
◆
: 그 외의 경우
◆라벨 이동 : end
◆
: 분기 종료
◆
: 그 외의 경우
◆조건 분기 : 변수 day = 32
◆변수의 조작 : month + 1
◆변수의 조작 : day - 31
◆라벨이동 : end
◆
: 분기 종료
◆
: 분기 종료
◆
:그 외의 경우
◆조건 분기 : 변수 Month >= 8
◆조건 분기 : 변수 2n = 5
◆조건 분기 : 변수 day = 31
◆변수 조작 : month + 1
◆변수 조작 : day - 30
◆라벨 이동 : end
◆
: 그 외의 경우
◆라벨 이동 : end
◆
: 분기 종료
◆
: 그 외의 경우
◆조건 분기 : 변수 day = 32
◆변수의 조작 : month + 1
◆변수의 조작 : day - 31
◆조건분기 : 변수 month = 13
◆변수의 조작 : year + 1
◆변수의 조작 : month - 12
◆라벨 이동 : end
◆
: 그 외의 경우
◆라벨 이동 : end
◆
: 분기 종료
◆라벨 이동 : end
◆
: 분기 종료
◆라벨 이동 : end
◆
:분기 종료
◆라벨 이동 : end
◆
: 그 외의 경우
◆라벨 이동 : end
◆
: 분기 종료
◆라벨 이동 : end
◆
: 분기 종료
◆라벨 : end
◆스위치의 조작 : date : off
◆
◆설명
자, 즐거운 설명시간~ (-_-)
지겨우니까 알고리즘 알고싶은분만 보십쇼
솔직히, 초까지 재연해서 길게 할 게임은 없을 거라고 보고 초 변수를 삭제합니다.
그리고 게임상의 1분을 현실의 1초라고 정의합니다.
커먼 이벤트에 있고 병렬 처리된다는 가정 하에 식은,
◆대기 10프레임
◆변수의 조작 : m + 1
이런 식이 됩니다.
1분은 60초이므로, 초가 무한정 늘어나는 걸 막기 위해서 조건 분기를 씁니다
그리고 60분일 경우 1시간이므로, 이것도 조건 분기를 씁니다.
◆대기 10프레임
◆변수의 조작 : m + 1
◆조건분기 : 변수m = 60
◆ 변수의 조작 : H + 1
◆ 변수의 조작 : m - 60
◆조건분기 : 변수H = 24
◆변수의 조작 : Day + 1
◆변수의 조작 : H - 24
◆분기종료
◆분기종료
대강 이런 식이죠.
또 한달은 30일이니까, 조건분기 쓰고 또 쓰고 ..
이런식은 뭔가 좀 무식해 보입니다
연산시간도 많이 소요되고요.
그래서!
조금이라도 연산시간을 줄이기 위해서 커먼 이벤트 하나 더 만들었습니다.
그리고 스위치를 하나 넣었습니다. 스위치 이름은 date입니다.
◆대기 10프레임
◆변수의 조작 : m + 1
◆조건분기 : 변수m = 60
◆ 변수의 조작 : H + 1
◆ 변수의 조작 : m - 60
◆조건분기 : 변수H = 24
◆변수의 조작 : Day + 1
◆변수의 조작 : H - 24
◆스위치의 조작 : date = on
◆분기종료
◆분기종료
그리고, 새로운 커먼 이벤트를 만듭니다. 이름은 Date입니다.
병렬처리되고, 스위치 date가 on 되었을때 동작합니다.
자, 기본 상식을 뒤져보면,
1월달부터 7월달까지 짝수달은 30일이고 홀수달은 31일입니다.(2월달은 28일)
8월달부터 12월달까지 짝수달은 31이고 홀수달은 30일입니다.
그러므로, 처리 순서를 따지자면
짝수 홀수 달을 나누기 전에 2월달의 특수 케이스가 있으므로
◆조건 분기 : 변수 Month = 2
◆조건 분기 : 변수 Day = 29 (아까 시간 커먼이벤트를 잘 보시면 29일인 이유가 보입니다)
◆변수의 조작 : Month + 1
◆변수의 조작 : Day - 28
◆
: 그 외의 경우
◆7월달 이하인 케이스의 짝수달 홀수달 판별, 계산
: 그 외의 경우
7월달 이하가 아니므로 8월달 이상이란 소리가 됨
◆8월달 이상 케이스 짝, 홀수달 판별, 계산
◆12월 넘어가면 1년 올리고 1월으로 바꿈
: 종료
:종료
◆
뭐 이런 식입니다.
- 짝수 홀수 판별에 대해.
RPGxp에서 만들어서
2000에서 연산 결과를 못봤는데요
만약 5 나누기 2일 경우에,
RPG툴은 소숫점을 못 다루므로
올림, 반올림 ,내림 중 하나를 선택해서 합니다
RPGXP에서는 내림이라서
5 / 2 = 2가 나오더군요
이런 성질을 이용해서
판별식을 만들면
(month * 5) - ((month/2) * 10) = x
에서, x가 5일 경우 홀수 , 0일 경우 짝수입니다... 만
제가 방금 툴을 살짝 본 결과
-_-
나머지를 따로 구할수 있네요 -_--_-----
나머지는 r2k에서 승제라고 표기되죠?
판별식 부분 바꿔줍니다.
◆변수의 조작 : 2n = month
◆변수의 조작 : 2n %(승제 옵션 클릭) 2
에서, 1이면 홀수 0이면 짝수이므로
위의 조건 분기도 다 1, 0 으로 바꿔줘야 합니다.
뭔가 굉장히 복잡하죠?
열받아도 어쩔수 없습니다. 24분기 나눈 인간을 족치든지 하세요-_-
직접 만들라고 하면 아무도 안만들거같아서 예제 올리든지 할께요
(이러고 올린적 거의 없음-_-)
또 , 스위치와 커먼 이벤트를 몇개 더 사용해서
화면 색조의 변화라든지를 만들수도 있습니다
시간 변화에 따른 모든 것을 저 커먼 이벤트 time을 이용해서 만들 수 있다는 것입니다.
활용 범위가 무궁무진하죠 ~
어쨌든 -_- 수고하셨습니다. 여까지 본다고
댓글 6
-
새벽도둑
2007.01.22 23:53
-
Spegel
2007.01.23 00:21
새벽도둑 // '어떤 판타지계 소설을 보니까, 인간 수명이 지금보다 2배 정도 길어서 날짜 세는 개념도 바뀌었던데,
그 체계가 익숙하지 않아서 읽는데 불편했습니다.' 라든지, 이런 불편함 때문에 선호하는 편은 아님 -_-;|+rp2+|2808|+rp3+|bibup -
새벽도둑
2007.01.23 17:17
그정도로 바꾸면 확실히 어렵죠;
그냥 '모든 달은 30일이다'라는 정도로만 바꾸어도 알고리즘이 훨씬 간단해지거든요. |+rp+|2808|+rp2+|2811|+rp3+|bibup -
『덩키동크』
2007.01.23 22:24
수고하셨습니다. 짜느라 머리좀 굴리셨겠어용 ㅎㅎ
다만, 이런걸 짜버리면 전 머리아파서 -_-;;
실제로는 게임에 날짜개념 같은건 거의 활용을 안하는편.. <- 이런 무책임한 녀석!|+rp2+|2812|+rp3+|bibup -
Spegel
2007.01.24 01:34
새벽도둑 // 아.. 그러면 엄청 간단해지죠 --; 여튼 저거 구상하는데 1시간이나 걸렸는데 -_-;|+rp2+|2813|+rp3+|bibup -
크림
2007.01.24 03:52
으허어어어 뭔말이여 =ㅅ=
역시 초짜의 한계란,,|+rp2+|2815|+rp3+|bibup
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
511 | [도트]머그컵 틀잡기. [2] | 카타린 | 2007.01.27 | 327 |
» | YMD_time system [6] | Spegel | 2007.01.22 | 178 |
509 | 데미지의 난수처리(난수 사이의 난수) [7] | FirstMoon | 2007.01.15 | 160 |
508 | 이해하기 어려운 맵배치 강좌 - 던젼 - [8] | 에그。 | 2007.01.14 | 468 |
507 | RPG_xp업그레이드 팩키지(스크립트, 그래픽)-Final ver [20] | 星の카비 | 2007.01.13 | 827 |
506 | 이론강의 4. 시나리오 작성 - 설정 [2] | Vermond | 2007.01.12 | 189 |
505 | 초간단 작명법 | Mr. J | 2007.01.11 | 217 |
504 | Nwc 드럼 추가하는 법 [1] | C코드선생 | 2007.01.07 | 130 |
503 | 도박 시스템 [1] | 연필군 | 2007.01.06 | 183 |
502 | [RMXP] 펫 소환 강좌 [2] | 연필군 | 2007.01.06 | 244 |
501 | [RMXP] 벽 소환 이벤트를 만들자 [1] | 연필군 | 2007.01.06 | 135 |
500 | 스크립트를 이용하여 텍스트색상과 갯수를 바꿔보자 ! [3] | 준돌 | 2006.12.29 | 270 |
499 | 바람수지매클 이동리스트 작성요령 | 청연 | 2006.12.28 | 68 |
498 | 포토샵 완전 정복 !! - 1 - (채도감소) [2] | 다크세이버™ | 2006.12.20 | 144 |
497 | 주인공 이름이 마땅한게 없다면~ [15] | 네모상자 | 2006.12.12 | 775 |
496 | 각툴의 팔렛트비교 [3] | 카타린 | 2006.12.11 | 468 |
495 | [도트] 포션그리기 [7] | 카타린 | 2006.12.10 | 668 |
494 | [첫강좌] 양털을 깎아봅세~! [4] | 땅콩아줌마 | 2006.12.09 | 364 |
493 | 이론강의 3. 제작에 앞서 해야 될 것들 [1] | Vermond | 2006.12.08 | 154 |
492 | 이론강의 2.Vnap으로 제작가능한 장르 [2] | Vermond | 2006.12.05 | 358 |
다만 '게임이니까 현실과는 다른 날짜체계를 갖는다'라고 한뒤 간략화하는게 전 더 편하군요;;|+rp2+|2807|+rp3+|bibup