언어 RGSS/스프라이트문제와 키입력 문제.....
2005.07.17 16:38
RGSS도 언어니까......
괜찮겠지....
#==============================================================================
# ■ Scene_Titlename
#------------------------------------------------------------------------------
# 타이틀네임을 처리하는 클래스입니다 ※제작자 : 『연금술사』
#==============================================================================
class Scene_Titlename
#--------------------------------------------------------------------------
# ● 메인 처리
#--------------------------------------------------------------------------
def main
# 타이틀 그래픽을 작성
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title("Titlename")
# 타이틀 BGM 를 연주
Audio.me_play("Audio/ME/015-Mystery01")
# BGS 의 연주를 정지
Audio.bgs_stop
# 트란지션 실행
Graphics.transition(45, "Graphics/Transitions/015-Diamond01")
# 메인 루프
loop do
# 게임 화면을 갱신
Graphics.update
# 프레임 갱신
update
# 화면이 바뀌면 루프를 중단
if $scene != self
break
end
end
# 트란지션 준비
Graphics.freeze
# 타이틀 그래픽을 해방
@sprite.bitmap.dispose
@sprite.dispose
end
#--------------------------------------------------------------------------
# ● 프레임 갱신
#--------------------------------------------------------------------------
def update
# C 버튼이 밀렸을 경우
if Input.trigger?(Input::C)
$scene = Scene_Map.new
return
end
end
end
제가 만든 "타이틀네임"스크립트 입니다. 참고로 말하자면, 이거 만드는데 3시간 걸린(1시간 반씩 2일) 100% 자작입니다. 아무튼, 맵에서 이벤트 스크립트로 $scene = Scene_Titlename.new 를 사용하면 트랜지션효과가 되면(다이아몬드1) Titlename이라는 그림이 뜨게 만들었습니다. "미스터리" ME를 연주하고, Bgm을 멈추게 하는 효과도 넣봤습니다(Game_Temp에 있더라구요 ㅇㅂㅇ). 해보시면 알겠지만, 효과음(ME)도 들리고, 트랜지션도 되고, 그래픽 업데이트도 됩니다. 여기까진 순조롭게 되나....
문제는 아랫부분!
보시면 아시겠지만, C버튼이 눌렸을 경우에, 맵 화면으로 전환되게 해 놨는데, 그게 안된다는 거빈다......
원인은 아직 불명. 다른 씬에서는 그냥 전환 되는데....혹시 몰라서 B버튼을 조건을 해보기도 했으나.....
역시 안됩니다....
그리고, 아직 제가 모르는 부분은 이것! "업데이트 메소드 부분을 x초(10x 프레임)동안 금지 시킨후,
x초가 지나면 실행 가능하게" <- 이 방법이 있다면 알려주시길.......혹은 자동으로 씬이 바뀐다거나.....
이렇게 하는 이유는, ME와 트랜지션이 있기 때문입니다. ME나 트랜지션이 끝나지도 않았는데 씬이 바뀌면 어섹하니까, 몇초후에 자동으로 전환되거나, 몇초후에 키 입력이 가능하게 만드는게 필요합니다.....
그리고, 제가 만든 그래픽은, 검은 바탕에 글씨가 있는 겁니다. 제가 생각한 아이디어는, 애초에 확대시킨후, 조금씩 줄어들고, 어느정도 줄어든후(x초후 로 계산)부터 천천히 줄어드는것입니다......
줄어드는것은 알고 있지만(무의미효과 스크립트를 반대로 하면...), 애초에 확대시키는 것이라던가,
몇초 후 부터 천천히 줄어드는 것은 잘 모르므로.......
* 그래픽이 축소되는 것 : 무의미 연출 스크립트로 연구를 해봤습니다.
for i in 0..64
@sprite.x += 32 #위치
@sprite.y += 28 #위치
@sprite.zoom_x -= 0.1
@sprite.zoom_y -= 0.1
@sprite.opacity += 5
Graphics.update
end
이런식으로 하면 되더라구요(y 좌표는 제 그래픽 기준입니다). 이게 축소시키는
스크립트.......해보시면 아시겠지만.....엄청난 속도로 축소를 합니다....
0..64 를 0..1로 바꿔보니 10% 정도 느려진것 같긴 한데........그래도 엄청난 속도로
축소됩니다.......위치를 -로 하고, zoom을 +로 하면 천천히 확대되다가 사라집니다.
사라지는건 opacity를 -로 놨을때 확대와 함께 점점 흐려지는것으로 생각됩니다.
아무튼, 40분동안 연구를 해봤지만 답이 안나옵니다......
괜찮겠지....
#==============================================================================
# ■ Scene_Titlename
#------------------------------------------------------------------------------
# 타이틀네임을 처리하는 클래스입니다 ※제작자 : 『연금술사』
#==============================================================================
class Scene_Titlename
#--------------------------------------------------------------------------
# ● 메인 처리
#--------------------------------------------------------------------------
def main
# 타이틀 그래픽을 작성
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title("Titlename")
# 타이틀 BGM 를 연주
Audio.me_play("Audio/ME/015-Mystery01")
# BGS 의 연주를 정지
Audio.bgs_stop
# 트란지션 실행
Graphics.transition(45, "Graphics/Transitions/015-Diamond01")
# 메인 루프
loop do
# 게임 화면을 갱신
Graphics.update
# 프레임 갱신
update
# 화면이 바뀌면 루프를 중단
if $scene != self
break
end
end
# 트란지션 준비
Graphics.freeze
# 타이틀 그래픽을 해방
@sprite.bitmap.dispose
@sprite.dispose
end
#--------------------------------------------------------------------------
# ● 프레임 갱신
#--------------------------------------------------------------------------
def update
# C 버튼이 밀렸을 경우
if Input.trigger?(Input::C)
$scene = Scene_Map.new
return
end
end
end
제가 만든 "타이틀네임"스크립트 입니다. 참고로 말하자면, 이거 만드는데 3시간 걸린(1시간 반씩 2일) 100% 자작입니다. 아무튼, 맵에서 이벤트 스크립트로 $scene = Scene_Titlename.new 를 사용하면 트랜지션효과가 되면(다이아몬드1) Titlename이라는 그림이 뜨게 만들었습니다. "미스터리" ME를 연주하고, Bgm을 멈추게 하는 효과도 넣봤습니다(Game_Temp에 있더라구요 ㅇㅂㅇ). 해보시면 알겠지만, 효과음(ME)도 들리고, 트랜지션도 되고, 그래픽 업데이트도 됩니다. 여기까진 순조롭게 되나....
문제는 아랫부분!
보시면 아시겠지만, C버튼이 눌렸을 경우에, 맵 화면으로 전환되게 해 놨는데, 그게 안된다는 거빈다......
원인은 아직 불명. 다른 씬에서는 그냥 전환 되는데....혹시 몰라서 B버튼을 조건을 해보기도 했으나.....
역시 안됩니다....
그리고, 아직 제가 모르는 부분은 이것! "업데이트 메소드 부분을 x초(10x 프레임)동안 금지 시킨후,
x초가 지나면 실행 가능하게" <- 이 방법이 있다면 알려주시길.......혹은 자동으로 씬이 바뀐다거나.....
이렇게 하는 이유는, ME와 트랜지션이 있기 때문입니다. ME나 트랜지션이 끝나지도 않았는데 씬이 바뀌면 어섹하니까, 몇초후에 자동으로 전환되거나, 몇초후에 키 입력이 가능하게 만드는게 필요합니다.....
그리고, 제가 만든 그래픽은, 검은 바탕에 글씨가 있는 겁니다. 제가 생각한 아이디어는, 애초에 확대시킨후, 조금씩 줄어들고, 어느정도 줄어든후(x초후 로 계산)부터 천천히 줄어드는것입니다......
줄어드는것은 알고 있지만(무의미효과 스크립트를 반대로 하면...), 애초에 확대시키는 것이라던가,
몇초 후 부터 천천히 줄어드는 것은 잘 모르므로.......
* 그래픽이 축소되는 것 : 무의미 연출 스크립트로 연구를 해봤습니다.
for i in 0..64
@sprite.x += 32 #위치
@sprite.y += 28 #위치
@sprite.zoom_x -= 0.1
@sprite.zoom_y -= 0.1
@sprite.opacity += 5
Graphics.update
end
이런식으로 하면 되더라구요(y 좌표는 제 그래픽 기준입니다). 이게 축소시키는
스크립트.......해보시면 아시겠지만.....엄청난 속도로 축소를 합니다....
0..64 를 0..1로 바꿔보니 10% 정도 느려진것 같긴 한데........그래도 엄청난 속도로
축소됩니다.......위치를 -로 하고, zoom을 +로 하면 천천히 확대되다가 사라집니다.
사라지는건 opacity를 -로 놨을때 확대와 함께 점점 흐려지는것으로 생각됩니다.
아무튼, 40분동안 연구를 해봤지만 답이 안나옵니다......
댓글 2
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
» | RGSS/스프라이트문제와 키입력 문제..... [2] | 『연금술사』 | 2005.07.17 | 498 |
46 | 게임 만드는 방법좀 | 티다 | 2005.07.17 | 34 |
45 | 사운드용어좀 가르쳐주세요 [1] | 거덩님 | 2005.07.11 | 76 |
44 | 게임 프로그래밍을 힘들게 보는 이유가 뭡니까? | plasma | 2005.07.10 | 4 |
43 | 게임 만드는 방법좀 | plasma | 2005.07.10 | 3 |
42 | 처음하는데 vc++예제 하구 뭐하나요.. | 비밀소년 | 2005.07.06 | 5 |
41 | 저기여게임만드는거.. | 비밀소년 | 2005.07.06 | 3 |
40 | 게임 프로그래밍을 힘들게 보는 이유가 뭡니까? [20] | 비밀소년 | 2005.07.06 | 248 |
39 | 온라인 게임 만들때 필요한 것 | 비밀소년 | 2005.07.06 | 143 |
38 | 자신을 가지세요. 만들수 있습니다. | 비밀소년 | 2005.07.06 | 3 |
37 | 맵은 어떻게 만드나요? | 비밀소년 | 2005.07.06 | 14 |
36 | 저기여게임만드는거.. [5] | game6025 | 2005.07.04 | 79 |
35 | 온라인 게임 만들때 필요한 것 | RPG무법자 | 2005.07.02 | 158 |
34 | 온라인 게임 만들때 필요한 것 | 기묘한영길이 | 2005.07.01 | 212 |
33 | 온라인 게임 만들때 필요한 것 [8] | c3 | 2005.07.01 | 406 |
32 | rpg만들기95,2000,2003,XP 다운받고 싶은데 어디서.... | GAiA | 2005.06.30 | 243 |
31 | rpg만들기95,2000,2003,XP 다운받고 싶은데 어디서.... [3] | 환신 | 2005.06.30 | 587 |
30 | 처음하는데 vc++예제 하구 뭐하나요.. [2] | katar | 2005.06.30 | 48 |
29 | 맵은 어떻게 만드나요? [3] | 기묘한영길이 | 2005.06.28 | 88 |
28 | 게임 만드는 방법좀 [6] | c3 | 2005.06.27 | 114 |
C종류나 베이직같은 일반적인 프로그래밍 언어라면 문제가 없겠지만요.|+rp2+|701|+rp3+|qna