Sunteți pe pagina 1din 43

<!

DOCTYPE html>
<html lang="en" class=" is-copy-enabled">
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: http://og
p.me/ns/object# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/pro
file#">
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Language" content="en">
<meta name="viewport" content="width=1020">
<title>cocos2d-x/RELEASE_NOTES.md at v3 cocos2d/cocos2d-x GitHub</title>
<link rel="search" type="application/opensearchdescription+xml" href="/opens
earch.xml" title="GitHub">
<link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub
">
<link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-114.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114.png
">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-144.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144.png
">
<meta property="fb:app_id" content="1401488693436528">
<meta content="@github" name="twitter:site" /><meta content="summary" name
="twitter:card" /><meta content="cocos2d/cocos2d-x" name="twitter:title" /><meta
content="cocos2d-x for C++" name="twitter:description" /><meta content="https:/
/avatars0.githubusercontent.com/u/234324?v=3&amp;s=400" name="twitter:image:src"
/>
<meta content="GitHub" property="og:site_name" /><meta content="object" pr
operty="og:type" /><meta content="https://avatars0.githubusercontent.com/u/23432
4?v=3&amp;s=400" property="og:image" /><meta content="cocos2d/cocos2d-x" propert
y="og:title" /><meta content="https://github.com/cocos2d/cocos2d-x" property="og
:url" /><meta content="cocos2d-x for C++" property="og:description" />
<meta name="browser-stats-url" content="https://api.github.com/_private/br
owser/stats">
<meta name="browser-errors-url" content="https://api.github.com/_private/bro
wser/errors">
<link rel="assets" href="https://assets-cdn.github.com/">
<meta name="pjax-timeout" content="1000">
<meta name="msapplication-TileImage" content="/windows-tile.png">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="selected-link" value="repo_source" data-pjax-transient>
<meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK
1r1XQysX3xurLU">
<meta name="google-analytics" content="UA-3769691-2">
<meta content="collector.githubapp.com" name="octolytics-host" /><meta conte
nt="collector-cdn.github.com" name="octolytics-script-host" /><meta content="git
hub" name="octolytics-app-id" /><meta content="7371CB06:345D:281C7AB:55E3E0FB" n
ame="octolytics-dimension-request_id" />
<meta content="Rails, view, blob#show" data-pjax-transient="true" name="anal

ytics-event" />
<meta class="js-ga-set" name="dimension1" content="Logged Out">
<meta class="js-ga-set" name="dimension4" content="Current repo nav">
<meta name="is-dotcom" content="true">
<meta name="hostname" content="github.com">
<meta name="user-login" content="">
<link rel="icon" sizes="any" mask href="https://assets-cdn.github.com/pinn
ed-octocat.svg">
<meta name="theme-color" content="#4078c0">
<link rel="icon" type="image/x-icon" href="https://assets-cdn.github.com/f
avicon.ico">
<!-- </textarea> --><!-- '"` --><meta content="authenticity_token" name="csr
f-param" />
<meta content="lYoqHyaB2Rp8G2bE9nIJ5PyNmIEqVXLhgi670OCIEYUHqr4ntisfpnNL5hY/gufag
NR1W6iZSCwfY+DLt5ctow==" name="csrf-token" />
<link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/git
hub/index-ebd09ebc92d1048dd7af5cd68484181a6a6a0260b3df1e7349053db235e6c53a.css"
media="all" rel="stylesheet" />
<link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/git
hub2/index-f20fa2d1dc1467ff8e2f823d0c693c4aba5668d5b740a4c567afc32f85422020.css"
media="all" rel="stylesheet" />

<meta http-equiv="x-pjax-version" content="58acd2acac42635f7fc990a652c05ff3"


>
<meta name="description" content="cocos2d-x for C++">
<meta name="go-import" content="github.com/cocos2d/cocos2d-x git https://githu
b.com/cocos2d/cocos2d-x.git">
<meta content="234324" name="octolytics-dimension-user_id" /><meta content="co
cos2d" name="octolytics-dimension-user_login" /><meta content="1093228" name="oc
tolytics-dimension-repository_id" /><meta content="cocos2d/cocos2d-x" name="octo
lytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimensi
on-repository_public" /><meta content="false" name="octolytics-dimension-reposit
ory_is_fork" /><meta content="1093228" name="octolytics-dimension-repository_net
work_root_id" /><meta content="cocos2d/cocos2d-x" name="octolytics-dimension-rep
ository_network_root_nwo" />
<link href="https://github.com/cocos2d/cocos2d-x/commits/v3.atom" rel="alterna
te" title="Recent Commits to cocos2d-x:v3" type="application/atom+xml">
</head>
<body class="logged_out env-production windows vis-public page-blob">
<a href="#start-of-content" tabindex="1" class="accessibility-aid js-skip-to
-content">Skip to content</a>
<div class="wrapper">

<div class="header header-logged-out" role="banner">


<div class="container clearfix">
<a class="header-logo-wordmark" href="https://github.com/" data-ga-click="(L
ogged out) Header, go to homepage, icon:logo-wordmark">
<span class="mega-octicon octicon-logo-github"></span>
</a>
<div class="header-actions" role="navigation">
<a class="btn btn-primary" href="/join" data-ga-click="(Logged out) Head
er, clicked Sign up, text:sign-up">Sign up</a>
<a class="btn" href="/login?return_to=%2Fcocos2d%2Fcocos2d-x%2Fblob%2Fv3%2
Fdocs%2FRELEASE_NOTES.md" data-ga-click="(Logged out) Header, clicked Sign in, t
ext:sign-in">Sign in</a>
</div>
<div class="site-search repo-scope js-site-search" role="search">
<!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/coco
s2d/cocos2d-x/search" class="js-site-search-form" data-global-search-url="/searc
h" data-repo-search-url="/cocos2d/cocos2d-x/search" method="get"><div style="mar
gin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;
" /></div>
<label class="js-chromeless-input-container form-control">
<div class="scope-badge">This repository</div>
<input type="text"
class="js-site-search-focus js-site-search-field is-clearable chromeless-i
nput"
data-hotkey="s"
name="q"
placeholder="Search"
aria-label="Search this repository"
data-global-scope-placeholder="Search GitHub"
data-repo-scope-placeholder="Search"
tabindex="1"
autocapitalize="off">
</label>
</form>
</div>
<ul class="header-nav left" role="navigation">
<li class="header-nav-item">
<a class="header-nav-link" href="/explore" data-ga-click="(Logged ou
t) Header, go to explore, text:explore">Explore</a>
</li>
<li class="header-nav-item">
<a class="header-nav-link" href="/features" data-ga-click="(Logged o
ut) Header, go to features, text:features">Features</a>
</li>
<li class="header-nav-item">
<a class="header-nav-link" href="https://enterprise.github.com/" dat
a-ga-click="(Logged out) Header, go to enterprise, text:enterprise">Enterprise</
a>
</li>
<li class="header-nav-item">
<a class="header-nav-link" href="/pricing" data-ga-click="(Logged ou
t) Header, go to pricing, text:pricing">Pricing</a>
</li>
</ul>

</div>
</div>

<div id="start-of-content" class="accessibility-aid"></div>


<div id="js-flash-container">
</div>
<div itemscope itemtype="http://schema.org/WebPage">
<div class="pagehead repohead instapaper_ignore readability-menu">
<div class="container">
<div class="clearfix">
<ul class="pagehead-actions">
<li>
<a href="/login?return_to=%2Fcocos2d%2Fcocos2d-x"
class="btn btn-sm btn-with-count tooltipped tooltipped-n"
aria-label="You must be signed in to watch a repository" rel="nofollow">
<span class="octicon octicon-eye"></span>
Watch
</a>
<a class="social-count" href="/cocos2d/cocos2d-x/watchers">
1,107
</a>
</li>
<li>
<a href="/login?return_to=%2Fcocos2d%2Fcocos2d-x"
class="btn btn-sm btn-with-count tooltipped tooltipped-n"
aria-label="You must be signed in to star a repository" rel="nofollow">
<span class="octicon octicon-star"></span>
Star
</a>
<a class="social-count js-social-count" href="/cocos2d/cocos2d-x/stargazers"
>
6,552
</a>
</li>
<li>
<a href="/login?return_to=%2Fcocos2d%2Fcocos2d-x"
class="btn btn-sm btn-with-count tooltipped tooltipped-n"
aria-label="You must be signed in to fork a repository" rel="nofollow">
<span class="octicon octicon-repo-forked"></span>
Fork
</a>
<a href="/cocos2d/cocos2d-x/network" class="social-count">
4,653
</a>
</li>
</ul>

<h1 itemscope itemtype="http://data-vocabulary.org/Breadcrumb" class="


entry-title public ">
<span class="mega-octicon octicon-repo"></span>
<span class="author"><a href="/cocos2d" class="url fn" itemprop="url" rel="aut
hor"><span itemprop="title">cocos2d</span></a></span><!---><span class="path-divider">/</span><!---><strong><a href="/cocos2d/cocos2d-x" data-pjax="#js-repo-pjax-container">coco
s2d-x</a></strong>
<span class="page-context-loader">
<img alt="" height="16" src="https://assets-cdn.github.com/images/spinners/o
ctocat-spinner-32.gif" width="16" />
</span>
</h1>
</div>
</div>
</div>
<div class="container">
<div class="repository-with-sidebar repo-container new-discussion-timeline
">
<div class="repository-sidebar clearfix">
<nav class="sunken-menu repo-nav js-repo-nav js-sidenav-container-pjax js-octico
n-loaders"
role="navigation"
data-pjax="#js-repo-pjax-container"
data-issue-count-url="/cocos2d/cocos2d-x/issues/counts">
<ul class="sunken-menu-group">
<li class="tooltipped tooltipped-w" aria-label="Code">
<a href="/cocos2d/cocos2d-x" aria-label="Code" aria-selected="true" class=
"js-selected-navigation-item selected sunken-menu-item" data-hotkey="g c" data-s
elected-links="repo_source repo_downloads repo_commits repo_releases repo_tags r
epo_branches /cocos2d/cocos2d-x">
<span class="octicon octicon-code"></span> <span class="full-word">Code<
/span>
<img alt="" class="mini-loader" height="16" src="https://assets-cdn.gith
ub.com/images/spinners/octocat-spinner-32.gif" width="16" />
</a>
</li>
<li class="tooltipped tooltipped-w" aria-label="Issues">
<a href="/cocos2d/cocos2d-x/issues" aria-label="Issues" class="js-select
ed-navigation-item sunken-menu-item" data-hotkey="g i" data-selected-links="repo
_issues repo_labels repo_milestones /cocos2d/cocos2d-x/issues">
<span class="octicon octicon-issue-opened"></span> <span class="full-w
ord">Issues</span>
<span class="js-issue-replace-counter"></span>
<img alt="" class="mini-loader" height="16" src="https://assets-cdn.gi
thub.com/images/spinners/octocat-spinner-32.gif" width="16" />
</a>
</li>
<li class="tooltipped tooltipped-w" aria-label="Pull requests">
<a href="/cocos2d/cocos2d-x/pulls" aria-label="Pull requests" class="js-se
lected-navigation-item sunken-menu-item" data-hotkey="g p" data-selected-links="
repo_pulls /cocos2d/cocos2d-x/pulls">
<span class="octicon octicon-git-pull-request"></span> <span class="fu
ll-word">Pull requests</span>

