cocos3 图片按照椭圆运动
#pragma once#include "cocos2d.h" USING_NS_CC;typedef struct _EclipseConfig { //中心点坐标 CCPoint centerPosition; //椭圆a长,三角斜边 float aLength; //椭圆c长,三角底边 float cLength; } EclipseConfig; class Eclipse:public ActionInterval { public:bool initWithDuration(float duration, const EclipseConfig& deltaPosition);virtual void update(float time);virtual Eclipse* clone() const override;virtual Eclipse* reverse(void) const override; public:static Eclipse *actionWithDuration(float t, const EclipseConfig& c); protected:EclipseConfig m_sConfig; Point m_startPosition; Point s_startPosition; };
#include "Eclipse.h"static inline float tuoyuanXat( float a, float bx, float c,float t )//返回X坐标 {//参数方程return -a*cos(2*3.1415926*t)+a; }static inline float tuoyuanYat( float a, float by, float c, float t )//返回Y坐标 {float b = sqrt(powf(a, 2) - powf(c, 2));//因为之前定义的参数是焦距c而不是短半轴b,所以需要计算出b//参数方程return b*sin(2*3.1415926*t); }// //TuoyuanBy // Eclipse* Eclipse::actionWithDuration(float t, const EclipseConfig& c)//利用之前定义的椭圆的三个参数初始化椭圆 {Eclipse *pTuoyuanBy = new Eclipse();pTuoyuanBy->initWithDuration(t, c);pTuoyuanBy->autorelease();return pTuoyuanBy; }bool Eclipse::initWithDuration(float t, const EclipseConfig& c) {if (CCActionInterval::initWithDuration(t)){m_sConfig = c;return true;}return false; } void Eclipse::update(float time) {if (_target){CCPoint s_startPosition =m_sConfig.centerPosition;//中心点坐标float a = m_sConfig.aLength;float bx = m_sConfig.centerPosition.x;float by = m_sConfig.centerPosition.y;float c = m_sConfig.cLength;float x = tuoyuanXat(a, bx, c, time);//调用之前的坐标计算函数来计算出坐标值float y = tuoyuanYat(a, by, c, time);_target->setPosition(ccpAdd(s_startPosition, ccp(x-a, y)));//由于我们画计算出的椭圆你做值是以原点为中心的,所以需要加上我们设定的中心点坐标 } }Eclipse* Eclipse::clone() const {auto a = new Eclipse();a->initWithDuration(_duration, m_sConfig);a->autorelease();return a; }Eclipse* Eclipse::reverse() const {auto a = new Eclipse();a->initWithDuration(_duration, m_sConfig);a->autorelease();return a; }
转载于:https://www.cnblogs.com/yufenghou/p/4165153.html
cocos3 图片按照椭圆运动相关推荐
- cocos creator 多张图片 椭圆运动_信阳液位测量图片
信阳液位测量图片 klte47s 信阳液位测量图片 此外,在仪表橱内,也呵装置100w左右的自炽灯,或者25W左右的红外线灯,定期通电(每次照射2-4h),这样也能有效地对仪表进行驱潮.直接测量可以达 ...
- javascript-按圆形排列DIV元素(三)实例---- 图片按椭圆形转动
$(this).css({"left":Math.sin((ahd*index+ainhd))*radius+dotLeft,"top":Math.cos((a ...
- 进程和线程.View椭圆运动
7.19 进程和线程. //进程:一个运行中的应用程序,就一个进程,他是资源分配的单位,譬如地址空间,系统自动生成主线程 //线程:是cpu分配的基本单位,一个进程运行后系统自动分配一个主线程,你可以 ...
- cocos3.10游戏移植到安卓平台教程(c++版本)
流程简介 现在Cocos3.10移植游戏到安卓平台还是比较简化了,你只需要下载好SDK,JDK,NDK,ANT,配置好坏境变量,安装好JDK.再更改一下android.MK文件,你就直接可以进行编译了 ...
- Python+OpenCV 图像处理系列(1)— Ubuntu OpenCV安装、图片加载、显示和保存
Ubuntu 16.04 下安装 Opencv sudo apt-get install libopencv-dev sudo apt-get install python-opencv 或者使用 p ...
- FastAI 课程学习笔记 lesson 1:宠物图片分类
文章目录 代码解析 神奇的"%" 导入fastAI 库 下载解压数据集 untar_data 获取帮助文档 help() ? ?? doc 设置路径 get_image_files ...
- 1 用python进行OpenCV实战之用OpenCV3实现图片载入、显示和储存
code 将下面文档存为load_display_save.py #-*- coding:utf-8 -*- from __future__ import print_function #1 impo ...
- java 16进制与图片互转
十六进制转成图片 /*** 十六进制转成图片* @author Administrator**/public static void saveToImgFile(String src,String o ...
- ttf,woff2字体转化为png图片,python读取图片
20210326 乱码转换的时候 是同一套unicode编码 但是在不同的字体库中对应的字不同 20210324 https://jingyan.baidu.com/article/e73e26c0c ...
最新文章
- [数据结构]-散列表(哈希表)
- mysql常用语句整理
- windows共享使用linux生成的密钥
- 【项目管理】敏捷小品:Rupert 工业公司 项目:~Alpha~
- 深度学习和目标检测系列教程 14-300:训练第一个 YOLOv3 检测器
- centos7 网卡配置vlan_Centos7安装后的一些基础配置
- 1.Swift教程翻译系列——关于Swift
- Flink学习笔记03:将项目打包提交到Flink集群上运行(Java版)
- B站获得英雄联盟赛事直播三年独播版权
- 解决ubuntu中zabbix 4.2图形显示乱码
- Picasso源码的简单解析(一)
- 02-监督学习应用.梯度下降
- 《结构方程模型及其应用》学习笔记0504第一、二章
- JS高级程序设计(10)
- TCP/UDP压力测试工具
- 破解版editPlus
- 浅析计算机用户身份识别技术,浅谈网络安全之身份认证技术
- 任正非千金买马骨:与李一男戏剧性恩怨情仇
- Google Common Lisp 风格指南
- 单臂路由器互联VLAN实验-Cisco Packet Tracer