windows下自制动画层引擎 - 放两个demo
一年前想寫(xiě)一個(gè)像cocoa那樣,可以方便層動(dòng)畫(huà)開(kāi)發(fā)的引擎,寫(xiě)著寫(xiě)著又逆向它的QuartzCore.framework,也就是CoreAnimation的底層,已經(jīng)大半年沒(méi)有搞windows這個(gè)引擎。大體來(lái)看,動(dòng)畫(huà)簡(jiǎn)單來(lái)說(shuō)有9要素,矩形區(qū)域(x, y, w, h),仿射變換矩陣(translation, rotation, scale),還有就是透明度alpha,除此還必須有線性變化函數(shù)。這些在cocoa中構(gòu)成了最基本的動(dòng)畫(huà),也最常用,通常提交動(dòng)畫(huà)一個(gè)始態(tài),一個(gè)終態(tài),以及時(shí)間就OK了。有次序的動(dòng)畫(huà)可以用completion進(jìn)行時(shí)間上的順序組合。到底要怎么設(shè)計(jì)和實(shí)現(xiàn)才能夠讓編程簡(jiǎn)便呢。
這幾天將大半年前的代碼整理了一下,在github上放上兩個(gè)demo。demo展示一些用引擎寫(xiě)的動(dòng)畫(huà)效果,兩個(gè)demo分別用了不同的方法去融合半透明(windows窗口層的,不是動(dòng)畫(huà)引擎層)。由于用的windows窗口的層的方法選用不同,動(dòng)畫(huà)引擎層實(shí)現(xiàn)時(shí)也有不同。當(dāng)然,作為動(dòng)畫(huà)引擎層的容器空間的windows窗口不考慮透明,做的事情就少上不少了。
demo的地址在下面:
https://github.com/bbqz007/xw/tree/master/demo
一年前的構(gòu)想在這里:構(gòu)思一個(gè)在windows下仿objc基于動(dòng)畫(huà)層ui編程的ui引擎?
?
現(xiàn)在在用這個(gè)引擎仿效QQ管家加速功能的懸浮小窗口,同時(shí)也帶動(dòng)引擎的開(kāi)發(fā),只有在問(wèn)題前思考和解決問(wèn)題當(dāng)中,開(kāi)發(fā)才能有進(jìn)展。
當(dāng)然目前簡(jiǎn)陋的那一個(gè)就是我做的了。
?
PS:在動(dòng)畫(huà)基本要素中,我上面漏了坐標(biāo)系,在3d動(dòng)畫(huà)中這個(gè)尤為重要和基礎(chǔ)。例如opengl中有MODELVIEW的矩陣模式,切換到對(duì)象坐標(biāo)系,同樣我的引擎也要負(fù)責(zé)完成父層到子層的坐標(biāo)系切換和子層回到父層的坐標(biāo)系切換,即使大家都做了矩陣變換(transform)。
轉(zhuǎn)載于:https://www.cnblogs.com/bbqzsl/p/5573096.html
總結(jié)
以上是生活随笔為你收集整理的windows下自制动画层引擎 - 放两个demo的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 6.9站立会议7
- 下一篇: 原创:世人皆知“负荆请罪”,却不知廉颇与