<span class="js-pull-replace-counter"></span>
<img alt="" class="mini-loader" height="16" src="https://assets-cdn.gi
thub.com/images/spinners/octocat-spinner-32.gif" width="16" />
</a>
</li>
<li class="tooltipped tooltipped-w" aria-label="Wiki">
<a href="/cocos2d/cocos2d-x/wiki" aria-label="Wiki" class="js-selected-n
avigation-item sunken-menu-item" data-hotkey="g w" data-selected-links="repo_wik
i /cocos2d/cocos2d-x/wiki">
<span class="octicon octicon-book"></span> <span class="full-word">Wik
i</span>
<img alt="" class="mini-loader" height="16" src="https://assets-cdn.gi
thub.com/images/spinners/octocat-spinner-32.gif" width="16" />
</a>
</li>
</ul>
<div class="sunken-menu-separator"></div>
<ul class="sunken-menu-group">
<li class="tooltipped tooltipped-w" aria-label="Pulse">
<a href="/cocos2d/cocos2d-x/pulse" aria-label="Pulse" class="js-selected-n
avigation-item sunken-menu-item" data-selected-links="pulse /cocos2d/cocos2d-x/p
ulse">
<span class="octicon octicon-pulse"></span> <span class="full-word">Puls
e</span>
<img alt="" class="mini-loader" height="16" src="https://assets-cdn.gith
ub.com/images/spinners/octocat-spinner-32.gif" width="16" />
</a>
</li>
<li class="tooltipped tooltipped-w" aria-label="Graphs">
<a href="/cocos2d/cocos2d-x/graphs" aria-label="Graphs" class="js-selected
-navigation-item sunken-menu-item" data-selected-links="repo_graphs repo_contrib
utors /cocos2d/cocos2d-x/graphs">
<span class="octicon octicon-graph"></span> <span class="full-word">Grap
hs</span>
<img alt="" class="mini-loader" height="16" src="https://assets-cdn.gith
ub.com/images/spinners/octocat-spinner-32.gif" width="16" />
</a>
</li>
</ul>
</nav>
<div class="only-with-full-nav">
<div class="js-clone-url clone-url open"
data-protocol-type="http">
<h3><span class="text-emphasized">HTTPS</span> clone URL</h3>
<div class="input-group js-zeroclipboard-container">
<input type="text" class="input-mini input-monospace js-url-field js-zerocli
pboard-target"
value="https://github.com/cocos2d/cocos2d-x.git" readonly="readonly"
aria-label="HTTPS clone URL">
<span class="input-group-button">
<button aria-label="Copy to clipboard" class="js-zeroclipboard btn btn-sm
zeroclipboard-button tooltipped tooltipped-s" data-copied-hint="Copied!" type="b
utton"><span class="octicon octicon-clippy"></span></button>
</span>
</div>
</div>

<div class="js-clone-url clone-url "


data-protocol-type="subversion">
<h3><span class="text-emphasized">Subversion</span> checkout URL</h3>
<div class="input-group js-zeroclipboard-container">
<input type="text" class="input-mini input-monospace js-url-field js-zerocli
pboard-target"
value="https://github.com/cocos2d/cocos2d-x" readonly="readonly" aria
-label="Subversion checkout URL">
<span class="input-group-button">
<button aria-label="Copy to clipboard" class="js-zeroclipboard btn btn-sm
zeroclipboard-button tooltipped tooltipped-s" data-copied-hint="Copied!" type="b
utton"><span class="octicon octicon-clippy"></span></button>
</span>
</div>
</div>

<div class="clone-options">You can clone with


<!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/users/
set_protocol?protocol_selector=http&amp;protocol_type=clone" class="inline-form
js-clone-selector-form " data-form-nonce="a060fca127991814ea2602c8a745607f124f94
45" data-remote="true" method="post"><div style="margin:0;padding:0;display:inli
ne"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticit
y_token" type="hidden" value="h6gW7XY3/5o80obCrS39N3BC57/juqPA2zCdjsvpKrk6lfWcu3
WZ1nnkfLja3OXBcTG4OgoCKu3shN44U+N3NQ==" /></div><button class="btn-link js-clone
-selector" data-protocol="http" type="submit">HTTPS</button></form> or <!-- </te
xtarea> --><!-- '"` --><form accept-charset="UTF-8" action="/users/set_protocol?
protocol_selector=subversion&amp;protocol_type=clone" class="inline-form js-clon
e-selector-form " data-form-nonce="a060fca127991814ea2602c8a745607f124f9445" dat
a-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><in
put name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token
" type="hidden" value="Ab31n0Mn4XBb+Vud4iXTsBFUKR2DBf3lC81Yl+BGiwIkNZ72euIcrQ6XD
gwfv3iiK/YX7FaN7+ZgxGCQ4101KQ==" /></div><button class="btn-link js-clone-select
or" data-protocol="subversion" type="submit">Subversion</button></form>.
<a href="https://help.github.com/articles/which-remote-url-should-i-use" cla
ss="help tooltipped tooltipped-n" aria-label="Get help on which URL is right for
you.">
<span class="octicon octicon-question"></span>
</a>
</div>
<a href="https://windows.github.com" class="btn btn-sm sidebar-button" title
="Save cocos2d/cocos2d-x to your computer and use it in GitHub Desktop." aria-la
bel="Save cocos2d/cocos2d-x to your computer and use it in GitHub Desktop.">
<span class="octicon octicon-desktop-download"></span>
Clone in Desktop
</a>
<a href="/cocos2d/cocos2d-x/archive/v3.zip"
class="btn btn-sm sidebar-button"
aria-label="Download the contents of cocos2d/cocos2d-x as a zip
file"
title="Download the contents of cocos2d/cocos2d-x as a zip file
"
rel="nofollow">
<span class="octicon octicon-cloud-download"></span>
Download ZIP
</a>
</div>

</div>
<div id="js-repo-pjax-container" class="repository-content context-loade
r-container" data-pjax-container>

<a href="/cocos2d/cocos2d-x/blob/20d7abe6f308009babb27ca001d80695fe997a65/docs/R
ELEASE_NOTES.md" class="hidden js-permalink-shortcut" data-hotkey="y">Permalink<
/a>
<!-- blob contrib key: blob_contributors:v21:3077b58c92a3c2afc7e7967d7e310edc ->
<div class="file-navigation js-zeroclipboard-container">
<div class="select-menu js-menu-container js-select-menu left">
<span class="btn btn-sm select-menu-button js-menu-target css-truncate" data-h
otkey="w"
data-ref="v3"
title="v3"
role="button" aria-label="Switch branches or tags" tabindex="0" aria-haspopu
p="true">
<i>Branch:</i>
<span class="js-select-button css-truncate-target">v3</span>
</span>
<div class="select-menu-modal-holder js-menu-content js-navigation-container"
data-pjax aria-hidden="true">
<div class="select-menu-modal">
<div class="select-menu-header">
<span class="select-menu-title">Switch branches/tags</span>
<span class="octicon octicon-x js-menu-close" role="button" aria-label="
Close"></span>
</div>
<div class="select-menu-filters">
<div class="select-menu-text-filter">
<input type="text" aria-label="Filter branches/tags" id="context-commi
tish-filter-field" class="js-filterable-field js-navigation-enable" placeholder=
"Filter branches/tags">
</div>
<div class="select-menu-tabs">
<ul>
<li class="select-menu-tab">
<a href="#" data-tab-filter="branches" data-filter-placeholder="Fi
lter branches/tags" class="js-select-menu-tab" role="tab">Branches</a>
</li>
<li class="select-menu-tab">
<a href="#" data-tab-filter="tags" data-filter-placeholder="Find a
tag " class="js-select-menu-tab" role="tab">Tags</a>
</li>
</ul>
</div>
</div>
<div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-buc
ket" data-tab-filter="branches" role="menu">
<div data-filterable-for="context-commitish-filter-field" data-filterabl

e-type="substring">
<a class="select-menu-item js-navigation-item js-navigation-open "
href="/cocos2d/cocos2d-x/blob/v1/docs/RELEASE_NOTES.md"
data-name="v1"
data-skip-pjax="true"
rel="nofollow">
<span class="select-menu-item-icon octicon octicon-check"></span>
<span class="select-menu-item-text css-truncate-target" title="v1"
>
v1
</span>
</a>
<a class="select-menu-item js-navigation-item js-navigation-open "
href="/cocos2d/cocos2d-x/blob/v2/docs/RELEASE_NOTES.md"
data-name="v2"
data-skip-pjax="true"
rel="nofollow">
<span class="select-menu-item-icon octicon octicon-check"></span>
<span class="select-menu-item-text css-truncate-target" title="v2"
>
v2
</span>
</a>
<a class="select-menu-item js-navigation-item js-navigation-open sel
ected"
href="/cocos2d/cocos2d-x/blob/v3/docs/RELEASE_NOTES.md"
data-name="v3"
data-skip-pjax="true"
rel="nofollow">
<span class="select-menu-item-icon octicon octicon-check"></span>
<span class="select-menu-item-text css-truncate-target" title="v3"
>
v3
</span>
</a>
<a class="select-menu-item js-navigation-item js-navigation-open "
href="/cocos2d/cocos2d-x/blob/v3.8/docs/RELEASE_NOTES.md"
data-name="v3.8"
data-skip-pjax="true"
rel="nofollow">
<span class="select-menu-item-icon octicon octicon-check"></span>
<span class="select-menu-item-text css-truncate-target" title="v3.
8">
v3.8
</span>
</a>
<a class="select-menu-item js-navigation-item js-navigation-open "
href="/cocos2d/cocos2d-x/blob/v3-doc/docs/RELEASE_NOTES.md"
data-name="v3-doc"
data-skip-pjax="true"
rel="nofollow">
<span class="select-menu-item-icon octicon octicon-check"></span>
<span class="select-menu-item-text css-truncate-target" title="v3doc">
v3-doc
</span>
</a>
<a class="select-menu-item js-navigation-item js-navigation-open "

href="/cocos2d/cocos2d-x/blob/v4-develop/docs/RELEASE_NOTES.md"
data-name="v4-develop"
data-skip-pjax="true"
rel="nofollow">
<span class="select-menu-item-icon octicon octicon-check"></span>
<span class="select-menu-item-text css-truncate-target" title="v4develop">
v4-develop
</span>
</a>
<a class="select-menu-item js-navigation-item js-navigation-open "
href="/cocos2d/cocos2d-x/blob/v35-for-tizen/docs/RELEASE_NOTES.md
"
data-name="v35-for-tizen"
data-skip-pjax="true"
rel="nofollow">
<span class="select-menu-item-icon octicon octicon-check"></span>
<span class="select-menu-item-text css-truncate-target" title="v35
-for-tizen">
v35-for-tizen
</span>
</a>
</div>
<div class="select-menu-no-results">Nothing to show</div>
</div>
<div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-buc
ket" data-tab-filter="tags">
<div data-filterable-for="context-commitish-filter-field" data-filterabl
e-type="substring">
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-4.0alpha1/docs/RELEASE_
NOTES.md"
data-name="cocos2d-x-4.0alpha1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-4.0alpha1">cocos2d-x-4.0alpha1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-4.0alpha0/docs/RELEASE_
NOTES.md"
data-name="cocos2d-x-4.0alpha0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-4.0alpha0">cocos2d-x-4.0alpha0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.8rc0/docs/RELEASE_NOT
ES.md"
data-name="cocos2d-x-3.8rc0"

