15.Direct2D 捕鱼游戏开发-金币对象gold.h的封装

2023-11-06 16:30

本文主要是介绍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的封装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/357752

相关文章

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

JSON字符串转成java的Map对象详细步骤

《JSON字符串转成java的Map对象详细步骤》:本文主要介绍如何将JSON字符串转换为Java对象的步骤,包括定义Element类、使用Jackson库解析JSON和添加依赖,文中通过代码介绍... 目录步骤 1: 定义 Element 类步骤 2: 使用 Jackson 库解析 jsON步骤 3: 添

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后