Cocos2d入门--3--向量的应用

简介:

小球向一个方向持续运动的Demo

HelloWorldScene.h

......
//设置一个protected的属性
protected:
 cocos2d::Vec2 _vec;
......

HelloWorldScene.cpp

//这个是通过随机数设置向量的方向
_vec.set(random(-0.1f, 1.0f), random(-1.0f, 1.0f));
//通过normalize这个标准化函数,能够使得向量的大小为1
_vec.normalize();

auto dot = DrawNode::create();

dot -> drawDot(Vec2(0, 0), 5, Color4F(1.0f,1.0f,1.0f,1.0f));
addChild(dot);

dot -> setPosition(origin.x + 
visibleSize.width/2,origin.y + visibleSize.height/2);

schedule([dot,this,origin,visibleSize](float f){
 Vec2 nowVec = dot -> getPosition();
 //判断小球碰壁反弹运动
 if (nowVec.x<origin.x || nowVec.x>origin.x+visibleSize.width) {
 _vec.x *= -1;
 }
 if (nowVec.y<origin.y || nowVec.y>origin.y+visibleSize.height) {
 _vec.y *= -1;
 }
 dot->setPosition(nowVec+_vec*10);
}, "Test");

相关文章
|
11月前
|
机器学习/深度学习 人工智能 搜索推荐
LangChain入门指南
LangChain入门指南
2195 0
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
LangChain安装和入门案例
LangChain安装和入门案例
|
人工智能 JavaScript 前端开发
TensorFlow.js入门(一)一维向量的学习
TensorFlow的介绍   TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。
1675 0
|
机器学习/深度学习
Python3入门机器学习 - 支撑向量机SVM
SVM的主要思想可以概括为两点: 它是针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能。
1308 0
Q#入门理论:量子比特状态向量
量子比特,是量子领域的单位。 常规信息论的基本单位是比特bit,8个就是一个字节。 量子比特qubit,也就是比特在量子领域的对应物。   比特可以表示的状态是0和1 qubit也可以表示0和1(当然和比特的0 1不一样,是一个向量),还可以表示0和1的叠加。
1713 0
|
2天前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
32 1
|
2天前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
64 0
|
8月前
|
开发工具 Android开发
Mac 安卓(Android) 配置adb路径
Mac 安卓(Android) 配置adb路径
233 0
|
1天前
|
Shell Android开发
ADB更改Android设备屏幕显示方向
ADB更改Android设备屏幕显示方向
12 5
|
2天前
|
Shell Android开发
Android Activity重写dump方法实现通过adb调试代码
Android Activity重写dump方法实现通过adb调试代码
17 0

热门文章

最新文章