data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.8rc0">cocos2d-x-3.8rc0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.8beta0/docs/RELEASE_N
OTES.md"
data-name="cocos2d-x-3.8beta0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.8beta0">cocos2d-x-3.8beta0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.7rc1/docs/RELEASE_NOT
ES.md"
data-name="cocos2d-x-3.7rc1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.7rc1">cocos2d-x-3.7rc1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.7rc0/docs/RELEASE_NOT
ES.md"
data-name="cocos2d-x-3.7rc0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.7rc0">cocos2d-x-3.7rc0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.7beta0/docs/RELEASE_N
OTES.md"
data-name="cocos2d-x-3.7beta0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.7beta0">cocos2d-x-3.7beta0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.7.1/docs/RELEASE_NOTE
S.md"
data-name="cocos2d-x-3.7.1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.7.1">cocos2d-x-3.7.1</a>

</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.7/docs/RELEASE_NOTES.
md"
data-name="cocos2d-x-3.7"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.7">cocos2d-x-3.7</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.6beta0/docs/RELEASE_N
OTES.md"
data-name="cocos2d-x-3.6beta0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.6beta0">cocos2d-x-3.6beta0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.6alpha0/docs/RELEASE_
NOTES.md"
data-name="cocos2d-x-3.6alpha0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.6alpha0">cocos2d-x-3.6alpha0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.6/docs/RELEASE_NOTES.
md"
data-name="cocos2d-x-3.6"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.6">cocos2d-x-3.6</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.5-tizen/docs/RELEASE_
NOTES.md"
data-name="cocos2d-x-3.5-tizen"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.5-tizen">cocos2d-x-3.5-tizen</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.5rc0/docs/RELEASE_NOT
ES.md"

data-name="cocos2d-x-3.5rc0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.5rc0">cocos2d-x-3.5rc0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.5beta0/docs/RELEASE_N
OTES.md"
data-name="cocos2d-x-3.5beta0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.5beta0">cocos2d-x-3.5beta0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.5/docs/RELEASE_NOTES.
md"
data-name="cocos2d-x-3.5"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.5">cocos2d-x-3.5</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.4rc1/docs/RELEASE_NOT
ES.md"
data-name="cocos2d-x-3.4rc1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.4rc1">cocos2d-x-3.4rc1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.4rc0/docs/RELEASE_NOT
ES.md"
data-name="cocos2d-x-3.4rc0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.4rc0">cocos2d-x-3.4rc0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.4beta0/docs/RELEASE_N
OTES.md"
data-name="cocos2d-x-3.4beta0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"

title="cocos2d-x-3.4beta0">cocos2d-x-3.4beta0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.4/docs/RELEASE_NOTES.
md"
data-name="cocos2d-x-3.4"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.4">cocos2d-x-3.4</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.3rc2/docs/RELEASE_NOT
ES.md"
data-name="cocos2d-x-3.3rc2"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.3rc2">cocos2d-x-3.3rc2</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.3rc1/docs/RELEASE_NOT
ES.md"
data-name="cocos2d-x-3.3rc1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.3rc1">cocos2d-x-3.3rc1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.3rc0/docs/RELEASE_NOT
ES.md"
data-name="cocos2d-x-3.3rc0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.3rc0">cocos2d-x-3.3rc0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.3beta0/docs/RELEASE_N
OTES.md"
data-name="cocos2d-x-3.3beta0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.3beta0">cocos2d-x-3.3beta0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.3alpha0/docs/RELEASE_

NOTES.md"
data-name="cocos2d-x-3.3alpha0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.3alpha0">cocos2d-x-3.3alpha0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.3/docs/RELEASE_NOTES.
md"
data-name="cocos2d-x-3.3"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.3">cocos2d-x-3.3</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.2rc0/docs/RELEASE_NOT
ES.md"
data-name="cocos2d-x-3.2rc0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.2rc0">cocos2d-x-3.2rc0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.2alpha0/docs/RELEASE_
NOTES.md"
data-name="cocos2d-x-3.2alpha0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.2alpha0">cocos2d-x-3.2alpha0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.2/docs/RELEASE_NOTES.
md"
data-name="cocos2d-x-3.2"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.2">cocos2d-x-3.2</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.1rc0/docs/RELEASE_NOT
ES.md"
data-name="cocos2d-x-3.1rc0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta

rget"
title="cocos2d-x-3.1rc0">cocos2d-x-3.1rc0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.1alpha1/docs/RELEASE_
NOTES.md"
data-name="cocos2d-x-3.1alpha1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.1alpha1">cocos2d-x-3.1alpha1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.1alpha0/docs/RELEASE_
NOTES.md"
data-name="cocos2d-x-3.1alpha0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.1alpha0">cocos2d-x-3.1alpha0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.1.1/docs/RELEASE_NOTE
S.md"
data-name="cocos2d-x-3.1.1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.1.1">cocos2d-x-3.1.1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.1/docs/RELEASE_NOTES.
md"
data-name="cocos2d-x-3.1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.1">cocos2d-x-3.1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.0rc2/docs/RELEASE_NOT
ES.md"
data-name="cocos2d-x-3.0rc2"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.0rc2">cocos2d-x-3.0rc2</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>

<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.0rc1/docs/RELEASE_NOT
ES.md"
data-name="cocos2d-x-3.0rc1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.0rc1">cocos2d-x-3.0rc1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.0rc0/docs/RELEASE_NOT
ES.md"
data-name="cocos2d-x-3.0rc0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.0rc0">cocos2d-x-3.0rc0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.0rc/docs/RELEASE_NOTE
S.md"
data-name="cocos2d-x-3.0rc"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.0rc">cocos2d-x-3.0rc</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.0beta2/docs/RELEASE_N
OTES.md"
data-name="cocos2d-x-3.0beta2"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.0beta2">cocos2d-x-3.0beta2</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.0beta/docs/RELEASE_NO
TES.md"
data-name="cocos2d-x-3.0beta"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.0beta">cocos2d-x-3.0beta</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.0alpha1/docs/RELEASE_
NOTES.md"
data-name="cocos2d-x-3.0alpha1"
data-skip-pjax="true"
rel="nofollow"

class="js-navigation-open select-menu-item-text css-truncate-ta


rget"
title="cocos2d-x-3.0alpha1">cocos2d-x-3.0alpha1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.0alpha0-pre/docs/RELE
ASE_NOTES.md"
data-name="cocos2d-x-3.0alpha0-pre"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.0alpha0-pre">cocos2d-x-3.0alpha0-pre</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.0alpha0/docs/RELEASE_
NOTES.md"
data-name="cocos2d-x-3.0alpha0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.0alpha0">cocos2d-x-3.0alpha0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-3.0/docs/RELEASE_NOTES.
md"
data-name="cocos2d-x-3.0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-3.0">cocos2d-x-3.0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-2.2.6/docs/RELEASE_NOTE
S.md"
data-name="cocos2d-x-2.2.6"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-2.2.6">cocos2d-x-2.2.6</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-2.2.5/docs/RELEASE_NOTE
S.md"
data-name="cocos2d-x-2.2.5"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-2.2.5">cocos2d-x-2.2.5</a>
</div>
<div class="select-menu-item js-navigation-item ">

<span class="select-menu-item-icon octicon octicon-check"></span>


<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-2.2.4/docs/RELEASE_NOTE
S.md"
data-name="cocos2d-x-2.2.4"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-2.2.4">cocos2d-x-2.2.4</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-2.2.3/docs/RELEASE_NOTE
S.md"
data-name="cocos2d-x-2.2.3"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-2.2.3">cocos2d-x-2.2.3</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-2.2.2/docs/RELEASE_NOTE
S.md"
data-name="cocos2d-x-2.2.2"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-2.2.2">cocos2d-x-2.2.2</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-2.2.1/docs/RELEASE_NOTE
S.md"
data-name="cocos2d-x-2.2.1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-2.2.1">cocos2d-x-2.2.1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-2.2/docs/RELEASE_NOTES.
md"
data-name="cocos2d-x-2.2"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-2.2">cocos2d-x-2.2</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-2.1.5/docs/RELEASE_NOTE
S.md"
data-name="cocos2d-x-2.1.5"
data-skip-pjax="true"

rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-2.1.5">cocos2d-x-2.1.5</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-x-2.1.4/docs/RELEASE_NOTE
S.md"
data-name="cocos2d-x-2.1.4"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-x-2.1.4">cocos2d-x-2.1.4</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-2.1rc0-x-2.1.3/docs/RELEA
SE_NOTES.md"
data-name="cocos2d-2.1rc0-x-2.1.3"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-2.1rc0-x-2.1.3">cocos2d-2.1rc0-x-2.1.3</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-2.1rc0-x-2.1.2/docs/RELEA
SE_NOTES.md"
data-name="cocos2d-2.1rc0-x-2.1.2"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-2.1rc0-x-2.1.2">cocos2d-2.1rc0-x-2.1.2</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-2.1beta3-x-2.1.1/docs/REL
EASE_NOTES.md"
data-name="cocos2d-2.1beta3-x-2.1.1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-2.1beta3-x-2.1.1">cocos2d-2.1beta3-x-2.1.1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-2.1beta3-x-2.1.0/docs/REL
EASE_NOTES.md"
data-name="cocos2d-2.1beta3-x-2.1.0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-2.1beta3-x-2.1.0">cocos2d-2.1beta3-x-2.1.0</a>
</div>

<div class="select-menu-item js-navigation-item ">


<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-2.0-x-2.0.4/docs/RELEASE_
NOTES.md"
data-name="cocos2d-2.0-x-2.0.4"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-2.0-x-2.0.4">cocos2d-2.0-x-2.0.4</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-2.0-x-2.0.3/docs/RELEASE_
NOTES.md"
data-name="cocos2d-2.0-x-2.0.3"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-2.0-x-2.0.3">cocos2d-2.0-x-2.0.3</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-2.0-x-2.0.2/docs/RELEASE_
NOTES.md"
data-name="cocos2d-2.0-x-2.0.2"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-2.0-x-2.0.2">cocos2d-2.0-x-2.0.2</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-2.0-rc2-x-2.0.1/docs/RELE
ASE_NOTES.md"
data-name="cocos2d-2.0-rc2-x-2.0.1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-2.0-rc2-x-2.0.1">cocos2d-2.0-rc2-x-2.0.1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-2.0-rc0a-x-2.0/docs/RELEA
SE_NOTES.md"
data-name="cocos2d-2.0-rc0a-x-2.0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-2.0-rc0a-x-2.0">cocos2d-2.0-rc0a-x-2.0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-1.0.1-x-0.13.0-beta/docs/
RELEASE_NOTES.md"
data-name="cocos2d-1.0.1-x-0.13.0-beta"

