cocos2d-x 学习笔记



下面的代码都是看着视频敲的,注释是自己加上去的。如果各位发现错误,欢迎纠正。

-------------------------------------------分割线------------------------------------------------------------------------------------
 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");

------------------------------------到此结束--------------------------------------------------------------

你可能感兴趣的:(cocos2d-x)