cocos2d-x权威指南 2.0.1版的代码在2.0.1和2.2.6的win32环境下用vs2010编译,出现以下问题,恳请大牛给与帮助。

时间:2020-12-01 06:34:11
e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(132): error C2440: “类型转换”: 无法从“void (__thiscall GameMain::* )(void)”转换为“cocos2d::SEL_MenuHandler”
1>          指向成员的指针有不同的表示形式;无法在它们之间进行类型转换
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(191): error C2440: “类型转换”: 无法从“void (__thiscall GameMain::* )(void)”转换为“cocos2d::SEL_SCHEDULE”
1>          指向成员的指针有不同的表示形式;无法在它们之间进行类型转换
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(212): error C2065: “i”: 未声明的标识符
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(215): warning C4018: “<”: 有符号/无符号不匹配
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(231): error C2059: 语法错误:“for”
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(231): error C2143: 语法错误 : 缺少“)”(在“;”的前面)
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(231): error C2143: 语法错误 : 缺少“;”(在“<”的前面)
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(231): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(231): error C2143: 语法错误 : 缺少“;”(在“++”的前面)
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(231): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(231): error C2086: “int i”: 重定义
 e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(231) : 参见“i”的声明
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(231): error C2059: 语法错误:“)”
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(231): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(231): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(236): error C2059: 语法错误:“}”
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(236): error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(236): error C2059: 语法错误:“}”
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(237): error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\cocos2d-2.0.1\catwar\classes\gamescene.cpp(237): error C2059: 语法错误:“}”

>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(24): error C2065: “animation”: 未声明的标识符
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(24): error C2227: “->addSpriteFrameWithFileName”的左边必须指向类/结构/联合/泛型类型
1>          类型是“'unknown-type'”
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(25): error C2065: “animation”: 未声明的标识符
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(25): error C2227: “->addSpriteFrameWithFileName”的左边必须指向类/结构/联合/泛型类型
1>          类型是“'unknown-type'”
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(26): error C2065: “animation”: 未声明的标识符
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(26): error C2227: “->setDelayPerUnit”的左边必须指向类/结构/联合/泛型类型
1>          类型是“'unknown-type'”
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(27): error C2065: “animation”: 未声明的标识符
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(27): error C2227: “->setRestoreOriginalFrame”的左边必须指向类/结构/联合/泛型类型
1>          类型是“'unknown-type'”
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(28): error C2065: “animation”: 未声明的标识符
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(80): error C2065: “bezier2”: 未声明的标识符
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(80): error C2228: “.controlPoint_1”的左边必须有类/结构/联合
1>          类型是“'unknown-type'”
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(81): error C2065: “bezier2”: 未声明的标识符
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(81): error C2228: “.controlPoint_2”的左边必须有类/结构/联合
1>          类型是“'unknown-type'”
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(82): error C2065: “bezier2”: 未声明的标识符
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(82): error C2228: “.endPosition”的左边必须有类/结构/联合
1>          类型是“'unknown-type'”
1>e:\cocos2d-2.0.1\catwar\classes\gameobjenemy.cpp(83): error C2065: “bezier2”: 未声明的标识符
1>  GameMenuScene.cpp
…………………………………………………………………………………………………………
下面还有一些类似错误,为什么会这样?

5 个解决方案

#1


建议你用vs2008来编译

#2


cocos2d-x 现在都3.6了, 接口都变啦。
楼主最少也得从 3.4 的版本开始呀。
看 cocos2d-x权威指南 或其它的旧资料,可理解其意思,再用新的版本方式写也是可以的.
cocos2d-x  的 2.x 跟 3.x完全都不是同一样东西了

#3


引用 1 楼 lovesmiles 的回复:
建议你用vs2008来编译



嗯,也可能是vs编译器版本兼容问题,谢谢!

#4



引用 2 楼 dooX8086 的回复:
cocos2d-x 现在都3.6了, 接口都变啦。
楼主最少也得从 3.4 的版本开始呀。
看 cocos2d-x权威指南 或其它的旧资料,可理解其意思,再用新的版本方式写也是可以的.
cocos2d-x  的 2.x 跟 3.x完全都不是同一样东西了


多谢指点,旧版本写的代码确实难找问题,麻烦您能介绍些cocos2d新版本实现的案例教程链接吗?

#5


该回复于2015-09-19 17:43:14被版主删除

#1


建议你用vs2008来编译

#2


cocos2d-x 现在都3.6了, 接口都变啦。
楼主最少也得从 3.4 的版本开始呀。
看 cocos2d-x权威指南 或其它的旧资料,可理解其意思,再用新的版本方式写也是可以的.
cocos2d-x  的 2.x 跟 3.x完全都不是同一样东西了

#3


引用 1 楼 lovesmiles 的回复:
建议你用vs2008来编译



嗯,也可能是vs编译器版本兼容问题,谢谢!

#4



引用 2 楼 dooX8086 的回复:
cocos2d-x 现在都3.6了, 接口都变啦。
楼主最少也得从 3.4 的版本开始呀。
看 cocos2d-x权威指南 或其它的旧资料,可理解其意思,再用新的版本方式写也是可以的.
cocos2d-x  的 2.x 跟 3.x完全都不是同一样东西了


多谢指点,旧版本写的代码确实难找问题,麻烦您能介绍些cocos2d新版本实现的案例教程链接吗?

#5


该回复于2015-09-19 17:43:14被版主删除