data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-1.0.1-x-0.13.0-beta">cocos2d-1.0.1-x-0.13.0-beta
</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-1.0.1-x-0.12.0/docs/RELEA
SE_NOTES.md"
data-name="cocos2d-1.0.1-x-0.12.0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-1.0.1-x-0.12.0">cocos2d-1.0.1-x-0.12.0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-1.0.1-x-0.11.0/docs/RELEA
SE_NOTES.md"
data-name="cocos2d-1.0.1-x-0.11.0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-1.0.1-x-0.11.0">cocos2d-1.0.1-x-0.11.0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-1.0.1-x-0.10.0/docs/RELEA
SE_NOTES.md"
data-name="cocos2d-1.0.1-x-0.10.0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-1.0.1-x-0.10.0">cocos2d-1.0.1-x-0.10.0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-1.0.1-x-0.9.2/docs/RELEAS
E_NOTES.md"
data-name="cocos2d-1.0.1-x-0.9.2"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-1.0.1-x-0.9.2">cocos2d-1.0.1-x-0.9.2</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-1.0.1-x-0.9.1/docs/RELEAS
E_NOTES.md"
data-name="cocos2d-1.0.1-x-0.9.1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"

title="cocos2d-1.0.1-x-0.9.1">cocos2d-1.0.1-x-0.9.1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-1.0.0-x-0.9.0/docs/RELEAS
E_NOTES.md"
data-name="cocos2d-1.0.0-x-0.9.0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-1.0.0-x-0.9.0">cocos2d-1.0.0-x-0.9.0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-0.99.5-x-0.8.5/docs/RELEA
SE_NOTES.md"
data-name="cocos2d-0.99.5-x-0.8.5"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-0.99.5-x-0.8.5">cocos2d-0.99.5-x-0.8.5</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-0.99.5-x-0.8.4/docs/RELEA
SE_NOTES.md"
data-name="cocos2d-0.99.5-x-0.8.4"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-0.99.5-x-0.8.4">cocos2d-0.99.5-x-0.8.4</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-0.99.5-x-0.8.3/docs/RELEA
SE_NOTES.md"
data-name="cocos2d-0.99.5-x-0.8.3"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-0.99.5-x-0.8.3">cocos2d-0.99.5-x-0.8.3</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-0.99.5-x-0.8.2/docs/RELEA
SE_NOTES.md"
data-name="cocos2d-0.99.5-x-0.8.2"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-0.99.5-x-0.8.2">cocos2d-0.99.5-x-0.8.2</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-0.99.5-x-0.8.1/docs/RELEA

SE_NOTES.md"
data-name="cocos2d-0.99.5-x-0.8.1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-0.99.5-x-0.8.1">cocos2d-0.99.5-x-0.8.1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-0.99.5-x-0.8.0/docs/RELEA
SE_NOTES.md"
data-name="cocos2d-0.99.5-x-0.8.0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-0.99.5-x-0.8.0">cocos2d-0.99.5-x-0.8.0</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-0.99.5-x-0.7.2/docs/RELEA
SE_NOTES.md"
data-name="cocos2d-0.99.5-x-0.7.2"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-0.99.5-x-0.7.2">cocos2d-0.99.5-x-0.7.2</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-0.99.4-x-0.7.1/docs/RELEA
SE_NOTES.md"
data-name="cocos2d-0.99.4-x-0.7.1"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-0.99.4-x-0.7.1">cocos2d-0.99.4-x-0.7.1</a>
</div>
<div class="select-menu-item js-navigation-item ">
<span class="select-menu-item-icon octicon octicon-check"></span>
<a href="/cocos2d/cocos2d-x/tree/cocos2d-0.99.4-x-0.7.0/docs/RELEA
SE_NOTES.md"
data-name="cocos2d-0.99.4-x-0.7.0"
data-skip-pjax="true"
rel="nofollow"
class="js-navigation-open select-menu-item-text css-truncate-ta
rget"
title="cocos2d-0.99.4-x-0.7.0">cocos2d-0.99.4-x-0.7.0</a>
</div>
</div>
<div class="select-menu-no-results">Nothing to show</div>
</div>
</div>
</div>
</div>

<div class="btn-group right">


<a href="/cocos2d/cocos2d-x/find/v3"
class="js-show-file-finder btn btn-sm empty-icon tooltipped tooltipp
ed-nw"
data-pjax
data-hotkey="t"
aria-label="Quickly jump between files">
<span class="octicon octicon-list-unordered"></span>
</a>
<button aria-label="Copy file path to clipboard" class="js-zeroclipboard b
tn btn-sm zeroclipboard-button tooltipped tooltipped-s" data-copied-hint="Copied
!" type="button"><span class="octicon octicon-clippy"></span></button>
</div>
<div class="breadcrumb js-zeroclipboard-target">
<span class="repo-root js-repo-root"><span itemscope="" itemtype="http://d
ata-vocabulary.org/Breadcrumb"><a href="/cocos2d/cocos2d-x" class="" data-branch
="v3" data-pjax="true" itemscope="url"><span itemprop="title">cocos2d-x</span></
a></span></span><span class="separator">/</span><span itemscope="" itemtype="htt
p://data-vocabulary.org/Breadcrumb"><a href="/cocos2d/cocos2d-x/tree/v3/docs" cl
ass="" data-branch="v3" data-pjax="true" itemscope="url"><span itemprop="title">
docs</span></a></span><span class="separator">/</span><strong class="final-path"
>RELEASE_NOTES.md</strong>
</div>
</div>
<div class="commit file-history-tease">
<div class="file-history-tease-header">
<img alt="@pandamicro" class="avatar" height="24" src="https://avatars0.
githubusercontent.com/u/632460?v=3&amp;s=48" width="24" />
<span class="author"><a href="/pandamicro" rel="contributor">pandamicro<
/a></span>
<time datetime="2015-08-25T10:24:31Z" is="relative-time">Aug 25, 2015</t
ime>
<div class="commit-title">
<a href="/cocos2d/cocos2d-x/commit/4a3ace6ff53d7fb8f5cca6e1ddaa37eae
4efa26f" class="message" data-pjax="true" title="Add release note for v3.8">Add
release note for v3.8</a>
</div>
</div>
<div class="participation">
<p class="quickstat">
<a href="#blob_contributors_box" rel="facebox">
<strong>13</strong>
contributors
</a>
</p>
<a class="avatar-link tooltipped tooltipped-s" aria-label="minggo" hre
f="/cocos2d/cocos2d-x/commits/v3.8/docs/RELEASE_NOTES.md?author=minggo"><img alt
="@minggo" class="avatar" height="20" src="https://avatars0.githubusercontent.co
m/u/488203?v=3&amp;s=40" width="20" /> </a>
<a class="avatar-link tooltipped tooltipped-s" aria-label="ricardoquesada" h
ref="/cocos2d/cocos2d-x/commits/v3.8/docs/RELEASE_NOTES.md?author=ricardoquesada
"><img alt="@ricardoquesada" class="avatar" height="20" src="https://avatars0.gi
thubusercontent.com/u/232330?v=3&amp;s=40" width="20" /> </a>
<a class="avatar-link tooltipped tooltipped-s" aria-label="dabingnn" href="/
cocos2d/cocos2d-x/commits/v3.8/docs/RELEASE_NOTES.md?author=dabingnn"><img alt="

@dabingnn" class="avatar" height="20" src="https://avatars0.githubusercontent.co


m/u/4794489?v=3&amp;s=40" width="20" /> </a>
<a class="avatar-link tooltipped tooltipped-s" aria-label="super626" href="/
cocos2d/cocos2d-x/commits/v3.8/docs/RELEASE_NOTES.md?author=super626"><img alt="
@super626" class="avatar" height="20" src="https://avatars0.githubusercontent.co
m/u/4159090?v=3&amp;s=40" width="20" /> </a>
<a class="avatar-link tooltipped tooltipped-s" aria-label="pandamicro" href=
"/cocos2d/cocos2d-x/commits/v3.8/docs/RELEASE_NOTES.md?author=pandamicro"><img a
lt="@pandamicro" class="avatar" height="20" src="https://avatars2.githubusercont
ent.com/u/632460?v=3&amp;s=40" width="20" /> </a>
<a class="avatar-link tooltipped tooltipped-s" aria-label="walzer" href="/co
cos2d/cocos2d-x/commits/v3.8/docs/RELEASE_NOTES.md?author=walzer"><img alt="@wal
zer" class="avatar" height="20" src="https://avatars0.githubusercontent.com/u/34
5379?v=3&amp;s=40" width="20" /> </a>
<a class="avatar-link tooltipped tooltipped-s" aria-label="samuele3hu" href=
"/cocos2d/cocos2d-x/commits/v3.8/docs/RELEASE_NOTES.md?author=samuele3hu"><img a
lt="@samuele3hu" class="avatar" height="20" src="https://avatars1.githubusercont
ent.com/u/4231014?v=3&amp;s=40" width="20" /> </a>
<a class="avatar-link tooltipped tooltipped-s" aria-label="zilongshanren" hr
ef="/cocos2d/cocos2d-x/commits/v3.8/docs/RELEASE_NOTES.md?author=zilongshanren">
<img alt="@zilongshanren" class="avatar" height="20" src="https://avatars3.githu
busercontent.com/u/785541?v=3&amp;s=40" width="20" /> </a>
<a class="avatar-link tooltipped tooltipped-s" aria-label="darkdukey" href="
/cocos2d/cocos2d-x/commits/v3.8/docs/RELEASE_NOTES.md?author=darkdukey"><img alt
="@darkdukey" class="avatar" height="20" src="https://avatars3.githubusercontent
.com/u/371584?v=3&amp;s=40" width="20" /> </a>
<a class="avatar-link tooltipped tooltipped-s" aria-label="dumganhar" href="
/cocos2d/cocos2d-x/commits/v3.8/docs/RELEASE_NOTES.md?author=dumganhar"><img alt
="@dumganhar" class="avatar" height="20" src="https://avatars3.githubusercontent
.com/u/493372?v=3&amp;s=40" width="20" /> </a>
<a class="avatar-link tooltipped tooltipped-s" aria-label="mannewalis" href=
"/cocos2d/cocos2d-x/commits/v3.8/docs/RELEASE_NOTES.md?author=mannewalis"><img a
lt="@mannewalis" class="avatar" height="20" src="https://avatars0.githubusercont
ent.com/u/4534274?v=3&amp;s=40" width="20" /> </a>
<a class="avatar-link tooltipped tooltipped-s" aria-label="slackmoehrle" hre
f="/cocos2d/cocos2d-x/commits/v3.8/docs/RELEASE_NOTES.md?author=slackmoehrle"><i
mg alt="@slackmoehrle" class="avatar" height="20" src="https://avatars1.githubus
ercontent.com/u/7491758?v=3&amp;s=40" width="20" /> </a>
<a class="avatar-link tooltipped tooltipped-s" aria-label="zakmandhro" href=
"/cocos2d/cocos2d-x/commits/v3.8/docs/RELEASE_NOTES.md?author=zakmandhro"><img a
lt="@zakmandhro" class="avatar" height="20" src="https://avatars1.githubusercont
ent.com/u/15746?v=3&amp;s=40" width="20" /> </a>
</div>
<div id="blob_contributors_box" style="display:none">
<h2 class="facebox-header" id="facebox-header">Users who have contributed
to this file</h2>
<ul class="facebox-user-list" id="facebox-description">
<li class="facebox-user-list-item">
<img alt="@minggo" height="24" src="https://avatars2.githubuserconte
nt.com/u/488203?v=3&amp;s=48" width="24" />
<a href="/minggo">minggo</a>
</li>
<li class="facebox-user-list-item">
<img alt="@ricardoquesada" height="24" src="https://avatars2.githubu
sercontent.com/u/232330?v=3&amp;s=48" width="24" />
<a href="/ricardoquesada">ricardoquesada</a>
</li>
<li class="facebox-user-list-item">

