lovingxiaobing 发表于 2019-1-20 19:56

Direct2D模仿Canvas烟火特效



前段时间,在群里看见网友发了一个HTML5的烟火特效的例子,小冰下载来打开看了一下,哇塞,真的漂亮!!!
于是萌生了一个念头,用CXX实现这个功能,考虑到我是Windows平台,所以用了GDI来写,完工后发现,锯齿挺严重的。。。emmmmm
于是部分重写,换成了GDI+,画出来的图像的质量有所提高,不过。。。效率比GDI低,很难受那种卡顿
最后去学习了一点儿Direct2D的知识,发现并没有想象中的那么难,文档齐全,MSDN做的不错!!!


最主要的功能就是烟花的特效,还有鼠标点击添加烟花,鼠标长按就会得到一束烟花,鼠标移动可以在鼠标移动的路径上添加烟花等等右意思的特效以及功能!!!




下面是效果图(原谅我不会录GIF。。。。):





下面是代码,没看见代码就对了,只有截图,hiahiahia~~~代码大约800多行,真的占空间,不想发了,代码和编译后的程序会放在附件里,还有是从哪个东西改来的。



在写这个程序的过程中参考过一些博客,以及MSDN,链接放在下面:
https://docs.microsoft.com/zh-cn/windows/desktop/Direct2D/direct2d-quickstart
https://docs.microsoft.com/en-us/windows/desktop/api/shlwapi/nf-shlwapi-colorhlstorgb
https://msdn.microsoft.com/zh-cn/library/windows/apps/dd368203.aspx
帧率控制的代码思路来自于,挺好的,解决了Sleep带来的窗口为响应问题,提高了延时精度:
https://blog.csdn.net/u014038143/article/details/78192076



这是附件:

565266718 发表于 2019-1-20 20:08

学习下。。支持

A羽飞 发表于 2019-1-20 20:25

厉害了。。。

zzzain46 发表于 2019-1-20 20:47

楼主您好,我没学过cpp,摸索着丢进vs编译了一下报错,能不能麻烦指点一下

杨剑芯 发表于 2019-1-20 20:59

膜拜大神{:1_919:}{:1_919:}{:1_919:}

lovingxiaobing 发表于 2019-1-20 21:13

PhilipZyy5012 发表于 2019-1-20 20:47
楼主您好,我没学过cpp,摸索着丢进vs编译了一下报错,能不能麻烦指点一下

把UNICODE以及_UNICODE注释掉
打开工程的属性配置窗口,把预编译头选项去掉
因为小冰是直接用MSBuildTools编译的,更多的细节还得您自己去查。

zzzain46 发表于 2019-1-20 21:21

lovingxiaobing 发表于 2019-1-20 21:13
把UNICODE以及_UNICODE注释掉
打开工程的属性配置窗口,把预编译头选项去掉
因为小冰是直接用MSBuildTo ...

谢谢指点:handshake

ren332427516 发表于 2019-1-20 23:20

热心回复!

peterq521 发表于 2019-1-21 22:45

楼主要是能做出个鼠标指针就绝对完美了

lovingxiaobing 发表于 2019-1-21 23:50

peterq521 发表于 2019-1-21 22:45
楼主要是能做出个鼠标指针就绝对完美了

WTF(Wow!That's funny!)
您举个栗子,比如怎么样的响应方式等?
页: [1] 2
查看完整版本: Direct2D模仿Canvas烟火特效