Cocos2dx,Windows
学习 Cocos2dx 的笔记

cocos2d 游戏制作

游戏原理

计算好图1里的A距离和B距离。人物的移动判断原理:A<x<B 才算是可以。

图1.png

效果演示

jdfw.gif

游戏源码

if(
        allstick.at(allstick.size()-1)->getContentSize().height-4
        >
        allpillar.at(allpillar.size()-1)->getPosition().x
        -
        allpillar.at(allpillar.size()-2)->getContentSize().width  
        &&
        allstick.at(allstick.size()-1)->getContentSize().height-4< 
        allpillar.at(allpillar.size()-1)->getPosition().x    
        -
        allpillar.at(allpillar.size()-2)->getContentSize().width +allpillar.at(allpillar.size()-1)->getContentSize().width

    )
  {

  scheduleOnce(schedule_selector(HelloWorld::Move), 0.8); // 继续游戏
  }
  else{
  scheduleOnce(schedule_selector(HelloWorld::EndMove), 0.8); // 结束游戏
  }
      

cocos2dx 3.X MoveTo、By

MoveTo:绝对移动
MoveBy:相对移动

MoveTo、MoveBy 都是移动函数,用于精灵移动。其中MoveBy具有移动后按移动路径返回的能力。

其中MoveTo与MoveBy不同的地方很明显。例如定义一个精灵SpriteM。然后定义其锚点为(0,0)点。也就是屏幕左下角原点。

然后设置SpriteM位置为(x,y)。这个时候分别用MoveTo、MoveBy。去移动到(-x,-y)。其中利用MoveTo移动后会直接移动到-x,-y坐标。如果原来的x=1,y=1那么移动到的地方的坐标就是-1,-1。这个是绝对移动,可以片面的理解为直接移动到某一个点。不管其他的。

而MoveBy是相对移动。它会照顾你原有的坐标。例如你原来的坐标是x=1,y=1。那么你变成-x,-y时它会直接给你移动到(0,0)点。也就是屏幕的左下角点。这个就是相对移动,照顾你原有的坐标。

cocos2dx 3.X 锚点的用法

什么是锚点
个人理解锚点是一个相对点,其默认值位于图层的中间点。
锚点使用例子
首先使用默认锚点执行下面代码:

Sprite->setTextureRect(CCRectMake(ClickPoint.x, ClickPoint.y,Sprite->getContentSize().width,Sprite->getContentSize().height+4

这段代码执行以后精灵会上下各增长2的距离。因为其原点相对于图层是中心点。所以height+4也就变成了上下加2。从中间位置开始增长。

如果Sprite->setAnchorPoint(Point(0,0));设置精灵锚点位置为0,0。那么就是从开始位置开始增加4,

cocos2dx 3.X 更改窗体大小

在cocos2dx2.x的版本中有一句代码用来更改窗体大小如图:

QQ截图20150524095234.png

在cocos2dx3.x版本中却没有自动去添加这段代码。所以要自己添加上去就可以了。如图:

22.png

最后就变成了如下图的窗口:

c23cd53c636531e1.png