<img alt="@dabingnn" height="24" src="https://avatars2.githubusercon


tent.com/u/4794489?v=3&amp;s=48" width="24" />
<a href="/dabingnn">dabingnn</a>
</li>
<li class="facebox-user-list-item">
<img alt="@super626" height="24" src="https://avatars2.githubusercon
tent.com/u/4159090?v=3&amp;s=48" width="24" />
<a href="/super626">super626</a>
</li>
<li class="facebox-user-list-item">
<img alt="@pandamicro" height="24" src="https://avatars0.githubuserc
ontent.com/u/632460?v=3&amp;s=48" width="24" />
<a href="/pandamicro">pandamicro</a>
</li>
<li class="facebox-user-list-item">
<img alt="@walzer" height="24" src="https://avatars2.githubuserconte
nt.com/u/345379?v=3&amp;s=48" width="24" />
<a href="/walzer">walzer</a>
</li>
<li class="facebox-user-list-item">
<img alt="@samuele3hu" height="24" src="https://avatars3.githubuserc
ontent.com/u/4231014?v=3&amp;s=48" width="24" />
<a href="/samuele3hu">samuele3hu</a>
</li>
<li class="facebox-user-list-item">
<img alt="@zilongshanren" height="24" src="https://avatars1.githubus
ercontent.com/u/785541?v=3&amp;s=48" width="24" />
<a href="/zilongshanren">zilongshanren</a>
</li>
<li class="facebox-user-list-item">
<img alt="@darkdukey" height="24" src="https://avatars1.githubuserco
ntent.com/u/371584?v=3&amp;s=48" width="24" />
<a href="/darkdukey">darkdukey</a>
</li>
<li class="facebox-user-list-item">
<img alt="@dumganhar" height="24" src="https://avatars1.githubuserco
ntent.com/u/493372?v=3&amp;s=48" width="24" />
<a href="/dumganhar">dumganhar</a>
</li>
<li class="facebox-user-list-item">
<img alt="@mannewalis" height="24" src="https://avatars2.githubuserc
ontent.com/u/4534274?v=3&amp;s=48" width="24" />
<a href="/mannewalis">mannewalis</a>
</li>
<li class="facebox-user-list-item">
<img alt="@slackmoehrle" height="24" src="https://avatars3.githubuse
rcontent.com/u/7491758?v=3&amp;s=48" width="24" />
<a href="/slackmoehrle">slackmoehrle</a>
</li>
<li class="facebox-user-list-item">
<img alt="@zakmandhro" height="24" src="https://avatars3.githubuserc
ontent.com/u/15746?v=3&amp;s=48" width="24" />
<a href="/zakmandhro">zakmandhro</a>
</li>
</ul>
</div>
</div>
<div class="file">
<div class="file-header">

<div class="file-actions">
<div class="btn-group">
<a href="/cocos2d/cocos2d-x/raw/v3/docs/RELEASE_NOTES.md" class="btn btn
-sm " id="raw-url">Raw</a>
<a href="/cocos2d/cocos2d-x/blame/v3/docs/RELEASE_NOTES.md" class="btn
btn-sm js-update-url-with-hash">Blame</a>
<a href="/cocos2d/cocos2d-x/commits/v3/docs/RELEASE_NOTES.md" class="btn
btn-sm " rel="nofollow">History</a>
</div>
<a class="octicon-btn tooltipped tooltipped-nw"
href="https://windows.github.com"
aria-label="Open this file in GitHub Desktop"
data-ga-click="Repository, open with desktop, type:windows">
<span class="octicon octicon-device-desktop"></span>
</a>
<button type="button" class="octicon-btn disabled tooltipped tooltippe
d-n" aria-label="You must be signed in to make or propose changes">
<span class="octicon octicon-pencil"></span>
</button>
<button type="button" class="octicon-btn octicon-btn-danger disabled too
ltipped tooltipped-n" aria-label="You must be signed in to make or propose chang
es">
<span class="octicon octicon-trashcan"></span>
</button>
</div>
<div class="file-info">
526 lines (388 sloc)
<span class="file-info-divider"></span>
21.126 kB
</div>
</div>
<div id="readme" class="blob instapaper_body">
<article class="markdown-body entry-content" itemprop="mainContentOfPage">

<p><strong>Table of Contents</strong> <em>generated with <a href="https://githu


b.com/thlorenz/doctoc">DocToc</a></em></p>
<ul>
<li><a href="#cocos2d-x-v38-release-notes">Cocos2d-x v3.8 Release Notes</a></li>
<li><a href="#misc-information">Misc Information</a></li>
<li><a href="#requirements">Requirements</a>
<ul>
<li><a href="#runtime-requirements">Runtime Requirements</a></li>
<li><a href="#compiler-requirements">Compiler Requirements</a></li>
<li><a href="#how-to-run-tests">How to run tests</a>
<ul>
<li><a
<li><a
<li><a
<li><a

href="#cocos-console">Cocos Console</a></li>
href="#mac-osx-&amp;-ios">Mac OSX &amp; iOS</a></li>
href="#android">Android</a></li>
href="#windows">Windows</a></li>

<li><a href="#linux">Linux</a></li>
</ul></li>
<li><a href="#how-to-start-a-new-game">How to start a new game</a></li>
</ul></li>
<li><a href="#v38">v3.8</a>
<ul>
<li><a href="#highlights-and-api-changes-of-v38">Highlights and API changes of v
3.8</a></li>
<li><a href="#download">Download</a></li>
<li><a href="#the-main-features-in-detail">The main features in detail:</a>
<ul>
<li><a href="#3d-module">3D Module</a></li>
<li><a href="#ui-system">UI System</a></li>
<li><a href="#audioengine">AudioEngine</a></li>
<li><a href="#fileutils">FileUtils</a></li>
<li><a href="#others">Others</a></li>
</ul></li>
<li><a href="#other-changes">Other changes</a></li>
<li><a href="#new-apis">New APIs</a></li>
</ul></li>
<li><a href="#the-next-step">The Next Step</a></li>
</ul>

<h1><a id="user-content-cocos2d-x-v38-release-notes" class="anchor" href="#cocos


2d-x-v38-release-notes" aria-hidden="true"><span class="octicon octicon-link"></
span></a>Cocos2d-x v3.8 Release Notes</h1>
<h1><a id="user-content-misc-information" class="anchor" href="#misc-information
" aria-hidden="true"><span class="octicon octicon-link"></span></a>Misc Informat
ion</h1>
<ul>
<li><a href="https://github.com/cocos2d/cocos2d-x/blob/v3/CHANGELOG">Full Change
log</a></li>
</ul>
<h1><a id="user-content-requirements" class="anchor" href="#requirements" aria-h
idden="true"><span class="octicon octicon-link"></span></a>Requirements</h1>
<h2><a id="user-content-runtime-requirements" class="anchor" href="#runtime-requ
irements" aria-hidden="true"><span class="octicon octicon-link"></span></a>Runti
me Requirements</h2>
<ul>
<li>Android 2.3 or newer</li>
<li>iOS 5.0 or newer</li>
<li>OS X 10.7 or newer</li>
<li>Windows 7 or newer</li>
<li>Windows Phone 8.1</li>
<li>Windows 10 UWP</li>
<li>Linux Ubuntu 14.04 or newer</li>
<li>Mordern browsers and IE 9+ (On mobile platforms, only iOS and Android 5 acti
vated WebGL support)</li>
</ul>
<h2><a id="user-content-compiler-requirements" class="anchor" href="#compiler-re

quirements" aria-hidden="true"><span class="octicon octicon-link"></span></a>Com


piler Requirements</h2>
<ul>
<li>Xcode 5.1 or newer for iOS or Mac</li>
<li>gcc 4.9 or newer for Linux</li>
<li>ndk-r10c for Android</li>
<li>Visual Studio 2013 or newer for Windows (win32)</li>
<li>Visual Studio 2013 update4 or newer for Windows 8.1 universal Apps</li>
<li>Visual Studio 2015 RC or newer and Windows 10.0 (build 10074 or higher) for
Windows 10.0 UWP Apps</li>
</ul>
<h2><a id="user-content-how-to-run-tests" class="anchor" href="#how-to-run-tests
" aria-hidden="true"><span class="octicon octicon-link"></span></a>How to run te
sts</h2>
<h3><a id="user-content-cocos-console" class="anchor" href="#cocos-console" aria
-hidden="true"><span class="octicon octicon-link"></span></a>Cocos Console</h3>
<p>You can use <a href="/cocos2d/cocos2d-x/blob/v3/docs/www.cocos2d-x.org/wiki/C
ocos2d-console">Cocos Console</a> command line tool to run the test cases on alm
ost all supported platforms.</p>
<p>In console application:</p>
<pre><code>// Enter cpp test folder
cd tests/cpp-tests
// Or enter js test folder
cd tests/js-tests
// Or enter lua test folder
cd tests/lua-tests
// Compile or run test case
cocos compile -p ios|mac|android|win32|win8_1|metro|web -m debug|release
cocos run -p ios|mac|android|win32|win8_1|metro|web -m debug|release
</code></pre>
<p>For example, if you want to run cpp test in release mode on Android, you can
use the following command:</p>
<pre><code>cocos run -p android -m release
</code></pre>
<h3><a id="user-content-mac-osx--ios" class="anchor" href="#mac-osx--ios" aria-h
idden="true"><span class="octicon octicon-link"></span></a>Mac OSX &amp; iOS</h3
>
<ul>
<li>Enter <code>cocos2d-x/build</code> folder, open <code>cocos2d_test.xcodeproj
</code></li>
<li>Select <code>cpp-tests</code>, <code>lua-tests</code>, <code>js-tests</code>
for <code>iOS</code> or <code>OS X</code> target in scheme toolbar</li>
<li>Click <code>run</code> button</li>
</ul>
<h3><a id="user-content-android" class="anchor" href="#android" aria-hidden="tru
e"><span class="octicon octicon-link"></span></a>Android</h3>
<p>You can run the samples...</p>

