﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-cslover-GameFans-随笔分类-Cocos2d-x</title><link>http://www.cppblog.com/cslover/category/19816.html</link><description>热爱游戏开发，专注于手游开发</description><language>zh-cn</language><lastBuildDate>Mon, 20 Jan 2014 21:39:25 GMT</lastBuildDate><pubDate>Mon, 20 Jan 2014 21:39:25 GMT</pubDate><ttl>60</ttl><item><title>在Cocos2d-x中创建自己的项目工程</title><link>http://www.cppblog.com/cslover/archive/2014/01/01/205104.html</link><dc:creator>cslover</dc:creator><author>cslover</author><pubDate>Wed, 01 Jan 2014 15:27:00 GMT</pubDate><guid>http://www.cppblog.com/cslover/archive/2014/01/01/205104.html</guid><wfw:comment>http://www.cppblog.com/cslover/comments/205104.html</wfw:comment><comments>http://www.cppblog.com/cslover/archive/2014/01/01/205104.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cslover/comments/commentRss/205104.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cslover/services/trackbacks/205104.html</trackback:ping><description><![CDATA[本人用的是VS2010，Cocos2d-x 2.2.1<br />向cocos2d-x中添加工程，位置选择cocos2d-x\samples\Cpp在该目录下面，创建工程名为Test236的空工程<br /><img src="http://www.cppblog.com/images/cppblog_com/cslover/QQ图片20140101221839.jpg" border="0" alt="" width="432" height="87" /><br />在Test236目录下面添加3个目录分别为Classes，Resources,proj.win32目录，并把刚刚新建的工程移动到proj.win32目录中，这样我们就可以添加文件到工程中去了，copy吧，把HelloWorld中main.h,main.cpp移动到proj.win32目录中，并把AppDelegate.h,AppDelegate.cpp,AppMacros.h移动到Classes目录中，然后就是创建场景的过程了，这里可以继续copy HelloWorld中的HelloWorld.h,HelloWorld.cpp到Classes目录中，然后再工程中一次将源码文件加入到工程中<br />然后编译Test236工程中，发现如下错误：<br /><img src="http://www.cppblog.com/images/cppblog_com/cslover/QQ图片20140101223718.jpg" border="0" alt="" width="370" height="96" /><br />这里我们添加cocos2d-x的查找目录在工程-》Property-》Configuration Property-》C/C++ -》AdditionalIncludeDirectories中添加如下查找目录<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;..;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;..\Classes;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;$(ProjectDir)..\..\..\..\cocos2dx;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;$(ProjectDir)..\..\..\..\cocos2dx\include;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;$(ProjectDir)..\..\..\..\cocos2dx\kazmath\include;<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;$(ProjectDir)..\..\..\..\cocos2dx\platform\win32;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32;<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;$(ProjectDir)..\..\..\..\cocos2dx\platform\third_party\win32\OGLES;<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;$(ProjectDir)..\..\..\..\external;<br /><span style="color: #008080; ">10</span>&nbsp;$(ProjectDir)..\..\..\..\external\chipmunk\include\chipmunk;<br /><span style="color: #008080; ">11</span>&nbsp;$(ProjectDir)..\..\..\..\CocosDenshion\include;</div><div><span style="font-size: 13px; color: #008080;">12</span><span style="background-color: #eeeeee; font-size: 13px;">&nbsp;</span><span style="background-color: #eeeeee; font-size: 13px;">$(ProjectDir)..\..\..\..\extensions;</span>再次编译出现以下错误：<br /><img src="http://www.cppblog.com/images/cppblog_com/cslover/QQ图片20140101224924.jpg" border="0" alt="" width="610" height="95" /><br />这里 工程-》Property-》Configuration Property-》C/C++ -》Preprocesser-》Preprocesser Definitions添加<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->WIN32;_DEBUG;_WINDOWS;_USE_MATH_DEFINES;GL_GLEXT_PROTOTYPES;CC_ENABLE_CHIPMUNK_INTEGRATION=1;<br />COCOS2D_DEBUG=1;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;</div>继续编译错误如下：<br /><img src="http://www.cppblog.com/images/cppblog_com/cslover/QQ图片20140101225611.jpg" border="0" alt="" width="696" height="149" /><br />工程-》Property-》Configuration Property-》Linker-》Input-》AdditionalDependencies添加<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->libcocos2d.lib;libCocosDenshion.lib;opengl32.lib;glew32.lib;libBox2d.lib;libchipmunk.lib;websockets.lib;</div>编译出错如下：<br /><div>fatal error LNK1104: cannot open file 'libcocos2d.lib'</div>工程-》Property-》Configuration Property-》Linker-》General-》AdditionalLibraryDirectories<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->$(ProjectDir)..\..\..\..\Debug.win32</div>编译通过，运行出错如下<br /><div> <img src="file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\574197976\QQ\WinTemp\RichOle\BL`QE2MH(~ZT7U`1D_Q~IF5.jpg"  alt="" /></div><img src="http://www.cppblog.com/images/cppblog_com/cslover/QQ图片20140101231400.jpg" border="0" alt="" width="378" height="78" /><br />工程-》Property-》Configuration Property-》Debugging-》Working Directory中添加工作目录<br /><div><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->$(ProjectDir)..\Resources</div></div>运行继续出错如下：<br /><img src="http://www.cppblog.com/images/cppblog_com/cslover/QQ图片20140101231949.jpg" border="0" alt="" width="438" height="83" /><br /><br />工程-》Property-》Configuration Property-》Debugging-》Environment中添加环境变量<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->PATH=$(ProjectDir)..\..\..\..\Debug.win32</div>同时修改工程为Unicode编码方式。运行正常了<br />Resource是目录有有三个文件分别为HelloWorld中的资源<br /><img src="http://www.cppblog.com/images/cppblog_com/cslover/QQ图片20140101232457.jpg" border="0" alt="" width="350" height="131" /></div><img src ="http://www.cppblog.com/cslover/aggbug/205104.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cslover/" target="_blank">cslover</a> 2014-01-01 23:27 <a href="http://www.cppblog.com/cslover/archive/2014/01/01/205104.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AppDelegate中的cocos2d-x 的初始化场景applicationDidFinishLaunching</title><link>http://www.cppblog.com/cslover/archive/2013/12/30/205065.html</link><dc:creator>cslover</dc:creator><author>cslover</author><pubDate>Mon, 30 Dec 2013 09:23:00 GMT</pubDate><guid>http://www.cppblog.com/cslover/archive/2013/12/30/205065.html</guid><wfw:comment>http://www.cppblog.com/cslover/comments/205065.html</wfw:comment><comments>http://www.cppblog.com/cslover/archive/2013/12/30/205065.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cslover/comments/commentRss/205065.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cslover/services/trackbacks/205065.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->&nbsp; &nbsp; CCConfiguration::sharedConfiguration()-&gt;loadConfigFile("configs/config-example.plist");<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;initialize&nbsp;director</span><span style="color: #008000; "><br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;CCDirector&nbsp;*pDirector&nbsp;=&nbsp;CCDirector::sharedDirector();<br />
&nbsp;&nbsp;&nbsp;&nbsp;pDirector-&gt;setOpenGLView(CCEGLView::sharedOpenGLView());<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;CCSize&nbsp;screenSize&nbsp;=&nbsp;CCEGLView::sharedOpenGLView()-&gt;getFrameSize();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;CCSize&nbsp;designSize&nbsp;=&nbsp;CCSizeMake(480,&nbsp;320);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;CCFileUtils*&nbsp;pFileUtils&nbsp;=&nbsp;CCFileUtils::sharedFileUtils();<br />
&nbsp;&nbsp;&nbsp;&nbsp;std::vector&lt;std::<span style="color: #0000FF; ">string</span>&gt;&nbsp;searchPaths;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(screenSize.height&nbsp;&gt;&nbsp;320)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CCSize&nbsp;resourceSize&nbsp;=&nbsp;CCSizeMake(960,&nbsp;640);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;searchPaths.push_back("hd");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;searchPaths.push_back("hd/scenetest");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pDirector-&gt;setContentScaleFactor(resourceSize.height/designSize.height);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;searchPaths.push_back("scenetest");<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;pFileUtils-&gt;setSearchPaths(searchPaths);<br />
<br />
<span style="color: #0000FF; ">#if</span>&nbsp;(CC_TARGET_PLATFORM&nbsp;==&nbsp;CC_PLATFORM_WINRT)&nbsp;||&nbsp;(CC_TARGET_PLATFORM&nbsp;==&nbsp;CC_PLATFORM_WP8)<br />
&nbsp;&nbsp;&nbsp;&nbsp;CCEGLView::sharedOpenGLView()-&gt;setDesignResolutionSize(designSize.width,&nbsp;designSize.height,&nbsp;kResolutionShowAll);<br />
<span style="color: #0000FF; ">#else</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;CCEGLView::sharedOpenGLView()-&gt;setDesignResolutionSize(designSize.width,&nbsp;designSize.height,&nbsp;kResolutionNoBorder);<br />
<span style="color: #0000FF; ">#endif</span><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;CCScene&nbsp;*&nbsp;pScene&nbsp;=&nbsp;CCScene::create();<br />
&nbsp;&nbsp;&nbsp;&nbsp;CCLayer&nbsp;*&nbsp;pLayer&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;TestController();<br />
&nbsp;&nbsp;&nbsp;&nbsp;pLayer-&gt;autorelease();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;pScene-&gt;addChild(pLayer);<br />
&nbsp;&nbsp;&nbsp;&nbsp;pDirector-&gt;runWithScene(pScene);</div>
<br />
<span style="font-size: 14pt;">首先加载程序配置文件plist，然后我们初始化</span><span style="font-size: 14pt; background-color: #eeeeee;">CCDirector导演类，并设置opengl视图环境，根据屏幕宽高比例来决定是否设置查找路径目录，然后创建了一个场景和一个层</span><span style="font-size: 14pt;">它们分别为</span><span style="font-size: 14pt; background-color: #eeeeee;">pScene和</span><span style="font-size: 14pt; background-color: #eeeeee;">pLayer ，并把</span><span style="font-size: 14pt; background-color: #eeeeee;">pLayer 加入到场景中，接着由导演赖决定场景如何演绎，如何播放</span><span style="font-size: 14pt; background-color: #eeeeee;">pDirector</span><span style="font-size: 14pt; background-color: #eeeeee;">-&gt;</span><span style="font-size: 14pt; background-color: #eeeeee;">runWithScene(pScene)，程序中场景如何演绎，如何变化，都将在场景里处理。</span><img src ="http://www.cppblog.com/cslover/aggbug/205065.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cslover/" target="_blank">cslover</a> 2013-12-30 17:23 <a href="http://www.cppblog.com/cslover/archive/2013/12/30/205065.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>cocos2d-x中ignoreAnchorPointForPosition函数</title><link>http://www.cppblog.com/cslover/archive/2013/12/29/205057.html</link><dc:creator>cslover</dc:creator><author>cslover</author><pubDate>Sun, 29 Dec 2013 07:02:00 GMT</pubDate><guid>http://www.cppblog.com/cslover/archive/2013/12/29/205057.html</guid><wfw:comment>http://www.cppblog.com/cslover/comments/205057.html</wfw:comment><comments>http://www.cppblog.com/cslover/archive/2013/12/29/205057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cslover/comments/commentRss/205057.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cslover/services/trackbacks/205057.html</trackback:ping><description><![CDATA[<div>cocos2d中<span style="color: #ff0000;">CCLayerColor&nbsp;</span>的默认锚点是(0.5,0.5)。该节点的坐标是参考父节点的，而父节点的坐标原点是父节点left、buttom。</div><div><span style="white-space: pre; color: red;">	</span><span style="color: red;">CCLayerColor *layer1 = CCLayerColor::create(ccc4(255,0,0,255),200,200);</span></div><div><span style="white-space:pre">	</span><span style="color: red;">CCLayerColor *layer2 = CCLayerColor::create(ccc4(0,255,0,255),100,100);</span></div><div><span style="white-space:pre">	</span><span style="color: red;">this-&gt;addChild(layer1);</span></div><div><span style="white-space:pre">	</span><span style="color: red;">layer1-&gt;addChild(layer2);</span></div><div>这里我们添加了2个层，而layer1作为layer2父节点，在我们未设置layer2坐标的情况下默认为layer的(left,bottom)效果如下图：<br /><img src="http://www.cppblog.com/images/cppblog_com/cslover/Demo测试/QQ图片20131229143922.jpg" border="0" alt="" width="532" height="408" /><br /><br /><div><span style="white-space: pre; color: red;">	</span><span style="color: red;">CCLayerColor *layer1 = CCLayerColor::create(ccc4(255,0,0,255),200,200);</span></div><div><span style="white-space: pre;">	</span><span style="color: red;">CCLayerColor *layer2 = CCLayerColor::create(ccc4(0,255,0,255),100,100);</span></div><div>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: red;">layer2-&gt;ignoreAnchorPointForPosition(false);</span><span style="white-space: pre;">	</span><br />&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red;">this-&gt;addChild(layer1);</span></div><div><span style="white-space: pre;">	</span><span style="color: red;">layer1-&gt;addChild(layer2);</span></div><img src="http://www.cppblog.com/images/cppblog_com/cslover/QQ图片20131229144203.jpg" border="0" alt="" width="526" height="408" /><br /><br />我们默认的position是左下角点的坐标(left,bottom)这里是(0,0)点，即layer1和layer2的position都是(0,0),在开启锚点有效后，<br />我们看出layer2中的正方形只有上图中的1/4,其余部分都越出屏幕区域，这里我们可知layer2的默认锚点为(0.5,0.5),这个锚点就是<br />相对点的意思，比如<span style="color: #ff0000;">LEFT_TOP </span><span>指出了当前CCNode的左上角点对应于</span>CCNode的position点，这像一个映射一般。<br /><div></div><div><span style="white-space: pre; color: red;">		</span><span style="color: red;">var Anchor = {}; &nbsp;</span></div><div><span style="white-space:pre">		</span><span style="color: red;">Anchor.LEFT_TOP = cc.p(0,1); &nbsp;</span></div><div><span style="white-space:pre">		</span><span style="color: red;">Anchor.RIGHT_TOP = cc.p(1, 1); &nbsp;</span></div><div><span style="white-space:pre">		</span><span style="color: red;">Anchor.RIGHT_BOTTOM = cc.p(1, 0); &nbsp;</span></div><div><span style="white-space:pre">		</span><span style="color: red;">Anchor.LEFT_BOTTOM = cc.p(0, 0); &nbsp;</span></div><div><span style="white-space:pre">		</span><span style="color: red;">Anchor.MIDDLE = cc.p(0.5, 0.5);&nbsp;<br /></span></div><div><span style="white-space:pre">下面再贴一段代码和效果图以供理解	<br /></span><span style="color: #ff0000;">&nbsp; &nbsp; &nbsp; &nbsp; CCLayerColor *layer1 = CCLayerColor::create(ccc4(255,0,0,255),200,200);</span></div><div><span style="white-space:pre">	</span><span style="color: #ff0000;">CCLayerColor *layer2 = CCLayerColor::create(ccc4(0,255,0,255),100,100);</span></div><div><span style="white-space:pre">	</span><span style="color: #ff0000;">layer1-&gt;setPosition(ccp(100,100));</span></div><div><span style="white-space:pre">	</span><span style="color: #ff0000;">layer2-&gt;ignoreAnchorPointForPosition(false);</span></div><div><span style="white-space:pre">	</span><span style="color: #ff0000;">this-&gt;addChild(layer1);</span></div><div><span style="white-space:pre">	</span><span style="color: #ff0000;">layer1-&gt;addChild(layer2);</span></div><img src="http://www.cppblog.com/images/cppblog_com/cslover/QQ图片20131229150111.jpg" border="0" alt="" width="668" height="653" /><br /><br /><br /></div><img src ="http://www.cppblog.com/cslover/aggbug/205057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cslover/" target="_blank">cslover</a> 2013-12-29 15:02 <a href="http://www.cppblog.com/cslover/archive/2013/12/29/205057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>