전투관련
2010.01.10 10:34

리얼타임을 이용한 딜레이 구현

조회 수 4197 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
출처 펜릴
강의종류 Ruby 언어

보통 액션알피지에서 스킬딜레이를 적용시킬때는 여러가지 방법이 있습니다.

 

보통은 프레임을 소모시켜서 딜레이를 계산하는데 이방법은 리얼타임(현실시간)을 이용한 방법입니다.

 

Ruby스크립트에서 사용하는 라이브러리에는 Time클래스가 존재합니다.

 

Time클래스의 메소드중 new,now는 현재 시간을 돌려주기 때문에 이것을 이용하면 좀더 다양한 접근방식으로

 

딜레이를 구현할수 있습니다

 

예)

 

먼저 A버튼을 사용할 경우 풍멸참이라는 스킬이 나간다고 가정합니다.

 

class Game_Character

alias action_initialize initialize

 

def initialize             #초기화부분 이부분에 스킬 딜레이값을 0을 대입해줘야 처음스킬을 사용했을때 딜레이가 적용이되지않습니다.

 action_initialize

@풍멸참딜레이 = 0

end

#================================================

#○플레이어 부분

#==============================================

class Game_Player

alias player_update update

def update

 @real_time = Time.now  # @real_time변수에 현재시각 데이터를 대입
 player_update
if @스킬사용스위치 == 1 # 스킬이 사용될때 1이 대입되면 스위치가 온됩니다.
  @풍멸참딜레이 = @real_time.to_f + 5                                  #+5는 5초의 딜레이를 준겁니다.
  @스킬사용스위치 = 0 # 딜레이가 적용되면 스위치 오프
end


if actor.skill_learn?(57)                             #액터가 해당스킬을 보유하고 있는가? ()안의 숫자는 데이터베이스 57번째 스킬

 if Input.trigger?(Input::A) and @풍멸참딜레이.to_f <= @real_time.to_f

 @스킬사용스위치 = 1                           #스킬이 사용되면서 딜레이가 적용됩니다.             

 

#---------------해당스킬에 대한 내용----------------------#

 

   end

 end

end

 

 

#여기서 to.f 라는 메소드는 실수를 반환합니다.

#Time.now는 현재시각정보에 연도,월,일,시간,분,초 데이터가 출력되기때문에 연도와 월 일 시간 분을 전부 초로 변환시켜줘야합니다.

#따라서  Time.now가 저장되어있는 @real_time 인스턴스변수에 to_f 메소드를 사용해야 합니다.
====================================================================================================

구동에 대한 요약을 하자면

 

A버튼을 누를 경우 인스턴스변수 @풍멸참딜레이와 @real_time 이 비교를합니다. 현재시각은 2010년 1월 10일 10시 53분 0초니까

 

@real_time에 2010년 1월 10일 10시 53분 0초가 대입이 됩니다.

 

처음스킬을 사용했다면 이니셜라이즈에 풍멸참딜레이값이 0으로 셋팅되있었으니  "0 <= real_time"

 

@real_time값이 풍멸참딜레이값(0)보다 크기때문에   if 문을 통과하게 됩니다.

통과하면서 @스킬사용스위치에 1이 대입되니 update메소드 안에 정의했던 스킬사용스위치 if문이 발동되어

 

 @풍멸참딜레이 = @real_time.to_f + 5   풍멸참 딜레이에 현재시각에 5초를 더한 값(2010년 1월 10일 10시 53분 "5초")이 대입이 됩니다.

 

그럼 다음번에 스킬을 사용할때는 2010년 1월 10일 10시 53분 5초 이후가 아니면 스킬이 발동되지 않습니다.

  • ?
    ruby 2010.01.10 12:10

    좋은 내용의 스크립트 강의입니다 스크립트중에 타임클레스가 있었다는걸 자각시켜줌과 동시에 이용법을 친절하게 설명해주셧네요 !

    첫글 축하드립니다


List of Articles
분류 제목 글쓴이 날짜 조회 수 추천 수
공지사항 일본어 스크립트를 번역하기 좋은 번역사이트 두곳입니다 ruby 2010.01.09 22074 0
공지사항 스크립트 게시판 관리자' ruby ' 입니다 ruby 2010.01.09 20725 0
공지사항 일본 스크립트/소스 공유 포럼 4 니오티 2010.01.05 22249 0
전투관련 누구나 쉽게 만드는 액션알피지 6 펜릴 2012.11.25 4344 0
전투관련 초간단 XAS 오리지널. 1 file 호호리터엉 2011.08.04 2614 0
전투관련 ZTBS 10 file 강현문 2010.06.05 3533 0
전투관련 턴제 전투방식 스크립트!!!!!!! 7 file XP 팬 2010.04.30 3329 0
전투관련 간단한 액션알피지용 스크립트 Ver.1.01 (게임오버 추가) 38 file 펜릴 2010.04.11 8730 0
전투관련 ABP 액알 예제 4 file ruby 2010.02.10 3531 1
전투관련 어떤 한 몬스터를 공격지정할때 그 몬스터가 줌되는 스크립트 9 windshy 2010.01.13 2182 0
전투관련 리얼타임을 이용한 딜레이 구현 1 펜릴 2010.01.10 4197 0
전투관련 레벨업시 체력 회복 스크립트 4 루시아스 2010.01.05 2112 0
전투관련 파괴효과 스크립트 이벤트적용 <사용법> 11 file 아하하 2007.12.06 2691 3
전투관련 파괴효과 추천스크립트 7 file 아하하 2007.12.06 3588 1
전투관련 콤보 스크립트 10 아하하 2007.12.05 3699 4
전투관련 턴알 게이지바 변경 스크립트 (HP/SP) 3 file 니오티 2007.02.20 3984 2
전투관련 게이지 확인창 스크립트 (HP/SP/EXP) 4 file 니오티 2007.02.20 3540 5
Board Pagination Prev 1 Next
/ 1

Copyright ⓒ Nioting All Rights Reserved. (since 1999)    개인정보
        

Fatal error: Cannot access property sessionController::$lifetime in /web/old/xe/modules/session/session.controller.php on line 45