<p><strong>Using command line:</strong></p>


<pre><code>$ cd cocos2d-x
$ ./setup.py
$ cd build
$ ./android-build.py cpp-empty-test -p 10
$ adb install cocos2d-x/tests/cpp-empty-test/proj.android/bin/CppEmptyTest-debug
.apk
</code></pre>
<p>Then click item on Android device to run tests. Available value of <code>-p</
code> is the API level, cocos2d-x supports from level 10.</p>
<p><strong>Using Eclipse:</strong></p>
<pre><code>$ cd cocos2d-x
$ ./setup.py
$ cd build
$ ./android-build.py cpp-empty-test -p 10
</code></pre>
<p>Then</p>
<ul>
<li>Import cocos2d-x Android project into Eclipse, the path used to import is <c
ode>cocos/2d/platform/android</code></li>
<li>Import <code>cpp-empty-test</code> Android project into Eclipse, the path us
ed to import is <code>tests/cpp-empty-test/proj.android</code></li>
<li>Build <code>cpp-empty-test</code> Android project and run</li>
</ul>
<h3><a id="user-content-windows" class="anchor" href="#windows" aria-hidden="tru
e"><span class="octicon octicon-link"></span></a>Windows</h3>
<ul>
<li>For win32 project, enter <code>cocos2d-x/build</code>, and open <code>cocos2
d-win32.sln</code></li>
<li>For win 8.1 project, enter <code>cocos2d-x/build</code>, and open <code>coco
s2d-win8.1-universal.sln</code></li>
<li>For win 10 project, enter <code>cocos2d-x/build</code>, and open <code>cocos
2d-win10.sln</code></li>
<li>Select running target</li>
<li>Click run button</li>
</ul>
<h3><a id="user-content-linux" class="anchor" href="#linux" aria-hidden="true"><
span class="octicon octicon-link"></span></a>Linux</h3>
<pre><code>$ cd cocos2d-x/build
$ ./install-deps-linux.sh
$ cd ../..
</code></pre>
<p>Then</p>
<pre><code>$ mkdir build
$ cd build
$ cmake ../cocos2d-x
$ make -j4

</code></pre>
<p>Run</p>
<pre><code>$ cd bin/cpp-empty-test
$ ./cpp-empty-test
</code></pre>
<h2><a id="user-content-how-to-start-a-new-game" class="anchor" href="#how-to-st
art-a-new-game" aria-hidden="true"><span class="octicon octicon-link"></span></a
>How to start a new game</h2>
<p>Use Cocos Console to create a new game:</p>
<pre><code>cocos new -l cpp|js|lua MyNewGame
</code></pre>
<h1><a id="user-content-v38" class="anchor" href="#v38" aria-hidden="true"><span
class="octicon octicon-link"></span></a>v3.8</h1>
<h2><a id="user-content-highlights-and-api-changes-of-v38" class="anchor" href="
#highlights-and-api-changes-of-v38" aria-hidden="true"><span class="octicon octi
con-link"></span></a>Highlights and API changes of v3.8</h2>
<p>As promised, Cocos2d-x v3.8 have greatly improved the stability and API frien
dliness. On one side, we continue to improve 3D capacity by providing 3D physics
collider, skybox background brush and key frame event callback in Animate3D. On
another side, we have refined several core modules, including UI system, AudioE
ngine, FileUtils, Bindings Generator, etc.</p>
<p>Here is some highlighted improvments and API changes:</p>
<ol>
<li>3D Module
<ul>
<li>Added 3D physics collider</li>
<li>Supported setting camera background brushes with color/depth/skybox </li>
<li>Added key frame event Callback in Animate3D</li>
<li>Added light map support in Terrain</li>
</ul></li>
<li>UI System
<ul>
<li>Reimplemented and enhanced EditBox on Android</li>
<li>Added ScrollViewBar for displaying a scroll bar at the side of ScrollView (J
SB/Lua ready)</li>
<li>Added RadioButton widget (JSB/Lua ready)</li>
<li>Added HANYI FullType font support</li>
</ul></li>
<li>AudioEngine
<ul>
<li>AudioEngine supported audio preloading</li>
<li>Bound new AudioEngine in JSB</li>
</ul></li>
<li>FileUtils
<ul>
<li>Added a set of file writing APIs: writeStringToFile, writeDataToFile, writeV

alueMapToFile, writeValueVectorToFile</li>
</ul></li>
<li>Others
<ul>
<li>Improved Bindings Generator tool</li>
<li>Merged JSB test project into cocos2d test project</li>
<li>framework: Support generate prebuilt libs of engine with debug mode</li>
<li>console: Supported new portrait projects from templates</li>
</ul></li>
</ol>
<h2><a id="user-content-download" class="anchor" href="#download" aria-hidden="t
rue"><span class="octicon octicon-link"></span></a>Download</h2>
<p><a href="http://www.cocos2d-x.org/filedown/cocos2d-x-3.8-rc0.zip">Cocos2d-x v
3.8 rc0</a> including : C++, Lua &amp; JS</p>
<h2><a id="user-content-the-main-features-in-detail" class="anchor" href="#the-m
ain-features-in-detail" aria-hidden="true"><span class="octicon octicon-link"></
span></a>The main features in detail:</h2>
<h3><a id="user-content-3d-module" class="anchor" href="#3d-module" aria-hidden=
"true"><span class="octicon octicon-link"></span></a>3D Module</h3>
<ol>
<li><p>3D physics collider</p>
<p>3D physics collider is a new type of physics object. It can be used as both t
rigger and collider. </p>
<p>Trigger is a region defined by physics shapes and can get callback when othe
r physics objects enter or leave. Its usage is described in the following code:<
/p>
<div class="highlight highlight-cpp"><pre><span class="pl-c">//create a collider
using colliderDes</span>
Physics3DColliderDes colliderDes;
colliderDes.shape = Physics3DShape::createSphere(<span class="pl-c1">10</span>.<
span class="pl-c1">0f</span>);
colliderDes.isTrigger = <span class="pl-c1">true</span>;
<span class="pl-k">auto</span> collider = Physics3DCollider::create(&amp;collide
rDes);
<span class="pl-k">auto</span> component = Physics3DComponent::create(collider);
<span class="pl-k">auto</span> node = Node::create();
<span class="pl-en">addChild</span>(node);
node-&gt;<span class="pl-en">addComponent</span>(component);
collider-&gt;onTriggerEnter = [=](Physics3DObject *otherObject){
<span class="pl-c">//some body entering</span>
};
collider-&gt;onTriggerExit = [=](Physics3DObject *otherObject){
<span class="pl-c">//some one leaving</span>
}; </pre></div>
<p>Collider is similar to rigid body, it can give force to the rigid body that c
ollides with it. However, it is static and has better performance than rigid bod
y. It is proper to represent a static scene or objects using collider and dynami
c part using rigid body. You can set colliderDes.isTrigger to false when you wan
t to make it collider.</p></li>

<li><p>Camera background brushes</p>


