Cocos2dx 3.0 交流篇
创建项目: For(MAC)
举个样例,创建一个精灵的方式:
2、clone() 替代 copy(), 这个我用的不多。所以也就不多交代了;
3、Director的单例换成getInstance() 和 destroyInstance();
|
4、新的触摸机制,先贴一段代码给大家看看,可能是下一篇或者下下篇我会具体讲下新的触摸机制的。(嘻嘻。搞得我好像非常牛逼哄哄的样子)
5、另一些杂七杂八的东西,本人理解的不透。也就不发出来献丑了。最后将CCType.h 里的一些变动贴出来,让我们愉快的结束这篇博文。
Runtime Requirements
- Android 2.3 or newer
- iOS 5.0 or newer
- OS X 10.7 or newer
- Windows 7 or newer
- Linux Ubuntu 12.04 (or newer)
- cocos2d-x v3.0rc(or newer)
Software Requirements
- Xcode 4.6 (for iOS or Mac)
- gcc 4.7 for Linux or Android. For Android ndk-r9 or newer is required.
- Visual Studio 2012 (for Windows)
- Python 2.7.5
Create A New Project
$ cd cocos2d-x
$ ./setup.py
$ source ~/.bash_profile # may be ~/.bash_login or ~/.profile, depends on your environemnt
$ cocos new MyGame -p com.MyCompany.MyGame -l cpp -d ~/MyCompany
MyGame
: name of your project-p com.MyCompany.MyGame
: package name for android-l cpp
: programming language used for the project, valid value iscpp
andlua
-d ~/MyCompany
: directory to hold your project
Folder structure of the generated project is as following:
(Note: The directory may be different when the project type is lua.)
Build And Run New Project
$ cocos run -s ~/MyCompany/MyGame -p ios
-s
: directory of the new project. This could be an absolute path or a relative path.-p
: which platform to run on. Options areios
,android
,win32
,mac
andlinux
.
(Note: You are a tmux user, you should add reattach-to-user-namespace
before
the command cocos
. For more information, please refer to this
link for more information.)
You can run cocos run --help
for more detail information.
体验变化:
1、以CC开头的类从此去掉CC。如:
1
2
3
4
5
|
<code>|
v2. 1
| v3. 0
| |
CCSprite | Sprite | |
CCNode | Node | |
CCDirector | Director | |
etc... |</code> |
举个样例,创建一个精灵的方式:
1
2
3
4
5
6
|
v2. 0 CCSprite*
sp = CCSprite::create(); v3. 0 auto
sp = Sprite::create(); |
2、clone() 替代 copy(), 这个我用的不多。所以也就不多交代了;
3、Director的单例换成getInstance() 和 destroyInstance();
1
2
3
4
|
<code>|
v2. 1
| v3. 0
| |
CCDirector->sharedDirector() | Director->getInstance() | |
CCDirector->endDirector() | Director->destroyInstance() | |
etc... |</code> |
4、新的触摸机制,先贴一段代码给大家看看,可能是下一篇或者下下篇我会具体讲下新的触摸机制的。(嘻嘻。搞得我好像非常牛逼哄哄的样子)
1
2
3
4
5
6
7
8
9
10
11
12
|
auto
sprite = Sprite::create( "file.png" ); ... auto
listener = EventListenerTouchOneByOne::create(); listener->setSwallowTouch( true ); listener->onTouchBegan
= [](Touch* touch, Event* event) { do_some_thing(); return
true ;
}; listener->onTouchMoved
= [](Touch* touch, Event* event) { do_some_thing(); }; listener->onTouchEnded
= [](Touch* touch, Event* event) { do_some_thing(); }; listener->onTouchCancelled
= [](Touch* touch, Event* event) { do_some_thing(); }; //
The priority of the touch listener is based on the draw order of sprite EventDispatcher::getInstance()->addEventListenerWithSceneGraphPriority(listener,
sprite); //
Or the priority of the touch listener is a fixed value EventDispatcher::getInstance()->addEventListenerWithFixedPriority(listener,
100 );
//
100 is a fixed value |
5、另一些杂七杂八的东西,本人理解的不透。也就不发出来献丑了。最后将CCType.h 里的一些变动贴出来,让我们愉快的结束这篇博文。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<code>|
v2. 1
struct names | v3. 0
struct names | |
ccColor3B | Color3B | |
ccColor4B | Color4B | |
ccColor4F | Color4F | |
ccVertex2F | Vertex2F | |
ccVertex3F | Vertex3F | |
ccTex2F | Tex2F | |
ccPointSprite | PointSprite | |
ccQuad2 | Quad2 | |
ccQuad3 | Quad3 | |
ccV2F_C4B_T2F | V2F_C4B_T2F | |
ccV2F_C4F_T2F | V2F_C4F_T2F | |
ccV3F_C4B_T2F | V3F_C4B_T2F | |
ccV2F_C4B_T2F_Triangle | V2F_C4B_T2F_Triangle | |
ccV2F_C4B_T2F_Quad | V2F_C4B_T2F_Quad | |
ccV3F_C4B_T2F_Quad | V3F_C4B_T2F_Quad | |
ccV2F_C4F_T2F_Quad | V2F_C4F_T2F_Quad | |
ccBlendFunc | BlendFunc | |
ccT2F_Quad | T2F_Quad | |
ccAnimationFrameData | AnimationFrameData | </code> |
一些全局的定义:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
//
in v2.1 ccColor3B
color3B = ccc3( 0 ,
0 ,
0 ); ccc3BEqual(color3B,
ccc3( 1 ,
1 ,
1 )); ccColor4B
color4B = ccc4( 0 ,
0 ,
0 ,
0 ); ccColor4F
color4F = ccc4f( 0 ,
0 ,
0 ,
0 ); color4F
= ccc4FFromccc3B(color3B); color4F
= ccc4FFromccc4B(color4B); ccc4FEqual(color4F,
ccc4F( 1 ,
1 ,
1 ,
1 )); color4B
= ccc4BFromccc4F(color4F); color3B
= ccWHITE; //
in v3.0 Color3B
color3B = Color3B( 0 ,
0 ,
0 ); color3B.equals(Color3B( 1 ,
1 ,
1 )); Color4B
color4B = Color4B( 0 ,
0 ,
0 ,
0 ); Color4F
color4F = Color4F( 0 ,
0 ,
0 ,
0 ); color4F
= Color4F(color3B); color4F
= Color4F(color4B); color4F.equals(Color4F( 1 ,
1 ,
1 ,
1 )); color4B
= Color4B(color4F); color3B
= Color3B::WHITE; |
继续...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
<code>|
v2. 1
names | v3. 0
names | |
ccp | Point | |
ccpNeg | Point::- | |
ccpAdd | Point::+ | |
ccpSub | Point::- | |
ccpMult | Point::* | |
ccpMidpoint | Point::getMidpoint | |
ccpDot | Point::dot | |
ccpCrosss | Point::cross | |
ccpPerp | Point::getPerp | |
ccpRPerp | Point::getRPerp | |
ccpProject | Point::project | |
ccpRotate | Point::rotate | |
ccpUnrotate | Point::unrotate | |
ccpLengthSQ | Point::getLengthSq() | |
ccpDistanceSQ | Point::getDistanceSq | |
ccpLength | Point::getLength | |
ccpDistance | Point::getDistance | |
ccpNormalize | Point::normalize | |
ccpForAngle | Point::forAngle | |
ccpToAngle | Point::getAngle | |
ccpClamp | Point::getClampPoint | |
ccpFromSize | Point::Point | |
ccpCompOp | Point::compOp | |
ccpLerp | Point::lerp | |
ccpFuzzyEqual | Point::fuzzyEqual | |
ccpCompMult | Point::Point | |
ccpAngleSigned | Point::getAngle | |
ccpAngle | Point::getAngle | |
ccpRotateByAngle | Point::rotateByAngle | |
ccpLineInersect | Point::isLineIntersect | |
ccpSegmentIntersect | Point::isSegmentIntersect | |
ccpIntersectPoint | Point::getIntersectPoint | |
CCPointMake | Point::Point | |
CCSizeMake | Size::Size | |
CCRectMake | Rect::Rect | |
PointZero | Point::ZERO | |
SizeZero | Size::ZERO | |
RectZero | Rect::ZERO | |
TiledGrid3DAction::tile | TiledGrid3DAction::getTile | |
TiledGrid3DAction::originalTile | TiledGrid3DAction::getOriginalTile | |
TiledGrid3D::tile | TiledGrid3D::getTile | |
TiledGrid3D::originalTile | TiledGrid3D::getOriginalTile | |
Grid3DAction::vertex | Grid3DAction::getVertex | |
Grid3DAction::originalVertex | Grid3DAction::getOriginalVertex | |
Grid3D::vertex | Grid3D::getVertex | |
Grid3D::originalVertex | Grid3D::getOriginalVertex | |
Configuration::sharedConfiguration | Configuration::getInstance | |
Configuration::purgeConfiguration | Configuration::destroyInstance() | |
Director::sharedDirector() | Director::getInstance() | |
FileUtils::sharedFileUtils | FileUtils::getInstance | |
FileUtils::purgeFileUtils | FileUtils::destroyInstance | |
EGLView::sharedOpenGLView | EGLView::getInstance | |
ShaderCache::sharedShaderCache | ShaderCache::getInstance | |
ShaderCache::purgeSharedShaderCache | ShaderCache::destroyInstance | |
AnimationCache::sharedAnimationCache | AnimationCache::getInstance | |
AnimationCache::purgeSharedAnimationCache | AnimationCache::destroyInstance | |
SpriteFrameCache::sharedSpriteFrameCache | SpriteFrameCache::getInstance | |
SpriteFrameCache:: purgeSharedSpriteFrameCache | SpriteFrameCache::destroyInstance | |
NotificationCenter::sharedNotificationCenter | NotificationCenter::getInstance | |
NotificationCenter:: purgeNotificationCenter | NotificationCenter::destroyInstance | |
Profiler::sharedProfiler | Profiler::getInstance | |
UserDefault::sharedUserDefault | UserDefault::getInstance | |
UserDefault::purgeSharedUserDefault | UserDefault::destroyInstance | |
Application::sharedApplication | Application::getInstance | |
ccc3() | Color3B() | |
ccc3BEqual() | Color3B::equals() | |
ccc4() | Color4B() | |
ccc4FFromccc3B() | Color4F() | |
ccc4f() | Color4F() | |
ccc4FFromccc4B() | Color4F() | |
ccc4BFromccc4F() | Color4B() | |
ccc4FEqual() | Color4F::equals() | |
ccWHITE | Color3B::WHITE | |
ccYELLOW | Color3B::YELLOW | |
ccBLUE | Color3B::BLUE | |
ccGREEN | Color3B::GREEN | |
ccRED | Color3B::RED | |
ccMAGENTA | Color3B::MAGENTA | |
ccBLACK | Color3B::BLACK | |
ccORANGE | Color3B::ORANGE | |
ccGRAY | Color3B::GRAY | |
kBlendFuncDisable | BlendFunc::BLEND_FUNC_DISABLE |</code>
|