본문 바로가기

Programming/VB 2010 강좌

[D_Pain] 비베로 움짤을 구현하자!

확실히 비베는 이미지 투명도 변경 기능같은게 존재 하지 않습니다. 

 



 

심지어 움짤.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값을 증가시키면 움짤의 움직임을 조절할 수 있게 되는 원리입니다. 

 

물론 코드를 더 짧게 최적화 시킬수는 있답니다.

뭐... 지금은 귀찮아서 ^^;


예제 파일 다운 받기



미연시.exe


 

가장 첫화면에 나오는 움짤을 제외한 도타2의 Faceless Void짤은 귤라임님이 제작해주셨습니다!

까..깜찍하고 멋진 짤입니다!


프로젝트 파일은 리소스안에 귤라임님의 이미지가 있기 때문에 첨부하지 않을 예정입니다.