本文主要是介绍15.Direct2D 捕鱼游戏开发-金币对象gold.h的封装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
环境:
编辑器:VS2015
系统:win10 专业版
碰撞:aabb obb盒模型(obb采用分离轴进行判断)
渲染:direct2d
金币对象:
主要是让鱼在死亡的时候有一个收取金币的动画
我们的动画是二阶一个贝塞尔曲线
二阶贝塞尔曲线:
这里我们需要三个点来确定这个曲线的流程 开始点,结束点,中间点。
开始点和结束点都非常容易确认 (鱼死亡的位置为结束点,金币显示数量的位置为结束点)
那么中间点是怎么算的啦:我们的想法是取开始点和结束点的中点且以锤子开始点和结束点的直线的一个固定距离的点为中点
这样我们的移动动画就会有一个曲线了
曲线公式:
p0开始点 p1中间点 p2结束点 t表示的就是我们移动的一个过程 当t等于0的时候我们就处于开始点 当t等于1的时候我们就处于结束点
主要方法和属性:
主要方法:
frameFun 每一帧调用的方法
getCenterPoint 获取中间点的方法
主要属性:
endPoint 保存结束点信息
centerPoint 保存中间点信息
startPoint 保存开始点信息
调用流程:
bullet.cpp
在这个函数里面我们我们初始化了金币对象并且我们还调用了一下井壁对象获取中间点的方法
gold.cpp
在这个方法里面我们先是设置中间点为开始和结束点的中点
然后我们通过极坐标位移获取到一个位移点并赋值个中间点
再每一帧调用函数里面我们直接修改t的值就可以设置金币的位置了然后我们当t大于1的时候我们就调用金币函数的移出场景方法
这是我们要做的目标:
项目开源地址:
https://github.com/yinhui1129754/fishing
游戏开发交流群:
859055710
这篇关于15.Direct2D 捕鱼游戏开发-金币对象gold.h的封装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!