下面的代码都是看着视频敲的,注释是自己加上去的。如果各位发现错误,欢迎纠正。
-------------------------------------------分割线------------------------------------------------------------------------------------
auto rect = DrawNode::create();
rect->drawRect(Vec2(0, 0), Vec2(100, 100), Color4F(1.0, 0, 0, 1.0));
// 上面两句代码创建了一个矩形 参数依次为 Vec(x1,y1)Vec(x2,y2), 颜色 Vec2指的是二维的向量
addChild(rect);
rect->setPosition(visibleSize / 2);
//上面两句代码把矩形显示出来 并且设置了矩形的位置
auto dot = DrawNode::create();
dot->drawDot(Vec2(0, 0), 10, Color4F(1.0, 1.0, 1.0, 1.0));
//上面两句代码 创建了一个点 参数与创建矩形类似
rect->addChild(dot);
//调用了rect对象里的 addChild 函数 把 点加入到矩形当中
dot->setPosition(Vec2(50, 50));
//设置了点的位置
rect->setContentSize(Size(100,100));
rect->setAnchorPoint(Vec2(0.5, 0.5));
//设置锚点 让矩形旋转围绕着anchorpoint来旋转
schedule([dot, rect](float f){
rect->setRotation(rect->getRotation()+1);
}, "Test");
//schedule 函数 这个函数 可以让精灵或者图形持续执行某个动作
-------------------------------------------分割线------------------------------------------------------------------------------------
//对变量angle 进行初始化
angle = 0;
//这两句代码创建点
auto dot = DrawNode::create();
dot->drawDot(Vec2(0, 0), 10, Color4F(1.0, 1.0, 1.0, 1.0));
//这两句代码把点显示 并且 调整了点的位置初始位置
addChild(dot);
dot->setPosition(visibleSize / 2);
schedule([dot, this, visibleSize](float f)
{
dot->setPositionY(visibleSize.height/2+sin(angle)*100.0);
//让点的Y轴 随 函数变化
dot->setPositionX(visibleSize.width / 2 + cos(angle)*100.0);
//让点的Y轴 随 函数变化
angle = angle + 0.05; //改变gngle的值
}, "Test");
-------------------------------------------分割线------------------------------------------------------------------------------------
//之前在头文件中建立了一个direction的cocos2d::Vec2 的对象 如右 cocos2d::Vec2 direction;
//这里设置了direction的两个参数 即是 x 和 y PS:这里用到了 random(x,y) 函数 该函数的作用为 产生一个随机的数介于x和之间的数;
direction.set(random(-1, 1), random(-1, 1));
//初始化向量的大小- -
direction.normalize();
// 创建小球 添加小球 设置小球的位置
auto dot = DrawNode::create();
dot->drawDot(Vec2(0, 0), 5, Color4F(1.0, 1.0, 1.0, 1.0));
addChild(dot);
dot->setPosition (visibleSize / 2);
//schedule函数 实现循环动作
schedule([dot, this, visibleSize](float f){
//获取小球的位置
auto p = dot->getPosition();
下面两个if判断小球是否到达边界 如果到达边界就反转小球的方向
if (p.x<0 || p.x>visibleSize.width)
{
direction.x = direction.x*-1;
}
if (p.y<0 || p.y>visibleSize.height)
{
direction.y = direction.y*-1;
}
//实现小球移动
dot->setPosition(p + direction * 10);
}, "Test");
------------------------------------到此结束--------------------------------------------------------------