映众GTX1050映众1050ti黑金至尊版版 手动下驱动是到映众官网下还是N卡官网下

纪录自学cocos2dx的日子,希望可以抛砖引玉。_cocos2dx吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:8,702贴子:
纪录自学cocos2dx的日子,希望可以抛砖引玉。收藏
为啥学cocos2d-x,因为有个家伙在楼主自学c++的帖子留言。。「鼓励一下楼主,其实,楼主是个有耐心的人,估计你的游戏明年中旬就能在Appstore上线了建议楼主不要为了学编程而学编程,可以直接试着做项目,比如马上转到Cocos2d-x 吧 用C++ 或 Lua 编写手机游戏,再遇到具体的问题的时候再查资料目前俺也是手游独立开发者,收入不错,今年收入30多万,2015年的目标40~50万楼主加油!」好了,我是财迷,我要学cocos2d-x。。
今天在网上了解了一下cocos2dx,具体就是去cocos2dx的官网,和它的贴吧混了一下。对这个工具的一些花边新闻有了一点了解。。大概就是这些论调。u3d比coco 强多了,coco在国内手游占比70%,外国才20%最初是为了iPhone 开发。并且是用python语言?最后被某人用c++重写了?
在贴吧里面楼主也了解到了一些信息。这东西要配置开发环境,看精品贴说明,这东西要依靠三个工具才能写代码?下载Coco,下载vs,下载python。现在想起来,coco大概就是一个很多很多c++文件的代码库。Python是用来整合这些代码的自动创建工程的工具?Vs是写代码的地方?
然后楼主是下载好了python,和coco引擎。还有一个什么ui编辑器?楼主就查看了一下这些东西。Coco解压出来,里面有一个py结尾的安装文件。文件夹里面很多cpp 文件,Python 我下载了,是一个msi文件,觉得蛮简约的,Ui编辑器打开了里面一堆视频推荐。
打开了coco stodis?看了一下,发现这个蛮象动画编辑器的。但仔细看了一下参数不是很多,不知道这东西是怎么变成游戏界面的。另外打开了python IDE ?gui?看了一下,就是一笔记本嘛。另外又看了一下coco文件夹里面的例子文件夹。看到有一个欢迎世界的cpp文件。试着运行了一下,软件竟然死了。
在无头无脑的混了半天后,楼主觉得可以选择看视频学习一下COCO,应该可以有脑一点吧。。毕竟可以看到人实际操作。
楼主选择的视频是来自于51CTO的的零基础开发入门视频,在线看的,。。楼主看了一下视频名字,有什么游戏原理和机制开发技术介绍之类的活。这东西看了没什么意义吧,楼主直接就跳过了这些视频。查看环境搭建的视频。一直想安装好这个cocos2dx软件的说。这个视频似乎有一点老啊,楼主看了一下是2012年的,现在都2015年了啊。这东西看起来有点过时了啊。看到十四分钟以后,楼主发现这个东西似乎跟楼主之前认识到的东西不一样。没有用到python,直接就选择了一个文件打开了。。。我下载的最新版本也没那个2010文件,都只有2012...我去,如果要跟随这个视频学习的话 我可就要下载旧版本的了。视频的解说给我带来了很多新知识。..其实楼主的C++基础也不咋的。。当然能获取更多新知识例如编译?并且看到这个时候,它既然按播放键。。。我一直认为那个三角符号是播放键就弹出了不是黑窗口的画面。我操,就一些代码就能变成画面了。真厉害。。。并且它上面说搭建手机编译环境?就要下载一堆乱七八糟的东西,。。。什么ADT CDT 之类的
再看下来视频介绍了一些新的编译方式,有DEBUG的,还有什么RELSEAS的。楼主看了一下我自己的VS,的确有两种不同的方式,这两个东西的方式有什么区别,楼主就不知道了。并且还告诉了我用控制台操作文件的方法...就一个CD 然后接文件夹名字进入某个文件夹以后选文件名 就能打开文件了。。。这个东西是编译工程?记得PYTHON的新建工程也是这个样子新版本就用更先进的方法。。。
接下来?记得视频是讲了模版的安装,主要是找到一个叫MSVC的文件。。大概也要用那个什么控制台来打开这个文件。装好以后就能在VS里面像建立控制台程序一样建立了一个...HELLO 世界了我看了一下我的最新COCO迎亲..这个东西在一个叫BUDKIE的文件夹里面。但只有2012版本的,我听我的群友说,2012要下载5G的安装包 我日 这能用么?楼主要忧虑起来 不是最新的殷勤能用上最新的手机么。。。。楼主按照视频学习会不会落伍呢?就下载视频里面的老版本程序学习把...没办法的事情不是么?很多同学还在用VC6.0呢...这教材跟不上时代的步伐 真是无奈呢
接下来就没什么内容了,楼主就直接看了下一节的视频,开始就讲了一堆废话,然后进入主题后,它主要讲一些叫游戏生命周期的事情记得老师说大概就是在游戏里面暂停 然后重新进入游戏这样的事情。为啥叫这个名字楼主显然是不懂的啊
在看完安装视频以后,楼主就尝试安装cocos2dx引擎。。楼主在贴吧里面看到的COCO安装教程他上面是这样写的二.安装。1.Visual Studio 2012产品密钥:YKCW6 BPFPF BT8C9 7DCTH QXGW ;Visual Studio 2010; 2012不支持XP, 只支持WIN7以上;XP系统用2010版; VS安装不细说了;2.把Cocos2dx2.2.2下载之后的包解压;打开cocos2d-win32.vc2010.sln;选解决方案,点右键,选生成解决方案;然后运行;一段时间后,生成许多工程;可以运行一下,如运行test.3. 安装python-2.7.6.msi;( Cocos2dx2.1.5以上用python创建工程,而不是在VS里用模板创建;)1)。打开python-2.7.6.msi安装;2)。设置环境变量:我的电脑-&属性-&高级-&环境变量-&在PATH中添加python的安装路径,例如:; D:\Program Files\cocos2dx\,记得用分号与其他路径分开。(python的环境已经配置好了,开始--运行,输入cmd打开控制台,输入python,若出现python的版本信息则说明python已经ok了。)三.创建项目;1)。开始--运行,输入cmd打开控制台, 用cd命令转到文件夹(即你安装的Cocos2dx2.2.2文件夹下的tools\project-creator):D:\ProgramFiles\cocos2dx\cocos2d-x-2.2.2\tools\project-creator2)输入命令:create_project.py -project game -package com.mygame.game -language cpp 回车;即创建了一个项目;(创建文件, 工程名, 包, 编程语言C++);3)打开工程:在D:\ProgramFiles\cocos2dx\cocos2d-x-2.2.2\projects下就有你创建的工程找到:cocos2d-x-2.2.2\projects\game\proj.win32\game. 双击打开;现在看起来 这是2.0以上的新建工程的方法...瞄的 一个软件,创建工程的方法都被无限更新,能好好给人学习么。。楼主之前就按照它的方法安装了3. 安装python-2.7.6.msi;( Cocos2dx2.1.5以上用python创建工程,而不是在VS里用模板创建;)1)。打开python-2.7.6.msi安装;2)。设置环境变量:我的电脑-&属性-&高级-&环境变量-&在PATH中添加python的安装路径,例如:; D:\Program Files\cocos2dx\,记得用分号与其他路径分开。现在用3.0以上了 又要这样玩了。。如何创建一个空项目先决条件首先,你得下载并且安装python 2.7去完成以下步骤:接着,你需要添加路径:&[cocos2d-x 根目录]\tools\cocos2d-console\bin\&到系统变量当中,别忘了添加&;&做为分隔符;例如,小巫的路径是:D:\Cocos2dx\cocos2d-x-3.0\tools\cocos2d-console\bin,我会把它添加为如下:....打开命令行cmd,切换到bin路径下,然后输入cocos -h,如果它输出帮助信息和配置的话,那就说明你已经成功把路径添加到环境变量了。这是我们就可以使用cocos2d-console的命令了。现在是时候使用命令来创建一个空项目了:例如,我们想要创建一个cpp项目,然后我可以键入&cocos new MyGame -p com.wwj.mygame -l cpp -d E:/MyProject。 这个命令会帮我们在E:/MyProject创建一个名为MyGame的空项目...
楼主的自学已经第二天了。。
,,,经过艰苦卓绝的努力...楼主终于配置好了开发环境...
期间出现了N个奇怪问题一个是python的版本 创建项目的时候控制台弹语法问题最后通过百度发现是我下载得太新了。3.X以后的版本不兼容2.X创建的文件。。最后要我下载了一个旧2.x的版本然后还出现这个问题error MSB8008: 指定的平台工具集(v110)未安装或无效。请确保选择受支持的 PlatformToolset 值。楼主就继续百度,网上说这个问题要修改工作集。。。修改成100就可以了。。楼主就修改了一个文件....然后导致了后面更多的问题出现后来楼主狠下心来 把全部文件全部修改了工作集终于问题解决了。。最后是LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏这个老问题楼主遇见过好多次了还是百度一下把这两个fatal error是因为从低版本的WTL到高版本的WTL转变后产生的.错误描述如下:1&正在编译资源...1&正在编译资源清单...1&正在链接...1&CVTRES : fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0x04091&LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏1&生成日志保存在“file://c:\WTL80_7108_Beta1\Samples\BmpView\Debug\BuildLog.htm”1&BmpView - 2 个错误,1 个警告========== 全部重新生成: 0 已成功, 1 已失败, 0 想跳过 ==========解决方法如下:项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”。ni你试试我刚这样解决了我的问题再解决了这些问题之后 楼主终于运行成功了 欢迎世界....太TM难弄了
现在楼主给自己准备的环境是 window7 cocos2dx2.26 和 python 2.7 和之前下载的vs2010学习版。楼主有了更好的经验 就是直接在官网上的文档页面上 就有了这些安装教程...非常方便...之前一直瞎百度,百度到的内容又跟不上朝代 浪费了很多时间的说.既然有了可以用的开发环境。那楼主应该可以考虑制作自己的小游戏了....
按楼主的小心思是想和以前c++字符游戏一样 从贪吃蛇开始,.....先制作一个最简单的不用素材的贪吃蛇..然后楼主就找了这个博客来看了一下 Cocos2dx 3.0 过渡篇(二十四)死不了的贪食蛇(重力版)看它配的图,刚好是一个不用素材的简单贪吃蛇...
按之前的思路 楼主应该先准备一个棋盘画面..之前用两个FOR 加上伟大的cout就撸出了字符画的贪吃蛇棋盘..那现在用到了新的cocos2dx引擎 看人家的代码是怎么撸出来的呢?/绘制直线 glLineWidth(4); for (int i = 0; i&11; i++) { DrawPrimitives::drawLine(Point(0,i*64), Point(640,i*64)); DrawPrimitives::drawLine(Point(i*64,0), Point(i*64,640)); }这段代码应该就是博客作者弄棋盘的代码了..没有两个FOR ...按之前的学习思路...楼主应该查看一下这些函数是什么鬼意思..首先被看到的是问题...为什么DrawPrimitives下的几何图形接口绘制时永远是在底层? 提醒了楼主这个画图函数,是蛮麻烦的一个鬼东西...要设置一下才不会在底层...然后最后楼主是查看了这个博客...【Cocos2d-X开发学习笔记】第10期:渲染框架之几何图形的绘制依样画葫芦的结果、、让楼主撸出了不同于欢迎世界的画面...[图片]
最后楼主是用这个撸出了棋盘图...void HelloWorld::draw(){ CCSize s = CCDirector::sharedDirector()-&getWinSize(); //设置颜色 ccDrawColor4B(255,0,0,255); //设置线的宽度 glLineWidth(2); //绘制一条直线参数是一个起点 一个终点... ccDrawLine( ccp(0, s.height*0.25), ccp(s.width, s.height*0.25) ); ccDrawLine( ccp(0, s.height*0.5), ccp(s.width*1, s.height*0.5) );ccDrawLine( ccp(0, s.height*0.75), ccp(s.width*1, s.height*0.75) );ccDrawLine( ccp(s.width*0.25, s.height*1), ccp(s.width*0.25, 0) ); ccDrawLine( ccp(s.width*0.5, s.height*1), ccp(s.width*0.5, 0) ); ccDrawLine( ccp(s.width*0.75, s.height*1), ccp(s.width*0.75, 0) ); }要多少条线...撸多少行代码....
接下来就是蛇头之类的点的设置了...看教材说明可以弄一个点 或者一个矩形来玩...//设置像素尺寸
ccPointSize(30);
//绘制一个点
ccDrawPoint( ccp(s.width*0.5, s.height *0.5) );
楼主是尝试用动作让贪吃蛇的蛇头移动的时候,出现了上面的问题,不知道为什么,会重影。
楼主的代码是这个...CCSprite* pSprite = CCSprite::create(&CloseNormal.png&);
pSprite-&setPosition(ccp(s.width*0.5, s.height*0.5));
CCActionInterval* actionTo = CCMoveTo::create(30, CCPointMake(s.width-40, s.height-40)); //2s的时间移动到某个位置相对于屏幕 CCActionInterval* actionBy = CCMoveBy::create(3, CCPointMake(0,80)); //2s的时间移动到80,80 CCActionInterval* actionByBack = actionBy-&reverse(); CCToggleVisibility *Toggle = new CCToggleVisibility();//隐藏显示之间切换 pSprite-&runAction( CCSequence::create(actionTo,actionByBack,Toggle, actionBy,Toggle,NULL)); //顺序执行(actionBy,actionByBack),必须用NULL结尾 this-&addChild(pSprite, 1);
最后还经过艰苦卓绝的努力...楼主似乎找到了问题的解决方法。当然不是问题出现的原因。期间怀疑了很多奇怪的地方..其中有只有图片会出现这样的情况把..失败用文字也一个鬼样子他们经常说的回调函数是解决这个问题的关键把..失败回调函数在这里可以当作动作化来装进队列执行下去他们经常说的序列帧动画是用来解决这个问题的 吧..失败就是一张一张的播放图片也许用cocos2dx stdio可以制作一个正确的代码..失败这逗逼工具做出来的代码是哪里更改了...是楼主加的多余直线跟它起冲突了吗...失败去除掉以后 根本没效果啊...终于楼主洗心革面把代码写到了init里面问题没有了真的...没重影..喵的 这是什么鬼原因..操
..昨天楼主在一个博客里面找到我能运行的游戏代码..是个简单的代码...之前一直找不到适合楼主编程环境的例子,现在终于找到合适的例子了...真是让人感动啊...
百度的关键词是 cocos2dx 精灵的碰撞检测和消灭(3)楼主是因为贪吃蛇游戏需要一个定时器,所以上网的搜索这个功能的时候 顺便发现了这篇博客...说明搜函数 能获得正确代码的几率比较大....而用 cocos2dx游戏源码 这样的搜索关键字 ,是没机会找到好东西的了...当然这个代码也没有让楼主一帆风顺...本来楼主也没打算运行它...最后发现它的代码还算完整 也没什么看起来就要命的长代码..就想着运行它来着期间遇到了几个问题..楼主一开始没有完整复制头文件和CPP文件进去发现这段代码没有成功..if ( CCLayerColor::initWithColor(ccc4(255, 255, 255, 255)) ) 最后楼主复制了完整头文件以后,错误消失在继续的学习中 终于发现了...原来是class HelloWorld : public cocos2d::Layer和class HelloWorld : public cocos2d::CCLayerColor的不同...接下来是...无法从“void (__thiscall HelloWorld::* )(void)”转换为“cocos2d::SEL_SCHEDUL 然后百度得知在使用计时器sechedule时,发现编译器报出 无法从“void (__thiscall HelloWorld::* )(void)”转换为“cocos2d::SEL_SCHEDUL 错误,经过检查,发现是因为参数不对。如:this-&schedule(schedule_selector(HelloWorld::ShowAttackRange), 5.0f);。。。void HelloWorld::ShowAttackRange(ccTime dt){CCLOG(&aaaa&);}每5秒调用一次ShowAttackRange函数,此时会报出如题的错误。解决方案:只需在ShowAttackRange函数中将参数ccTime dt 更改为 float interval 即可。也可能因为版本的问题,导致代码不同,右键函数转到定义查看其参数是个很好的解决方法。原来是参数不同...楼主就把头文件里面的ccTime dt全部改成了float interval当然这也经过了艰辛的努力...瞄的 我还去看源代码。。看定义里面到底是怎么回事了。。看到定义里面也是float interval....依样画葫芦就复制过来了..
努力的结果是成功获得了一个正确的游戏...虽然不是自己的东西。但也真TM让人感动了。既然能正确运行。。那楼主就应该查看一下源代码了...
#include &HelloWorldScene.h& #include &SimpleAudioEngine.h&
using namespace cocos2d; using namespace CocosD
CCScene* HelloWorld::scene() {
// 'scene' is an autorelease object
CCScene *scene = CCScene::create();
// 'layer' is an autorelease object
HelloWorld *layer = HelloWorld::create();
// add layer as a child to scene
scene-&addChild(layer);
// return the scene
上面 似乎没有做任何更改
// on &init& you need to initialize your instance bool HelloWorld::init() {
//////////////////////////////
// 1. super init first
if ( CCLayerColor::initWithColor(ccc4(255, 255, 255, 255)) )
这里之前是有一个错误 但后来我替换了头文件就变没了说明头文件还有比较重要的修改 CCSize winSize = CCDirector::sharedDirector()-&getWinSize();//获取屏幕大小
就获取屏幕大小 就可以了看看this这个箭头出现的地方都在哪里CC数组创建 arrayProjectile = CCArray::create();
aarayTarget = CCArray::create();
float sprite_scale = 2.0; 定义了一个浮点数 CCSprite *Player = CCSprite::create(&Player.png&); 设置循环? Player-&setScale(sprite_scale); 设置位置 Player-&setPosition(ccp(Player-&getContentSize().width*sprite_scale/2.0, winSize.height/2.0)); 添加精灵 this-&addChild(Player);
给这两个数组添加进去属性
aarayTarget-&retain();
arrayProjectile-&retain(); 这里是循环的意思把? 这里放置了函数定时器循环 this-&schedule(schedule_selector(HelloWorld::gameLogic), 1.0);
this-&schedule(schedule_selector(HelloWorld::update));
this-&setTouchEnabled(true);
} } void HelloWorld::gameLogic(float interval){
this-&addTarget(); 这里就引用了下一段函数}
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或Cocos2d-x源码分析_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Cocos2d-x源码分析
上传于||文档简介
&&C​o​c​o​sd​-​x​源​码​分​析
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢cocos2dx(8)
网上目前现有的很多个法子都是定义若干个文本去坐标偏移造成描边的效果.
那样确实可以.不过会凭空多很多对象出来.
如果是那些比较复杂的文字那数量级还是很多的.
于是我就想能不能换个方式.在底层就已经实现了描边的效果.
也就是在贴图生成的同时已经进行了描边.
于是一路跟踪.在CCIMAGE下边找到了这个函数.
int drawText(const char * pszText, SIZE& tSize, CCImage::ETextAlign eAlign)
一路看下去会发现函数里有这么一句.
// draw text
nRet = DrawTextW(m_hDC, pwszBuffer, nLen, &rcText, dwFmt);
显然这就是贴图生成前的步骤了.
其中的rcText就代表那个文字的空间位置.
于是在这段代码前面添加描边色的文字绘制.(必须在代码前.应为主文字必须最后绘制才能是描边效果)
int dix=1;
SetTextColor(m_hDC, RGB(0, 0, 255)); // red color
RECT rcText2 = {rcText.left-dix,rcText.top,rcText.right-dix,rcText.bottom};
nRet = DrawTextW(m_hDC, pwszBuffer, nLen, &rcText2, dwFmt);
RECT rcText3 = {rcText.left+dix,rcText.top,rcText.right+dix,rcText.bottom};
nRet = DrawTextW(m_hDC, pwszBuffer, nLen, &rcText3, dwFmt);
RECT rcText4 = {rcText.left,rcText.top+dix,rcText.right,rcText.bottom+dix};
nRet = DrawTextW(m_hDC, pwszBuffer, nLen, &rcText4, dwFmt);
RECT rcText5 = {rcText.left,rcText.top-dix,rcText.right,rcText.bottom-dix};
nRet = DrawTextW(m_hDC, pwszBuffer, nLen, &rcText5, dwFmt);
RECT rcText6 = {rcText.left-dix,rcText.top+dix,rcText.right-dix,rcText.bottom+dix};
nRet = DrawTextW(m_hDC, pwszBuffer, nLen, &rcText6, dwFmt);
RECT rcText7 = {rcText.left-dix,rcText.top-dix,rcText.right-dix,rcText.bottom-dix};
nRet = DrawTextW(m_hDC, pwszBuffer, nLen, &rcText7, dwFmt);
RECT rcText8 = {rcText.left+dix,rcText.top-dix,rcText.right+dix,rcText.bottom-dix};
nRet = DrawTextW(m_hDC, pwszBuffer, nLen, &rcText8, dwFmt);
RECT rcText9 = {rcText.left+dix,rcText.top+dix,rcText.right+dix,rcText.bottom+dix};
nRet = DrawTextW(m_hDC, pwszBuffer, nLen, &rcText9, dwFmt);
我在八个方向都进行了坐标单像素偏移.
之后重新编译.描边效果不错~.
并且是单对象内部实现的描边.
缺点当然也有.就是生成之后描边色不可再次修改.
至于生成前的颜色就不需要我再去多写什么了.
写个函数在更前的地方去判定描边与否以及描边颜色即可.
需要注意的是.底层的颜色并不是RGB.尽管那里写着RGB.
而是BGR.顺序不同的.
附上代码效果.
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3513次
排名:千里之外
原创:10篇
(2)(1)(1)(2)(3)(3)&&国之画&&&& &&
版权所有 京ICP备号-2
迷上了代码!

我要回帖

更多关于 映众1060黑金至尊版 的文章

 

随机推荐