‘壹’ 哪里有DemoLogin登录界面cocos2dx手机游戏源码
一个登陆界面由背景图层和一些文本标签、输入框、按钮等组成。一般是按照从下到上的顺序创建控件。
第一步是给根节点设置贴图,首先是选在对象结构中选中根节点,并打开属性面板,然后在资源面板中找到Register.png,并拖拽到属性面板中的文件属性框内58player.com/code-2943-1.html。
‘贰’ vs2013 打开cocos项目找不到exe文件 编译也没有生成exe 修改项目属性 修复vs 重装系统都试过了 没用
您好,python和ndk没有用最新的
主要原因是之前搞的时候最新的有bug
于是沿用之前成功的版本
下面就是骨头一路上的碰壁:
流水帐开始:
1
首先在公司的win8上安装vs2013半点问题没有
用vs2013打开之前用vs2012下创建的项目提示不好用
愿意是我忽略的升级配置文件的选项。
2
尝试微软提供的项目管理软件:TFS,申请微软的免费服务器。
发现功能太强大,适合大项目的项目管理,但我只需要源代码管理就行。
放弃,尝试git。
3
被vs2013打开过的cocos2dx项目,在2012中打开又报错了。
看来需要彻底升级了。
4
下载解压cocos2dx3.0beta版本。
使用create_project.py创建项目比之前友好了
因为换成了图形界面
不过先进命令行的方式还是太麻烦
我们建个快捷方式:
建一个bat文件
输入D:\java\cocos2d-x-3.0beta\tools\project-creator\create_project.py
5
cocos2dx3.0beta建的新项目比之前大了
因为他直接把编译所需代码拷贝到项目文件夹下
而且可建立在任意位置
6
新项目建立之后vs2013运行ok
于是拷贝到github的本地代码库下
上传(几百M,略大,稍等)
上传ok之后直接打开本地代码库下的sln文件
此时,vs2013会自动配置好git
骨头实验了一下提交到本地和提交到服务器功能
ok
7
回家捣鼓笔记本安装vs2013
(win8.1已装vs2012)
老报核心什么什么的错
搜了网上几乎所有的办法:管理员、换显卡驱动、打补丁(个人不喜欢一切win的补丁)
还是不成功
于是系统还原到一个没装vs2012的ghost
可以安装了(不计较了 vs那么大,有点问题可以理解)
8
装完vs2013就开始装python装cygwin
结果到后来发现好像不需要cygwin了
cmd进入到proj.android下
虚缓仔敲入 python build_native.py 命令cmd开始编译
省去了之前版本需要用cygwin编译而且需要修改文件权限的步骤
心惊胆颤的直到发现 so文件ok
9
eclipse打开其中的android项目
导入不报错,运行黑屏。
果然没那么幸运
网上一搜说需要:
把cocos2d-x-3.0beta/cocos/2d/platform/android/java/src/org/cocos2d-x/lib整个文件夹拷贝到你的项目下proj.Android/src/org/cocos2d-x下
感觉这个步骤完全可以新建cocos2dx项目时脚本自动加上
应该是错误漏掉了
估计下次升级就不需要手动加了
加上之后再次运行哪扒
终于看到熟悉的薯仔了
10
下一步就差汪是在建一个cocos2dx的源码管理
由于之前试验过
应该没啥问题
就不加到流水帐了
11
回家搞vs2013和github果然有问题。
主要是新的cocos2dx3.0beta生成的项目太大了
空项目编译运行一次竟然高达800多M
于是学习了下git的配置文件的使用:
.gitignore
关键是这个文件正常来说windows不让建立
多敲一个。就行。
‘叁’ win7 用vs2015 打开cocos2dx 源码,一大片提示错误,都是 namespace "cocos2d::std" 没有 xxx 这种
可能程序不兼容, 可以更换个版本试试。另外建和冲议参考下程序对配置的要求。
或者右键需要运行的程序 选择兼容唤纯歼性 用兼容模式运行试试裤搏。
‘肆’ cocos2dx 2.x源码还有用么
不建议再使用 cocos2d-x 2.x ,主要是 cocos2d-x 3.x 的 API 更合理,更规范,也使用了 C++ 11的诸多特性。
cocos2d-x 的教材比较混乱,建议不要看。
触控官网的文档都不一定靠谱,最靠谱还是看源码。
‘伍’ 老师说cocos2dx过两年就会被淘汰,unity3D才是正道,各位怎么看
引擎这些工具,我们是永远跟不上别人的脚步的。
你现在需要学习的是什么?
1、精通一门语言(从语法,到多线程,到数据操作,到网络等等方面)。
2、掌握数据结构与算法。
3、熟悉设计模式。
4、多看他人的游戏源码,学习下来。
学习一些以一变应万变的,会让你在以后面对所以问题不会感到无力。
以后你也不会问选择哪个引擎的问题。
COCO,unity等等是标,不是本,是加分项而不是基础分。
我见过不少没有语言基础的直接上手学习UNITY的,恩,是学过一段时间,但是,当我看见问他们“事件”,“委托”,“四元素”,"线程池"“计数器”等等名词时的表情,我知道没有基础给他们带来的苦果。这样的程序员,也只是从一个地方换到另一个地方的码农。
当你自信满满的以为学好了UNITY就能找到工作时候,人家笔试提上一堆的数据结构与算法,指针,设计模式,网络,数据库,少年,你怎么办?
切记,把UNITY,COCO当做工具,把任何语言当做工具。
unity,COCO只是加分项,如果你基础分没修满,这个时候是考虑多修基础分的时候,而不是考虑多修加分项的时候。-FOR A GAME PROGRAMMER
‘陆’ 你好,我也是刚刚接触cocos2dx,从网上下载了个游戏源码 但是并不知道怎么导入到vs2012中,
找到项目的中以.vcxproj或者.sln命名的文件 打开就行了。
‘柒’ 怎么在cocos2dx的基础上学习opengl,shader
说说我的经验吧。
一、cocos2d-x 部分
1.1 技术选型
从第三个手游开始,我实在被Adobe的ANE和国内的小平台折腾得没了脾气,决定转到cocos2d-x。在选择哪种语言绑定的时候纠结了很久,最后力排众议选了 lua:Cocos2dx+lua合适还是Cocos2dx+js合适? cocos2d-x 2.x 的lua绑定做得并不好,于是我选择了 quick-cocos2d-x (后来,quick被触控收购)。
1.2 学习 C++
C++ Primer 中文版(第 5 版) (豆瓣) 是不错的入门书籍,建议看第五版,我写过一篇 C++Primer 第4版和第5版比较 。学习期间建议画一些思维导图帮助理解和整理思路。例如这个(不完整):
学习DEMO的过程中,你必须熟悉自己开发平台的IDE,例如Windows上必须熟悉 Visual Studio,而OS X上必须熟悉xcode,Linux平台上就熟悉Eclipse+CDT吧。
注意,quick-cocos2d-x 是不支持Linux开发平台的。
2014-05-17更新:quick已经使用QT重写了player部分,但依然不支持Liunx平台。
1.4 了解引擎的文件夹结构
基于 cocos2d-x 源码生成的文档并不怎么详细,许多功能必须看源码。但这个阶段,我不建议纠结源码太深,倒是可以纠结一下 cocos2d-x 的文件夹结构,看看各个类放在什么地方,找一找常见的哪些宏和常量以及枚举定义在什么地方,这花不了多少时间,但能让你对cocos2d-x有更深刻的了解,同时给你很强的成就感。这种成就感冲淡了你面对大量源码时候的无力感,让你能够继续前行。
1.5 重复上面的第3步:再次学习DEMO
这时候看DEMO可能会轻松不少,但是你会有更多的问题去纠结。例如多分辨率支持?例如坐标系统?例如绘图功能?例如层级管理系统?例如事件传递系统?等等等等……这时候可以去Google(注意不要用百毒和其他搜索引擎)找文档看了。
1.5 重复上面的第3步:再次学习DEMO
这时候看DEMO可能会轻松不少,但是你会有更多的问题去纠结。例如多分辨率支持?例如坐标系统?例如绘图功能?例如层级管理系统?例如事件传递系统?等等等等……这时候可以去Google(注意不要用百毒和其他搜索引擎)找文档看了。
‘捌’ cocos2dx 3.10 事件机制
cocos2dx的事件机制里存在三类: Event、EventListener、EventDispatcher
先理解一下它们之间的关系
当我们按下按钮时(Event),会触发一个特定的事件(EventListener相当于回调函数),而这个特定的事件又存储在EventDispatcher里,可能按下这个按钮会触发多个事件,而事件的先后就是靠EventDispatcher来决定的。
Event的相关类
当出现来自鼠标,键盘,触屏,摇杆等输入源的输入时,这个事实称之为事件
引擎无时无刻都在感受事件。
Event
可以看出Event主要包含三个变量,一个是事件类型_type(也就是定义的枚举类型:触摸、键盘等),isStopped判断事件是否停止,只要事件停止,其相关的Listener都要停止callback调用。
EventTouch
它对应于四种触摸操作,不同的EventCode可以告诉Listener来调用不同的callback。
EventCustom
它是用户自定义事件,userData记录用户自定义数据,另一个eventName是用户给事件取的别名
上面的源码都有英文注释,我就不多解释了,我只说一个最重要的_isRegistered,它判断事件有没有被注册,如果没有被注册就不会触发。(如何注册事件?将事件加入dispatcher)
在讲它之前,我们先了解一下它的一个重要变量。
sceneGraphListeners: 一个事件(比如说触摸事件),需要按照一定的响应序列,依次对这些Node进行事件响应,所以该类型的事件都会绑定一个与此相关联的node,并且 响应顺序是与node在scene下的zorder相关的 。该类型下的事件优先级统一为0。(与渲染树有关)
fixedListeners: 优先级根据 fixedPriority 的数值从小往大排序、
只要出现了删除,修改,添加监听器的时候,监听器列表需要重新排序,都需要设置相应的 DirtyFlag 操作。但是 Cocos-2dx v3.10 里面的 updateListeners 函数有删除监听器的操作,然而并没有设置相应的 DirtyFlag 操作。
会抛出下面的异常
Gt0Index() 方法其实就是获取到当前监听器中 fixedPriority == 0 的监听器在监听器向量中的位置,它 只有在给 Listener 排序的时候会设置,但是如果更新了对应 ListenerID 的向量(EventListenerVector),但是没有重新排序,就会出现 _gt0Index 未及时更新的情况 ,导致抛出这个异常。
引用:
Cocos2dx游戏引擎(3.x)----新的事件分发机制
cocos2dx之event事件(一)
cocos2dx之event事件(三):事件分发器EventDispatcher
Cocos2dx-v3.10 事件分发机制源码解析
‘玖’ cocos2dx 怎么导入一个源代码
您好,跟新建项目的时候差不多,
只不过是点击右键后,
选择添加现有项目,
而不是新建项目。
或者是少了个proj.win32文件夹,添加项目时,进入到这个文件夹,选择.vcxproj格式的文件就行。