확실히 비베는 이미지 투명도 변경 기능같은게 존재 하지 않습니다.
심지어 움짤.gif파일들도 인식 하지 못하지요.
참으로 안타깝지요...
하지만 이러한 움짤들을 비베로 재현하지 못하는건 아니지요!
위의 gif파일을 21개의 프레임으로 제작되어있습니다. 자연스럽게 "눈"이라는 글자의 투명도가 바뀌지요.
비베에서는 그 프레임 21개를 모조리 리소스에 집어넣고 타이머로
위와 비슷하게 코딩하면 움짤을 비베에서 구현해낼수 있답니다!
(_1부터_21까지의 리소스명이 각 프레임의 디자인명이라고 칩시다.)
코드 |
Dim WithEvents Title As New Timer Dim X As Integer = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Title.Interval = 1 Title.Enabled = True Title.Start() End Sub
Private Sub Title_Tick() Handles Title.Tick X = X + 1 If X = 5 Then Screen.BackgroundImage = My.Resources._2 ElseIf X = 10 Then Screen.BackgroundImage = My.Resources._3 ElseIf X = 15 Then Screen.BackgroundImage = My.Resources._4 ElseIf X = 20 Then Screen.BackgroundImage = My.Resources._5 ElseIf X = 25 Then Screen.BackgroundImage = My.Resources._6 ElseIf X = 30 Then Screen.BackgroundImage = My.Resources._7 ElseIf X = 35 Then Screen.BackgroundImage = My.Resources._8 ElseIf X = 40 Then Screen.BackgroundImage = My.Resources._9 ElseIf X = 45 Then Screen.BackgroundImage = My.Resources._10 ElseIf X = 47 Then Screen.BackgroundImage = My.Resources._11 ElseIf X = 50 Then Screen.BackgroundImage = My.Resources._12 ElseIf X = 53 Then Screen.BackgroundImage = My.Resources._13 ElseIf X = 55 Then Screen.BackgroundImage = My.Resources._14 ElseIf X = 57 Then Screen.BackgroundImage = My.Resources._15 ElseIf X = 60 Then Screen.BackgroundImage = My.Resources._16 ElseIf X = 62 Then Screen.BackgroundImage = My.Resources._17 ElseIf X = 63 Then Screen.BackgroundImage = My.Resources._18 ElseIf X = 64 Then Screen.BackgroundImage = My.Resources._19 ElseIf X = 65 Then Screen.BackgroundImage = My.Resources._20 ElseIf X = 66 Then Screen.BackgroundImage = My.Resources._21 ElseIf X = 67 Then Screen.BackgroundImage = My.Resources._20 ElseIf X = 68 Then Screen.BackgroundImage = My.Resources._19 ElseIf X = 69 Then Screen.BackgroundImage = My.Resources._18 ElseIf X = 70 Then Screen.BackgroundImage = My.Resources._17 ElseIf X = 71 Then Screen.BackgroundImage = My.Resources._16 ElseIf X = 73 Then Screen.BackgroundImage = My.Resources._15 ElseIf X = 75 Then Screen.BackgroundImage = My.Resources._14 ElseIf X = 77 Then Screen.BackgroundImage = My.Resources._13 ElseIf X = 79 Then Screen.BackgroundImage = My.Resources._12 ElseIf X = 81 Then Screen.BackgroundImage = My.Resources._11 ElseIf X = 83 Then Screen.BackgroundImage = My.Resources._10 ElseIf X = 85 Then Screen.BackgroundImage = My.Resources._9 ElseIf X = 90 Then Screen.BackgroundImage = My.Resources._8 ElseIf X = 95 Then Screen.BackgroundImage = My.Resources._7 ElseIf X = 100 Then Screen.BackgroundImage = My.Resources._6 ElseIf X = 105 Then Screen.BackgroundImage = My.Resources._5 ElseIf X = 110 Then Screen.BackgroundImage = My.Resources._4 ElseIf X = 115 Then Screen.BackgroundImage = My.Resources._3 ElseIf X = 120 Then Screen.BackgroundImage = My.Resources._2 ElseIf X = 125 Then Screen.BackgroundImage = My.Resources._1 ElseIf X > 130 Then X = 0 End If End Sub |
이러한 방식으로 코딩을 짜시면 자연스럽게 움짤을 구현할수 있답니다.
임의로 타이머를 제작하여서 그 타이머가 지정해진만큼 시간을 새는것이 끝난다면 프레임을 다른 프레임으로 바꾸는 방식입니다. 그 작업이 끝난다면 타이머를 멈추면 되구요.
타이머의 Interval이나 현재 제가 설정한 각 프레임이 바뀌려면 필요한 X값을 증가시키면 움짤의 움직임을 조절할 수 있게 되는 원리입니다.
물론 코드를 더 짧게 최적화 시킬수는 있답니다.
뭐... 지금은 귀찮아서 ^^;
예제 파일 다운 받기
가장 첫화면에 나오는 움짤을 제외한 도타2의 Faceless Void짤은 귤라임님이 제작해주셨습니다!
까..깜찍하고 멋진 짤입니다!
프로젝트 파일은 리소스안에 귤라임님의 이미지가 있기 때문에 첨부하지 않을 예정입니다.
'Programming > VB 2010 강좌' 카테고리의 다른 글
[파란닌자]파일경로에대한 함수들 (1) | 2012.12.27 |
---|---|
프로그램에 관리자권한 할당하기 (2) | 2012.12.01 |
[D_Pain] Mine Story [Ver 0.1] 과 [Ver 0.2]의 코드설명 (MyBase.KeyDown 이벤트) (5) | 2012.10.15 |
[파란닌자] 프로그램 종료확인 묻기 (3) | 2012.10.14 |
With 에 대해 알아보자! (2) | 2012.10.13 |