<p>Different with previous versions, in v3.8, developers can choose to erase the
camera s background with 4 types of brush: none, color, depth, skybox. None brush m
eans do nothing; Color brush erases background using given color and depth; dept
h brush erases background using given depth; skybox brush erases background usin
g given skybox with 6 texture faces. The default brush is depth brush. The usage
of brushes is showing below:</p>
<div class="highlight highlight-cpp"><pre><span class="pl-c">// Using none brush
</span>
_camera-&gt;<span class="pl-en">setBackgroundBrush</span>(CameraBackgroundBrush:
:createNoneBrush());
<span class="pl-c">// Using depth brush, clear depth with 1.0</span>
_camera-&gt;<span class="pl-en">setBackgroundBrush</span>(CameraBackgroundBrush:
:createDepthBrush(<span class="pl-c1">1</span>.f));
<span class="pl-c">// Using color brush, clear color is (1,0,0,1), depth is 1</s
pan>
_camera-&gt;<span class="pl-en">setBackgroundBrush</span>(CameraBackgroundBrush:
:createColorBrush(Color4F(<span class="pl-c1">1</span>.f, <span class="pl-c1">0<
/span>.f, <span class="pl-c1">0</span>.f, <span class="pl-c1">1</span>.f), 1.f))
;
<span class="pl-c">// SkyBox brush</span>
_camera-&gt;<span class="pl-en">setBackgroundBrush</span>(CameraBackgroundBrush:
:createSkyboxBrush(<span class="pl-s"><span class="pl-pds">"</span>Sprite3DTest/
skybox/left.jpg<span class="pl-pds">"</span></span>, <span class="pl-s"><span cl
ass="pl-pds">"</span>Sprite3DTest/skybox/right.jpg<span class="pl-pds">"</span><
/span>,<span class="pl-s"><span class="pl-pds">"</span>Sprite3DTest/skybox/top.j
pg<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">
"</span>Sprite3DTest/skybox/bottom.jpg<span class="pl-pds">"</span></span>,<span
class="pl-s"><span class="pl-pds">"</span>Sprite3DTest/skybox/front.jpg<span cl
ass="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>Sp
rite3DTest/skybox/back.jpg<span class="pl-pds">"</span></span>));</pre></div></l
i>
<li><p>Animate3D key frame event callback</p>
<p>Similar to 2d AnimationFrame callback, frame event callback is supported in A
nimated3D now. It allows developer to set a callback to be invoked when specific
frame is played. Sample code:</p>
<div class="highlight highlight-cpp"><pre><span class="pl-k">auto</span> animati
on = Animation3D::create( XX.c3b );
<span class="pl-k">auto</span> animate = Animate3D::create(animation);
ValueMap valuemap0;<span class="pl-c">//you can add some user data here, it can
be used in the frame event callback</span>
<span class="pl-c">//add a callback when frame 275 is played</span>
animate-&gt;<span class="pl-en">setKeyFrameUserInfo</span>(<span class="pl-c1">2
75</span>, valuemap0);
<span class="pl-k">auto</span> listener = EventListenerCustom::create(Animate3DD
isplayedNotification, [&amp;](EventCustom* event)
{
<span class="pl-k">auto</span> info = (Animate3D::Animate3DDisplayedEventInf
o*)event-&gt;<span class="pl-c1">getUserData</span>();
<span class="pl-c">//frame 275 is played, you can add some code here</span>
<span class="pl-c1">cocos2d::log</span>( frame %d , info-&gt;frame);
});
<span class="pl-en">Director::getInstance</span>()-&gt;getEventDispatcher()-&gt;
addEventListenerWithFixedPriority(listener, -<span class="pl-c1">1</span>);</pre

></div></li>
<li><p>Light map support in Terrain</p>
<p>Terrain with light map is supported in v3.8, which means you can add a light
map texture baked from other tools to the terrain. The light map texture contain
s light info, so that the terrain seems to be lighted with several lights. Terra
in with light map can be created like this,</p>

<div class="highlight highlight-cpp"><pre><span class="pl-c">//create a normal t


errain as before</span>
Terrain::DetailMap <span class="pl-en">r</span>( TerrainTest/dirt.jpg ),g( TerrainTest/
2.jpg ),b( TerrainTest/road.jpg ),a( TerrainTest/GreenSkin.jpg );
Terrain::TerrainData <span class="pl-en">data</span>( TerrainTest/heightmap16.jpg , Ter
est/alphamap.png ,r,g,b,a);
_terrain = Terrain::create(data,Terrain::CrackFixedType::SKIRT);
_terrain-&gt;<span class="pl-en">setLODDistance</span>(<span class="pl-c1">3</sp
an>.<span class="pl-c1">2f</span>,<span class="pl-c1">6</span>.<span class="pl-c
1">4f</span>,<span class="pl-c1">9</span>.<span class="pl-c1">6f</span>);
_terrain-&gt;<span class="pl-en">setMaxDetailMapAmount</span>(<span class="pl-c1
">4</span>);
_terrain-&gt;<span class="pl-en">setDrawWire</span>(<span class="pl-c1">false</s
pan>);
<span class="pl-c">//set light map for the terrain</span>
_terrain-&gt;<span class="pl-en">setLightMap</span>( TerrainTest/Lightmap.png );</pre></
div></li>
</ol>
<h3><a id="user-content-ui-system" class="anchor" href="#ui-system" aria-hidden=
"true"><span class="octicon octicon-link"></span></a>UI System</h3>
<ol>
<li><p>Reimplemented EditBox</p>
<p>The usage of EditBox is the same as before. It is more likely a iOS version E
ditBox remake plus a few improvments. </p>
<p>Besides, it supports multi-line input now, you should set InputMode to <code>
ANY</code> to enable multi-line input.</p></li>
<li><p>ScrollViewBar</p>
<p>In the previous versions,
for the current location in
to the ScrollView. You could
n for auto hiding the scroll

the ScrollView doesn't


view. In v3.8, we have
tweak the the opacity,
bar. Speical thanks to

have any visual notification


added a scroll bar attached
color, width and the duratio
@neokim.</p>

<p>Usage:</p>
<div class="highlight highlight-cpp"><pre>ui::ScrollView* scrollView = ui::Scrol
lView::create();
scrollView-&gt;<span class="pl-en">setScrollBarWidth</span>(<span class="pl-c1">
4</span>);
scrollView-&gt;<span class="pl-en">setScrollBarPositionFromCorner</span>(Vec2(<s
pan class="pl-c1">2</span>, <span class="pl-c1">2</span>));
scrollView-&gt;<span class="pl-en">setScrollBarColor</span>(Color3B::WHITE);
<span class="pl-v">this</span>-&gt;<span class="pl-en">addChild</span>(scrollVie
w);</pre></div></li>
<li><p>RadioButton widget</p>
<p>RadioButton is a specific type of two-states button that is similar to CheckB
ox.</p>

<p>Additionally, it can be used together with RadioButtonGroup to interact with


other radio buttons.</p>
<p>There is only one RadioButton in checked state at the same time within a Radi
oButtonGroup. Special thanks to @neokim who have contributed the implementation
of this new widget.</p>
<p>Usage: </p>
<div class="highlight highlight-cpp"><pre><span class="pl-c">//create a RadioBut
tonGroup</span>
<span class="pl-k">auto</span> radioButtonGroup = RadioButtonGroup::create();
<span class="pl-v">this</span>-&gt;<span class="pl-en">addChild</span>(radioButt
onGroup);
<span class="pl-c">//create a RadioButton</span>
RadioButton* radioButton1 = RadioButton::create(<span class="pl-s"><span class="
pl-pds">"</span>radio_button_off.png<span class="pl-pds">"</span></span>, <span
class="pl-s"><span class="pl-pds">"</span>radio_button_on.png<span class="pl-pds
">"</span></span>);
radioButton1-&gt;<span class="pl-en">setPosition</span>(Vec2(<span class="pl-c1"
>100</span>,<span class="pl-c1">100</span>);
<span class="pl-v">this</span>-&gt;<span class="pl-en">addChild</span>(radioButt
on1);
<span class="pl-c">//create another RadioButton</span>
RadioButton* radioButton2 = RadioButton::create(<span class="pl-s"><span class="
pl-pds">"</span>radio_button_off.png<span class="pl-pds">"</span></span>, <span
class="pl-s"><span class="pl-pds">"</span>radio_button_on.png<span class="pl-pds
">"</span></span>);
radioButton2-&gt;<span class="pl-en">setPosition</span>(Vec2(<span class="pl-c1"
>100</span>,<span class="pl-c1">100</span>);
<span class="pl-v">this</span>-&gt;<span class="pl-en">addChild</span>(radioButt
on2);
<span class="pl-c">//add the RadioButtons into RadioButtonGroup</span>
radioButtonGroup-&gt;<span class="pl-en">addRadioButton</span>(radioButton1);
radioButtonGroup-&gt;<span class="pl-en">addRadioButton</span>(radioButton2);</p
re></div></li>
</ol>
<h3><a id="user-content-audioengine" class="anchor" href="#audioengine" aria-hid
den="true"><span class="octicon octicon-link"></span></a>AudioEngine</h3>
<ol>
<li><p>Audio preloading</p>
<p>AudioEngine now supports preload audio files before playing it. For some larg
e audio file, this feature can smooth the audio playing experience in user's gam
es. Sample code: </p>
<div class="highlight highlight-cpp"><pre><span class="pl-c">//Use it with callb
ack</span>
<span class="pl-en">AudioEngine::preload</span>(<span class="pl-s"><span class="
pl-pds">"</span>audio1.mp3<span class="pl-pds">"</span></span>,[](<span class="p
l-k">bool</span> isSuccess){
<span class="pl-c">//...</span>
});
<span class="pl-c">//Use it without callback</span>

<span class="pl-en">AudioEngine::preload</span>(<span class="pl-s"><span class="


pl-pds">"</span>audio2.mp3<span class="pl-pds">"</span></span>);</pre></div></li
>
<li><p>JSB new AudioEngine</p>
<p>In JSB, the default audio engine was SimpleAudioEngine (renamed to cc.audioEn
gine). It was the old audio engine provided since v2, and it have some inconveni
ence like delay time, no event support, etc. So we decided to provide new AudioE
ngine in JSB, the API remains the same as C++ API, and its usage can be found in
<a href="https://github.com/cocos2d/cocos2d-x/blob/v3/tests/js-tests/src/Native
Test/AudioEngineTest.js">its test case</a>.</p></li>
</ol>
<h3><a id="user-content-fileutils" class="anchor" href="#fileutils" aria-hidden=
"true"><span class="octicon octicon-link"></span></a>FileUtils</h3>
<ol>
<li><p>New file writing APIs</p>
<p>In v3.8, we have provided a bunch of file writing APIs in FileUtils. Now you
can use very simple APIs to write string, binary data, value map, and value vect
or into a file in user's file system. Each API is demonstrated in the following
sample code:</p>
<div class="highlight highlight-cpp"><pre>std::string writablePath = FileUtils::
getInstance()-&gt;<span class="pl-en">getWritablePath</span>();
<span class="pl-c">// FileUtils::writeStringToFile</span>
std::string writeDataStr = <span class="pl-s"><span class="pl-pds">"</span>the s
tring data will be write into a file<span class="pl-pds">"</span></span>;
std::string fullPath = writablePath + <span class="pl-s"><span class="pl-pds">"<
/span>writeStringTest.txt<span class="pl-pds">"</span></span>;
<span class="pl-en">FileUtils::getInstance</span>()-&gt;writeStringToFile(writeD
ataStr, fullPath.c_str());
<span class="pl-c">// FileUtils::writeDataToFile</span>
std::string writeDataStr = <span class="pl-s"><span class="pl-pds">"</span>the b
inary data will be write into a file<span class="pl-pds">"</span></span>;
Data writeData;
writeData.copy((<span class="pl-k">unsigned</span> <span class="pl-k">char</span
> *)writeDataStr.c_str(), writeDataStr.size());
std::string fullPath = writablePath + <span class="pl-s"><span class="pl-pds">"<
/span>writeDataTest.txt<span class="pl-pds">"</span></span>;
<span class="pl-en">FileUtils::getInstance</span>()-&gt;writeDataToFile(writeDat
a, fullPath.c_str()));
<span class="pl-c">// FileUtils::writeValueMapToFile</span>
std::string fullPath = writablePath + <span class="pl-s"><span class="pl-pds">"<
/span>testWriteValueMap.plist<span class="pl-pds">"</span></span>;
<span class="pl-en">FileUtils::getInstance</span>()-&gt;writeValueMapToFile(valu
eMap, fullPath.c_str());
<span class="pl-c">// FileUtils::writeValueVectorToFile</span>
std::string fullPath = writablePath + <span class="pl-s"><span class="pl-pds">"<
/span>testWriteValueVector.plist<span class="pl-pds">"</span></span>;
<span class="pl-en">FileUtils::getInstance</span>()-&gt;writeValueVectorToFile(v
alueVector, fullPath.c_str());</pre></div>
<p>Besides, you can retrieve the extension (in lower case) of a file with <code>
FileUtils::getFileExtension</code> API.</p></li>

</ol>
<h3><a id="user-content-others" class="anchor" href="#others" aria-hidden="true"
><span class="octicon octicon-link"></span></a>Others</h3>
<ol>
<li><p>Bindings Generator</p>
<p>In v3.8, we also improved our bindings generator tool, now it's even more pow
erful and be able to bind almost all kind of C++ APIs to script. Here is a detai
led list about improvement in bindings generator.</p>
<ul>
<li>Supported generating auto bindings code for public member variables</li>
<li>Avoid memory leak of non-Ref classes instance by controlling C++ object memo
ry with JS object</li>
<li>Made JSB classes automatically extendable if configured in classes_need_exte
nd list</li>
<li>Improved support for Lambda functions in JS auto bindings</li>
</ul></li>
<li><p>JSB test project</p>
<p>In v3.8, JSB test project have been merged into C++ test project. That means
cocos2d_js_tests.xcodeproj, cocos2d-js-win32.sln, cocos2d-js-win8.1-universal.sl
n have been removed. You can find jsb test targets in cocos2d_test.xcodeproj, co
cos2d-win32.sln and cocos2d-win8.1-universal.sln.</p></li>
<li><p>Compile custom framework in debug mode</p>
<p>From v3.7, you was able to generate customized Cocos Framework from cocos2d-x
. We have improved this ability in v3.8, now you will be able to generate frame
work in debug mode. Here is the some documentation about it:</p>
<ul>
<li><a href="http://www.cocos2d-x.org/wiki/Cocos_gen-libs">Framework compile doc
umentation</a>.</li>
<li><a href="http://www.cocos2d-x.org/docs/manual/studio/v4/chapter3/HowToCode/C
ustomizeFramework-v3.8/en">How to customize Cocos Framework</a></li>
<li><a href="http://www.cocos2d-x.org/wiki/Cocos_gen-simulator">How to generate
Cocos Simulator</a></li>
</ul></li>
<li><p>Portrait projects support</p>
<p>From v3.8, you can generate portrait oriented games with Cocos Console:</p>
<pre><code>cocos new -l cpp|lua|js --portrait MyPortraitGame
</code></pre>
<p>More details can be found in <a href="http://www.cocos2d-x.org/wiki/Cocos_new
">Cocos new command</a> and <a href="http://www.cocos2d-x.org/wiki/Cocos2d-conso
le">Cocos Console general documentation</a></p></li>
</ol>
<h2><a id="user-content-other-changes" class="anchor" href="#other-changes" aria
-hidden="true"><span class="octicon octicon-link"></span></a>Other changes</h2>
<ul>
<li>[NEW]
<li>[NEW]
<li>[NEW]
<li>[NEW]

UI:
UI:
UI:
UI:

Enhanced ScrollView with easing out scrolling</li>


Added PageView vertical scroll support</li>
Added PageView::JumpToPage API</li>
Added a setter for line width in DrawNode</li>

<li>[NEW]
Action: Permitted setting bitwise flags to action</li>
<li>[NEW]
Animate: Added Animate's getCurrentFrameIndex function</li>
<li>[NEW]
FileUtils: Added FileUtils::getFileExtension for getting fil
e's extension name</li>
<li>[NEW]
Device: Added vibrate support to enable vibration for a dura
tion</li>
<li>[NEW]
UserDefault: Supported removing key pairs from UserDefault</
li>
<li>[NEW]
spine: Supported Spine runtime 2.3 (Both native and web engi
ne)</li>
<li>[NEW]
console: Moved the framework-compile tools into cocos2d-cons
ole</li>
<li><p>[NEW]
network: Upgrade SocketIO support to v1.x</p></li>
<li><p>[REFINE]
3D: Supported composite 2D/3D scene by moving UI and came
ra far away</p></li>
<li>[REFINE]
3D: Improved Particle3D performance</li>
<li>[REFINE]
Label: Supported adding child nodes in Label</li>
<li>[REFINE]
UI: Improved Slider's precision</li>
<li>[REFINE]
UI: Refined scroll event dispatching for ScrollView</li>
<li>[REFINE]
UI: Improved event handling in TextField</li>
<li>[REFINE]
Label: Supported auto batch with bitmap font or char map</li
>
<li>[REFINE]
studio: Added BlendFrame support to Skeleton Animation</li>
<li>[REFINE]
studio: Enabled blendfunc cascade to the skin of BoneNode</l
i>
<li>[REFINE]
utils: Made utils::captureScreen saving file in another thre
ad to improve the performance</li>
<li>[REFINE]
3rd party: Update Nibiru SDK to 2.6</li>
<li>[REFINE]
JS: Supported new construction for 3d classes in JS</li>
<li>[REFINE]
JS: Refine performance for Cocos Studio JSON parser for 2.x<
/li>
<li>[REFINE]
web: Avoid re-bake the content when the parent node's positi
on get changed</li>
<li>[REFINE]
web: Solved repeat loading same resource issue when parsing
cocos studio project</li>
<li>[REFINE]
web: Optimized resources automatic loading in JSON parser</l
i>
<li>[REFINE]
web: Avoid cc.loader resource loading being terminated while
encounter errors</li>
<li>[REFINE]
web: Suspended the video player when the browser is minimize
d</li>
</ul>
<p>You can also take a look at <a href="https://github.com/cocos2d/cocos2d-x/blo
b/v3/CHANGELOG">the full changelog</a></p>
<h2><a id="user-content-new-apis" class="anchor" href="#new-apis" aria-hidden="t
rue"><span class="octicon octicon-link"></span></a>New APIs</h2>
<p>In the above changes, there are some new APIs introduced in v3.8, they are li
sted here:</p>
<ol>
<li><p>PageView vertical scroll support</p>
<pre><code>PageView* pageView = PageView::create();
pageView-&gt;setContentSize(Size(240.0f, 130.0f));
pageView-&gt;setDirection(ui::PageView::Direction::VERTICAL);
</code></pre></li>
<li><p>Setter for line width in DrawNode</p>

<pre><code>DrawNode* drawNode = DrawNode::create();


drawNode-&gt;setLineWidth(5.0f);
</code></pre></li>
<li><p>Bitwise flags of action</p>
<pre><code>enum Flags {
FRAME = 1,
COLOR = 2,
OPACITY = 4,
POSITION = 8,
SCALE = 16,
ROTATION = 32,
SKEW = 64
};
auto action = RepeatForever::create(Sequence::create(FadeTo::create( 0.1f, 155),
TintTo::create(0.1f, 255,0,0), nullptr));
// Since opacity and color will be modified in this action, it can be flagged as
opacity and color action
action-&gt;setFlags(Flags::OPACITY|Flags::COLOR);
auto action2 = RepeatForever::create(Sequence::create(MoveBy::create(0.3f, Vec2(
5, 0)), nullptr));
// Since position will be modified in this action, it can be flagged as position
action
action-&gt;setFlags(Flags::POSITION);
</code></pre></li>
<li><p>Get current frame index in animation</p>
<pre><code>auto action = RepeatForever::create( Animate::create(animation);
sprite-&gt;runAction(action);
sprite-&gt;scheduleOnce([=](float){
int index = action-&gt;getCurrentFrameIndex();
// ...
}, 1.0f, "get-current-frame");
</code></pre></li>
<li><p>File's extension name getter</p>
<pre><code>std::string extension = FileUtils::getInstance()-&gt;getFileExtension
("grossini.png");
</code></pre></li>
<li><p>Vibration support</p>
<pre><code>// Virate the device for 0.5 second
Device::vibrate(0.5f);
</code></pre></li>
<li><p>Remove key pairs from UserDefault</p>
<pre><code>// Remove value referenced by "some key"
UserDefault::getInstance()-&gt;deleteValueForKey("some key");
</code></pre></li>
</ol>
<h1><a id="user-content-the-next-step" class="anchor" href="#the-next-step" aria
-hidden="true"><span class="octicon octicon-link"></span></a>The Next Step</h1>
<p>In v3.9, we will continue to improve our framework, several important tasks a
re: </p>

<ol>
<li>We are about to provide a script based component system.</li>
<li>Improve ScrollView, ListView performance in both native and web engine.</li>
<li>Improve 2D particle system performance.</li>
<li>Improve web engine renderer logic and performance.</li>
<li>Support Action inheritance in JSB.</li>
<li>Remove libcurl dependency on iOS and Android.</li>
</ol>
<p><a href="https://github.com/cocos2d/cocos2d-x/milestones/v3.9">The v3.9 miles
tone tasks</a> (It's still being reviewing and will be updated)</p>
</article>
</div>
</div>
<a href="#jump-to-line" rel="facebox[.linejump]" data-hotkey="l" style="display:
none">Jump to Line</a>
<div id="jump-to-line" style="display:none">
<!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="" class="
js-jump-to-line-form" method="get"><div style="margin:0;padding:0;display:inline
"><input name="utf8" type="hidden" value="&#x2713;" /></div>
<input class="linejump-input js-jump-to-line-field" type="text" placeholder=
"Jump to line&hellip;" aria-label="Jump to line" autofocus>
<button type="submit" class="btn">Go</button>
</form></div>
</div>
</div>
<div class="modal-backdrop"></div>
</div>
</div>
</div><!-- /.wrapper -->
<div class="container">
<div class="site-footer" role="contentinfo">
<ul class="site-footer-links right">
<li><a href="https://status.github.com/" data-ga-click="Footer, go to st
atus, text:status">Status</a></li>
<li><a href="https://developer.github.com" data-ga-click="Footer, go to ap
i, text:api">API</a></li>
<li><a href="https://training.github.com" data-ga-click="Footer, go to tra
ining, text:training">Training</a></li>
<li><a href="https://shop.github.com" data-ga-click="Footer, go to shop, t
ext:shop">Shop</a></li>
<li><a href="https://github.com/blog" data-ga-click="Footer, go to blog,
text:blog">Blog</a></li>
<li><a href="https://github.com/about" data-ga-click="Footer, go to abou
t, text:about">About</a></li>
<li><a href="https://github.com/pricing" data-ga-click="Footer, go to pr
icing, text:pricing">Pricing</a></li>
</ul>
<a href="https://github.com" aria-label="Homepage">
<span class="mega-octicon octicon-mark-github" title="GitHub"></span>
</a>

<ul class="site-footer-links">
<li>&copy; 2015 <span title="0.05100s from github-fe127-cp1-prd.iad.github
.net">GitHub</span>, Inc.</li>
<li><a href="https://github.com/site/terms" data-ga-click="Footer, go to
terms, text:terms">Terms</a></li>
<li><a href="https://github.com/site/privacy" data-ga-click="Footer, go
to privacy, text:privacy">Privacy</a></li>
<li><a href="https://github.com/security" data-ga-click="Footer, go to s
ecurity, text:security">Security</a></li>
<li><a href="https://github.com/contact" data-ga-click="Footer, go to co
ntact, text:contact">Contact</a></li>
<li><a href="https://help.github.com" data-ga-click="Footer, go to help,
text:help">Help</a></li>
</ul>
</div>
</div>
<div class="fullscreen-overlay js-fullscreen-overlay" id="fullscreen_overlay
">
<div class="fullscreen-container js-suggester-container">
<div class="textarea-wrap">
<textarea name="fullscreen-contents" id="fullscreen-contents" class="fulls
creen-contents js-fullscreen-contents" placeholder="" aria-label=""></textarea>
<div class="suggester-container">
<div class="suggester fullscreen-suggester js-suggester js-navigation-co
ntainer"></div>
</div>
</div>
</div>
<div class="fullscreen-sidebar">
<a href="#" class="exit-fullscreen js-exit-fullscreen tooltipped tooltippedw" aria-label="Exit Zen Mode">
<span class="mega-octicon octicon-screen-normal"></span>
</a>
<a href="#" class="theme-switcher js-theme-switcher tooltipped tooltipped-w"
aria-label="Switch themes">
<span class="octicon octicon-color-mode"></span>
</a>
</div>
</div>

<div id="ajax-error-message" class="flash flash-error">


<span class="octicon octicon-alert"></span>
<a href="#" class="octicon octicon-x flash-close js-ajax-error-dismiss" ar
ia-label="Dismiss error"></a>
Something went wrong with that request. Please try again.
</div>
<script crossorigin="anonymous" src="https://assets-cdn.github.com/assets/
frameworks-2317046bbda4f1c516c598a8b2c63343669922648e6987a1ed4f909dce1fb689.js">
</script>
<script async="async" crossorigin="anonymous" src="https://assets-cdn.gith
ub.com/assets/github/index-f8dc41a3c9751e5dc0a90925d8355a1df17d95e0cff79e1993886

8ba28fccdfb.js"></script>
<div class="js-stale-session-flash stale-session-flash flash flash-warn flas
h-banner hidden">
<span class="octicon octicon-alert"></span>
<span class="signed-in-tab-flash">You signed in with another tab or window
. <a href="">Reload</a> to refresh your session.</span>
<span class="signed-out-tab-flash">You signed out in another tab or window
. <a href="">Reload</a> to refresh your session.</span>
</div>
</body>
</html>

S-ar putea să vă placă și