8. Ecore_Animator
- 게임에 효과를 주기 위해 애니메이션을 넣어보도록 하겠습니다.
사각형 터치를 하였을 때 애니메이션이 나오도록 해보겠습니다.
애니메이션은 타이머와 사용방법이 같습니다. 콜백함수에 등록하고 콜백함수에서 원하는 애니메이션을 수행하면 됩니다.
- func : 콜백함수, data: 전달값
1 2 3 4 5 6 | ecore_animator_add (Ecore_Task_Cb func, const void *data) //콜백함수 Eina_Bool timer_quest(void *data) { return ECORE_CALLBACK_RENEW; } | cs |
그러나 애니메이션은 일정시간만 재생이 필요한 경우가 존재하는데요, timline과 함께 설정할 수 있는 함수도 제공하고 있습니다.
1 2 3 4 5 6 7 8 9 10 | //실행시간과 함께 콜백함수 등록 ecore_animator_timeline_add (double runtime, Ecore_Timeline_Cb func, const void *data) //콜백함수 static Eina_Bool _do_animation(void *data, double pos) { evas_object_move(data, 100 * pos, 100 * pos); ... do some more animating ... } | cs |
- 콜백함수의 경우 pos를 통해 현재 전체 수행시간 중 현재시간을 알 수 있습니다.
실제 게임에 적용해 보면,
사각형 이벤트 콜백함수(clicked_rect)에 클릭이 발생했을 경우 animation을 등록합니다.
1 | ecore_animator_timeline_add(0.2, _do_animation, ad->rect[num]); | cs |
다음으로 콜백함수를 통해 사이즈가 변경하는 애니메이션을 적용합니다. (pos값은 0~ 변경된 값이 와서 애니메이션이 가능)
1 2 3 4 5 6 7 | static Eina_Bool _do_animation(void *data, double pos) { Evas_Object *rect = data; evas_object_size_hint_min_set(rect, 100, 230*pos); return ECORE_CALLBACK_RENEW; } | cs |
위치뿐만 아니라 evas_object_color_set()함수나 evas_object_move()함수 등을 통해 색상, 위치 애니메이션 적용이 가능합니다.
실행시켜 보면 사각형을 터치했을 때 애니메이션이 나타나는 것을 볼 수 있습니다.
728x90
'Software Development > Tizen' 카테고리의 다른 글
[TIZEN]14. 타이젠_간단한게임 만들기7_게임기능구현 (0) | 2015.12.27 |
---|---|
[TIZEN]13. 타이젠 이미지 삽입 (0) | 2015.12.26 |
[TIZEN]11. 타이젠_간단한게임 만들기5_Timer (1) | 2015.12.26 |
[TIZEN]10. 타이젠_간단한게임 만들기4_사운드 출력 (0) | 2015.12.25 |
[TIZEN]9. 타이젠_간단한게임 만들기3_이벤트 작성 (0) | 2015.12.25 |