Tải bản đầy đủ (.pdf) (84 trang)

Nghiên cứu engine đa nền tảng Cocos2D-X và phát triển ứng dụng luyện thi Toeic trên thiết bị Smart phone.PDF

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1021.23 KB, 84 trang )

CHUDNG 1. GIOI THICU DV AN
1.1. VII net vi smartphone tai Viet Nam
Cac chuyen gia cola Google cho rang smartphone da trey thanh mOt plan Icheong the
thieu trong cuOc song vi hien tai ding dam ra mOt "cuOc cach mpg smartphone". Theo
khao sat cola Google, so ngubi dimg smartphone di chiem den 20% din s6 COB Viet Nam 6
thbi diem Ichio sat, tic quf I nam 2013. Nghien dm cola Google cho they 70% s6 ngubi

duqc hOi tra lbi h9 si dung smartphone de truy cop Internet, 50% se kung bao gib reri khOi
nhi mi khong ceo smartphone trong tay. Dieu thy cho thay neu cac doanh nghiep hitt cic
sir dung smartphone thich mOt phan cot lOi trong chi& Itrqc cis minh thi sa ket n6i vi tiep
cAn duqc vii ngubi tieu ding mei. Simon Kahn, Tting giam d6c Marketing Google chau A
Thii Binh Ducmg (Chief Marketing Officer, Asia Pacific) cho bi& smartphone di thay d6i
hanh vi ngubi tieu dung. Theo khao sat cis Google, ceo den 92% ngubi dimg smartphone


ce the lim nhieu viec cling lice Tai Dien din nap thi Truyen thong CMO Viet Nam nam
2013, doanh nhan cong nghe Bryan Pelz di khimg djnh, sox djch chuyen cia deri sting xi hOi
vio Internet vi Mobile II tat yen.
Nam 2014, ngubi Viet Nam bit du e6 nhing buoy tien hon trong cong nghe khi tS,
, le din se sir dung smartphone toi Viet Nam di lesirdungmatpho &gIce.TS
tang len Iron 36%, gin gap dei so yea 20% cilia nam 2013, trong de gi6i tre to 16-24 tu6i
chiem hon phan nth (58%), nhOm tu6i trung nien 35-44 tang 14% so v6i nam ngoitili 17%.
Trong khi tSr le ding may tinh bin (desktop PC) chi tang gin 5%, (fat 44% din so. Una
theo bing khao sat, Viet Nam dimg thit 2 tong khu Arc Thing Nam A ve t6c dO dip con
tilling cong nghe mOi theo thj truing, chi sau Philippines. Trong do, 59% ngubi Viet Nam
chi ra ring cong nghe mOi mang den nhieu co hOi cho h9 hon rui ro. Nhing con so tang
throng lac quan nay den to nhieu yeu t6, trong d6 chi yeu li thai dO lac quan, thich nghi

nhanh vii cong nghe mai vi dO phi rung cola smartphone. Ben earth de gia thrInh
smartphone new cang re. Phan khuc smartphone binh din hien rat da clang, gii 2-3 trieu
&gig, um cc hOi cho m9i ngubi, bao gem h9c sinh sinh vier, ser hitu mOt chiec dien thotti
thong minh. tang mang t4i Viet Nam cG dO phi rOng [dip ngubi ding len inimg de ding.

a

Dien Din Hiep HOi Mobile Marketing toi Viet Nam 2014 ngiy 30 thing 10 nam 2014 di
dua ra nhUng con s6 thong k8 An urgng vi smartphone tai Viet Nam. Trong do: Viet Nam
li thi truing smartphone c6 tec go phat thin I6n thir 2 Chau A vi deng thbi ding la thj
truing cry mirc dO ph6 bien smartphone I6n thin 2 6 khu we Bong Nam A;
3



Hinh 1.1: Mc do phat trien thi Irwin smartphone tai Viet Nam

Vietnam is the second most populated
smartphone market in SA 34.3

tam

a 0 alb

.sae'


n e.

Afikvst..

Hinh 1.2: 7:9 le sti dung smartphone plan theo khu virc thanh thi vet ?Ong then tai Viet
Nam

48.6% smartphone dimg hg dieu hi nh Android vi 19.7% dung hg dieu hanh IOS.

4



Hinh 1.3: Ty 1e smartphone phiin

he cli& hanh tai Viet Nam

O mOi lira tu6i, tS/ I sir dung smartphone co str khac biet Ian. Trong do cao nhAt la
nh6m tu6i tir 15 den 29 tu6i. Co 56,5% ngtrai trong dO Mei 20 — 24 tu6i dang so hftu
smartphone.

Ty 'e se hut Smartphone trong moi Kra
to Viet Nam


tad

60.0
50.0
40.0
30.0
20.0
10.0
6.9
0.0
15-19


20-24

25-29

30-34

35-39

40-44

45-49


50-54

Hinh 1.4: TS, le so hail Smartphone o mai hia tudi tai Viet Nam
Dan vi:
Qua nhcmg con s6 va th6ng ke tren day, co the thAy thi traang smartphone tai Viet
Nam dang co stir tang truemg an Ming. Nh(tng ngutri tre tu6i chiem
cao nhat trong s6
5


nhOng ngtrai se hau smartphone. Day cOng la Whom dal ttrqng c6 nhu c.Au 16n nhat lie hqc
t#p va tich lily Icien that phoc vo cho cong viec, cho cic nhu au a nhan. Doa tren nhttng

ca se d6, hoan toan c,6 tient &Mg de phit then de ling dung hqc top tren smartphone.
1.2. Tim quan trong cost TOEIC
Trong nOi dung Inc tieng Anh ce the tom chia lim hai loci• Anh ngft hqc thu$t (dung
de xin hoc bang, du hqc...) va Anh net giao tikp (sir dung thtrimg ngay, phoc vo cho nhu
au tong viec...). NM ming hqc thutt la din truing cim hai loci chimg chi TOEFL (colt
Vien Kiem djnh giio doc Hoa Kjr) va IELTS (cart DH Cambridge — Anh), thi ming giao
tiep chimg chi TOEIC dang dOc chiem so cOng thin cim tin throng sir (long lao dung the
gi6i.
TOEIC (cOng cart Vien Kiem djnh giio doc Hoa K5' cep) kh8ng yeu ciu qui cao lie
cic kien thin, ma chi can ngutri hqc dat duce muc dick sir dung tiling Anh. TOEIC da tra
thanh *it trong nhttng chuong trinh kiem tra Anh net quick to duqc nhieu nguai biet din.
n

Han 70 tong cOng ty, c8ng ty, cic to chirc trong nuOc va nuOc ngoiti hoot &Ong t i Viet
Nam di sir clung TOEIC nhu mOt lieu chart bat buOc trong cOng tic lieu chain hea vi
tuyen dung cin 1)0 nhu: Samsung, LG, FPT, Nein hang Sii Gen Thuong tin, Vietnam
Airlines... Rieng trong linh voc cloy nghe, TOEIC Viet Nam phai hqp vai Ttmg coc Dor
nghe )(ay dtmg thi diem lieu chain ye trinh dO sfr dung tieng Anh cho sinh vien nit nghiep
hai nginh tin hoc va then dr 6 twang cao ding Icy thurit. Ngorli ra, mOt do an turn to gifts
TOEIC Viet Nam phei hqp voi BO GD-DT vi Tang clic Du ljch nhim dinh gii vi xly
thing tieu chuin trinh dO sir dung tieng Anh thong qua chuong trinh chuttn TOEIC cling
ducat trien khai.
Diem TOEIC duqc tit ca cic ca quan nhi nuac, t6 chin queic te, doanh nghiep nuOc
ngoai va cic Sp doin kinh to curt Viet Nam Gang nh#n nhim &nit gii trinh do ding Anh
cim than so vai to cich la mOt thtrac do chain va ding tin coy nhat.

1.3. GM thiln ling dung luyin thi TOEIC train smartphone
1.3.1. Gidi Mien an dyng

"Luyen thi TOEIC tren smartphone" II ling dung luyen thi ding Anh tren dies thooi
c6 bao g6m day dit cic bai on tip vi de thi min theo ciu trac mOt de thi TOEIC tieu chat
Ong cluing duqc thiet Ice veri lieu chi nho gcm, sir dung.

a

Ng clung duqc 18p trinh bang engine Cocos2d-X, li 1 engine ha trq lip trinh Game
da nen tang: Mobile (I05, ANDROID, Blackberry, TIZEN, WP) Window, MacOS,
HTML5... la 1 engine duqc dinh gii khi moth, da phit triers nhieu Game nam TOP cart

6


Appstore, CHPlay. Uu diem chi tiet ciut Cocos2d-X duqc trinh bay tai chuung 2 tea Ithea
14n.
Cocos2d-X la m0 engine mien phi, von Cocos2d-X tic gia c6 the )(ay dyng mOt img
dyng luyen thi TOEIC WA uu diem vuqt trOi:
—Dung lucmg thip (thip nhit c6 the la 1.5MB), khong drai hOi phien ban phin mem
di dOng qua cao. Dieu nay se giep ngubi sir dyng c6 the cii at ung dyng ma thong
can qua lo ling ve hi) nhe hay du hinh cea dien thoai.
—Ong dung chay da nen tang, vier code mOt lin, chay duqc cho nhieu h'e thin khic
nhau. NM de, tac gia till kiem &gm thin gian, chi phi va tang hien qua sir dyng vi

twang thich von nhieu he dieu hanh khic nhau, c6 the chay tren nhieu ding
smartphone.
Tir d6, tac gia mong muOn se dui ra sin phim luyen thi TOEIC tat nhit tren
smartphone v6i chi phi va nguOn lyc thip nhit.
L3.2. Lai tech cda sing dyng luyen thi TOEIC trim smartphone
Huang dao to thyc dyng nhu TOEIC c6 thin gian tnmg birth de c6 the thi lay chimg
chi la khoitng 18 twin cho den 2 nilm, phi thuOc vac fling lyc ngubi lye, mac diem muc
tieu vi 300400 diem di duqc xem la "pass — dat" cho den 990 diem. Ong dung luyen thi
TOEIC tren smartphone se la Ong cu hem fch cho ngubi hoc vi nheng uu diem sau day:
—De se' dung, tiet kiem then gian va chi phi
Vi qua tranh luyen thi duqc thyc hien qua dien thoai, nen tiet kiem duqc nhUng khans;
thin gian ma ngubi hqc phii lieu ten khi di chuyen den trung Ulm va di vi. Nhiiu ngubi can

mat nhieu thin gian hcm de di den cac trtmg tam nim 6 xa. Nguiri sir dung c6 the chit dOng
sip xep hoc tranh the thing khoang thei gian ninh n6i trong ngiy de hqc t$p. Ong dung
duqc cii chit tren dien thoai, lien dung va kherng did Uri qua nhieu ve mot khong gian vi
thin gian deti von ngubi sir dyng.
—Tinh ling dung va linh hot
Luyen thi TOEIC chi bao gem do ky Wing nghe hien vi dqc hieu, rat phi hqp tan
khai tren smartphone. Thyc to ngubi hoe thubng copy cite bai nghe Tieng Anh vac dien
thoai de c6 the sir dung 6 mqi ncri, thong phi thuOc vito may tinh hay internet, sach v6...
Vin (mg dyng luyen thi TOEIC, ngubi hqc holm town cit the chi can sir dung chiic dien
thogi nhu mOt giao tranh he top hien qua.

7



Ngoii ra, tinh img dung vi linh host con the hien 6 mi diem khi nguiri dung co the
Wen thi ma khong can mang quit nhieu Si lieu theo nguei. CM vii chiec dien thoai nhe
gqn, ngtrei sir dung co the bit dill bid hgc 6 mgi dja diem vi thin gian, khong bj phu thuOc
theo met then khoa bieu cg the. Tinh linh hog con the hien 6 fir djnh hues% vi fir dieu
chinh.
— Txr djnh hueng vi dieu chinh
Trong qui trinh luyen tip, nimbi dung co the fir djnh huUng cho minh, Ming cich chgn
khea bee ph4 hqp nhit d6i viii trinh dO, so thich, mix tieu cua bin than, dieu ray khic phuc
dugc cic han the khi luyen thi 6 the lap hgc vi thing tam khi trinh dO hgc vien khong ding
deu. Nprei hgc cOng chi dOng fir dieu chinh nhjp dieu khea hgc cho minh, ngbia li co the

hgc chin hay nhanh do thin gian minh ty sip xep hay do khi thing tiep thu Iden thirc ala
mirth.

8


CHUCING 2. COCOS2D-X ENGINE
2.1. Gild thilu ve Cocos2d-X
2.1.1. Sir ra 141 cda Cocos2d-X vd lick sir ph& trim

Thing 2 nlim 2008, tai thj tan "Los Cocos" gin Cordoba ar Argentina, Ricardo
Quesada, met nha phit trien trO chai da tao ra met ding cu tr6 chai 2D cong vei nhom coa

mInh. Ho at ten cho no la "Los Cocos". MOt thing sau, thorn phit hanh phien ban 0.1 va
dOi ten thanh "Cocos2d".
Thing 11 Sim 2010, mot nhOm nha phit trien tfr Trung ()MSc la Walzer Wang,
Minggo Zhang, James Chen va cOng su tfr ChuKong Technologies da phit trien Cocos2dX din teen Cocos2d. ChuKong Technologies la tong ty hang diu ve nen tang, giai tri di
dOng, vOi dei ngii hon 800 nhan vien, ngculi tru sir chinh tai Bic Kinh, Chu Kong cling c6
van pheng tai Menlo Park (USA), Tokyo (Japan), Seoul (Korea), va Taipei (Taiwan).
Cocos2d-X la mot cong cu ma nguen m6 theo gay pile') MIT. MIT la loci gay ph6p
'
sir dung cho ctic phtm mem, cic ma ngu6n mer dirqc phit trien dtra tenmet loci gitty phop
co ngtilin &tic tai Vien Ding nghe Massachusetts (Mn').

Minh 2.1: Mo hinh phdt trier Cocos2d X

-

9


Cocos2d-X xuit xir to g6c li Cocos2d, engine game 2D viet tren Python, tuy nhien
da duqc vOn chuyen sang rat nhilu neon nip khk, thu het nhieu ngtrai sir dung tren the
gi6i, nhieu nhit li ban Cocos2d-X danh cho iOS. Cocos2d-X 11 ban port duqc vier bing
C-FE, thay vi Objective-C nhu bin g6c, nut de ma nguei lop trinh c6 the xay dung game
tren nhieu he may chi bling 1 lin code, cic he may bao gam Windows, Linux, Mac, iOS va
Android. Cocos2d-X di chiem duqc su ling hO 16n trong giai game developer to khi phat
hanh. Cocos2d-X c6 the ducrc sir dung di xay dung the Ire chai, ling dung vi c.ac chuang

trinh tuang tic dtra tren nen tang giao dies khic nhau. Cocos2d-X la engine duqc se dung
rung rai tren town the gi6i, v6i hart 400.000 nhi phit trien, bao gam cit cac nhit phat tan
ctia the tr6 chai ding Top 10 ten the store 16n Whit the giai nhu AppStore, GooglePlay
Store.
Ngay nay, nhieu nguai Cocos2d-X trong cac tr6 chcri thong tri bang xep hang Top
doanh thu eta AppStore vi Google Play, &lc biet la 6 Trung Quec, Han Quec vi Nhot Bin.
Ck Icy su to Chukong, Google, Microsoft, ARM, Intel vi BlackBerry dang tich cue them
gia xay dung along ding Cocos2d-X Nhitng ten Si 16n nhu Zynga, Wooga, Glu, IGG, Big
Fish Games, Fingersoft, Gamevil, GREE, DeNA, Konami, CT E & M, MIN, LINE, Square
Enix,... a sir dung Cocos2d-X de phat trien tr6 chai cult hq.
Tom tit Lich sty ph& thin cim Cocos2d-X:
—Nam 2010: Thing 7 nam 2010, du an Cocos2d-X duqc din ra vi den thing 11

duqc phit birth phien ban 0.7.0.
—Nam 2011:
+ Thing 1 nam 2011, Cocos2d-X phien bin chinh thirc du tien duqc ph& hanh.
+ Thing 2 nam 2011, tro chai FishingJoy duqc ported tren Android.
+ Thing 10 nam 2011, thiet lop plan mem Coco, du to bOi Chukong.
+ Thing 11 nam 2011, chiem vi tri thin 1 va thir 2 tr6 chai Appstore.
—Nam 2012:
+ Thing 3 nam 2012, ra mit Cocos2d-html5
+ Thing 5 nam 2012, phat hanh v2.0 Cocos2d-X
+ Than 6 nam 2012, Ichai dung Cocos Studio
+ Than 9 nam 2012, Cocos2d-X chiem 6 trong se 10 tr6 chai hang dAu co doanh
thu cao nhAt a Trung Quec

10


—Nim 2013:
+ Thing 1 nim 2013, Cocos2d-X chiem 7 trong s610 tr6 chai hang dau c6 doanh
thu cao !that Trung Quec, 5 vi tri himg diu cho ci iPhone vi Wad.
+ Thin 3 ram 2013, sich Cocos2d-X duct mat bin.
+ Thing 4 nim 2013, game c6 doanh thu cao nhat tai Him Queic Google Play Store
phit trier tir Cocos2d-X.
+ Thing 10 nim 2013, tic gii cua Cocos2d-iphone gia nhop Chukong.
+ Thing 11 nim 2013, Cocos2d-X chiem 9 tren 10 vi tri hang diu trip chai ce
doanh thu cao nit& tai Hin Qua& Google Play Store.

—Nim 2014:
+ Thing 3 nam 2014, Cocos2d-X chi& 4 trong 11 vi tri hang du. trong de trip
chai c6 doanh thu cao nhit WeChat

2.1.2. Tgi sao igi ding Cocos2d-X
2.1.2.1. Liu diim cua Cocos2d-X
—Cocos2d-X la mOt engine da nen tang
Day li mOt lqi the rat len cos Cocos2d-X khi mi game lim ra az.) the chay tren cic
nen Ling !chic nhau nhu Linux, Mac, Windows 8, Android, iOS, Windows Phone 8,
BlackBerry hay ci HTML5. biet, t$p trung vio ba nen tang di dOng ph6 bien da to
nen sat hap din cua engine nay khi ma thi phin tic thiet bi di dOng dan dang chiem linh
may tinh ci nhan.

Hien tai, Cocos2d-X ha trq tic nhi phit trien game tren tic nem nga nhu C++,
Javascript vi Lua tren tic Ong cu 1#p trinh ph6 Bien vi dy nhu Xcode, Visual Studio, ho#c
Eclipse. Deng thbi no cho phip tic nhi phit tan game tren tic he dieu hanh khic nhau
vi chuyin sang tic nen tang khic khOng may kW. khan. Chinh viec h6 trq the nen ting cho
PC phuc At qui trinh xiy citing game, vsl khi Wing build cho 3 nen ling di dOng ph6 bien
'that dA to nen sot hip din c6a Cocos2d-X.
—Chi tiet cic nen tin h6 trq:
+ iOS 5.0 trh len cho tic trip chai iPhone / iPad

+ Android 2.3 tra len cho tic fro chai Android
+ Windows Phone 8 fro len cho tic fro chili WP
+ OS X v10.6 tra len cho tic trip chili Mac

11


+ Windows 7 tro len cho cac tr6 chai may tinh Windows
—La met enine ma nguan ma
Cocos2d-X hoan toan open source, ngutri sfr ding co the lam bit IcY dieu gi yeti code
tha no, vi cling co the deng gop vao framework neu de giup Cocos2d-X phat trien hem.
Cocos2d-X dugc xay dung hoan town bai cong deng phat then game, hoan Wan mien phi,
luen luon duce chinh sfra, phat trien, tom be ma nguan caa Cocos2d-X c6 the tai tren trang
chu cita Cocos2d-X.
—Cocos2d-X la met engine c6 hieu suit cao
Vai nen tang chit yeu huang den cac thiet bj di deng, day la yeu t6 hang dan ma met

Engine di deng can phai dam boo, vi thiet bj di dOng co rat nhieu can hinh khac nhau. Duce
xay dung tren nen tang d6 hoa OpenGL va ngon ngft lap trinh Javascript, Lua, nen
Cocos2d-X co hieu suit kha cao, chay dirge tren ca nhCmg thiet bj ciu hinh rat thap cua
Android. Dac biet dung lugng khi xuit file cai dot cho cac nen tang kha gen nhg so veri mat
bang chung cua cac Engine khk. Tren the nen tang di deng, Cocos2d-X td r3 lqi the cult
minh von de ttrcmg thich cao cho: Android, iOs, Windows Phone 8. Val cac nen tang nay,
hoa don trung birth, chay tren ciu hinh di dOng tam
game, ling dung yeti khoi hrgng
trung hien nay, c6 the dot dirge 60FPS — met con se kha cao ma nhieu engine khic kh6 c6
the dot &we.

a


—Da dirge kiem thing ben cOng dong
Tinh den thtri diem hien tai, co hang tram nghln game da dirge phat trien doa tren nen
tang Cocos2d-X trong de c6 nhung game n6i bat nhu Diamond Dash, Fishing Joy. 25%
game 2D tren store ctia AppStore va Google Play Store sir dung Cocos2d-X... Hien tai,
Viet Nam, kha nhieu thong ty cling dang sir dung engine nay trong do c6 nhieu ding ty
nhu GSN, Egame, Afoli...
—Nhieu cong co h6 trq
+ Engine vat ly: hai Engine thuong sir ding trong Cocos2d-X de me pheng cac
quy the vat ly trong game la Chipmunk va Box2D. Khi nhac den Box2D chung
to Idiong the nito kh8ng nhic den Angry Brids, Box2D cling deng thei cung cap
cac ham vat IY lien quan den gia t6c, t6c dO, trcong loc coa tn& d6i tugng de

ngtrei chai c6 cam giac giOng vii thus to nhit co the. Con Chipmunk mac dit
mei dirge phat trien Al day nhung ve tinh 'tang cling khong thua kern gi so voi
Box2D.
12


+ Texture Packer: c8ng co gifip gom nhieu Anti thanh min anti gOp phan lam tAng
hieu nang cho game vi thief 131 khong an xir 19 nhieu anh.
+ Sprite Helper: to cac animation (chuyen dOng) cho Sprite, tit dOng sinh code
cluing to chi can lam viec tren giao dien troc quan.
+ Titled Map Editor: Too ban do (man chap cho game.
2.1.2.2. So sanh Cocos2d X yeti cac engine khcic

-

CO nhieu engineer lap trinh game di (long thong dung nhu Cocos2d-X, Libgdx, Unity
3D, Andengine... Ta co bang so sanh dac diem dm cac engine nhu sau:
STT

Tlnh nang

Unity 3D

Libgda


Cocos2d-X

Andengine

1

Mien phi, ma
ngulin met

x

x


Full version
phai tra phi

x

2

Dung luqng
game

1.5MB


Khong co
thong tin

8MB

Khong co
thong tin

3

HO trq


2D va 3D
nhung chit
yeu la 2D

2D, 3D

2D va 3D
nhung chi
yeu la 3D

2D


Da nen tang

x

x

x

Android

Nem ngO.


C ++, Lua,
Javascript,

Java

C #,
Javascript va
Boo

Khong co
thong tin


Day dit
nhung

Rat day du
v6i Javadoc

Day del, co
video huang
(fan, co litI trq

Kh8ng co

tai lieu co
the

x

x

TM

Rat tat

chin

TM lieu h6
trt7

khong co
h6 trq
Tich hop
ding co dO
hoa
4

COng ding
danh gid


Tlit

Bang 2.1: So sanh gifra Cocos2d X vet cac engine khcic
-

13

TM


Dpa tren bang so sanh cho thay, Cocos2d-X kh8ng phai la cong cu duy [that va tot

nhat, tuy nhien day la cong cp phi) hqp nhat veri dp an dm tac gia a thOri diem hien tai.
Cocos2d-X c6 lqi the ve chi phi, neon nga lip trinh, dung luqng xuat file thap va tang th&i
ho trq da nen tang. Mac do khong c6 ho trq tir phia nha cung cap nhung nhiing thong tin ve
Cocos2d-X duqc cong clang chia se kha day dir, c6 nhieu tai lieu tieng Anh de tham khao.
Vi vay tac gia quyet dinh kra chqn Cocos2d-X la engine de thpc hien dp an.
2.2. Kiel' frac tang quan vi m8i trterng lim vi4c
2.2.1. Ca cJu ti char this- mite
Date modified

Type

cocos2dx


11/211/201.3 1011 ...

File folder

CocosDenshion

11/28/2013 10:11 -.

File folder

Name


I jc

document

11/28/2013 1011 ...

File folder

k &tensions

11/28/2013 1012 ...


File folder

k eternal

11/28/20131012 ...

File folder

la licenses

11/28/20131012 ...


File folder

ji

11/28/20131012 ...

Size

File folder

Plu9in


ja samples

11/28/20131012 ...

File folder

saiPtift9

11/28/20131012 ...

File folder


5 template

11/28/2013 1012 ...

File folder

11/28/20131012 ...

File folder

•Riciftre


9/26/7913 913 AM

Text Document

3 KB

.gitmodules

9/26/2013 913 AM

Ted Document


1KB

LJ •travis.yr1

9/23/2013 1918 AM

'ML File

AUTHORS

9/23/2013 1918 AM


File

build-nadsh

9/23/20131018 AM

SH File

5 tools

210

17 KB
1KB

build-win32.bat

LJ

9/23/2013 1018 AM

Windows Batch File

CHANGELOG


9/26/201310:41 AM

File

73 KB

cocos2d•win32.vc2010.sln

9/26/20131041 AM

Microsoft Visual S...


13 KB

cocos2d-win32.vc2012.sln

9/26/201310:41 AM

Microsoft Visual S...

13 KB

cocos2d-wind.vc2012.sln


9/26/2013 913 AM

Microsoft Visual S...

18 KB

cocos2d-wp8.vc2012-sln

9/26/2013 9.13 AM

Microsoft Visual S...


16 KB

Hinh 2.2: NO1 dung tep tin IDE sau khi gidi nen

14

3 KB


Nai chira toan be dc ther vien chinh ma Cocos2d-X cung


Cocos2d-X

cap

Cocos6eeshiorC:c:
r

tep tin da phuomg Hen nh

Chose this Wen,
am thanh va ill


Cung cep cac this vien Oat trign ve GUI, cac this vien kgt

Extensions

naafi mang then 2 kigu chinh la HttpRequest va socket.

Cho dc thv vi

A (a5 2 thirvien Vat l chtnh
-X la Box2d va Chipmunk), cac this

sus dung trona

vien ha trot 3D
Chita cac dv an miu.

Sample

Bang 2.2: Co clu to chirc this myc trong Cocos2d-X
2.2.2. Kiln tree Cocos2d-X engine
\pplicoion

S,

Platform Laker


1r.

Platform Lacer

III IIIII

Hinh 2.3: Kiln frac Cocos2d-X

Cocos2d-X dirge chia thanh 3 tang chInh: Ting ting dung, tang this vien va tang he
dieu hAnh.
a. TAng img dung: la tang china cac (mg dung dirqc phat trien bed IAp trinh vien, cac nhi

phit trien phAn mem. Ngoli met s6 (mg dung duqc Android tich hqp sin nhu email,
15


SMS, trinh duyet web, danh be... thi ngutri dimg ci the
dung tit Google Play hay cac chq (mg dung khk.

a ding cli dat them cac 1mg

b. Tang thu vien: Day la not chin cac 1)0 cac thu vien xay dung nen cac chile nAng chinh
cia Cocos2d-X. Trong tang nay duqc chia thanh 4 nh6m chinh:
—Graphics: chin thu vin do hoa. M6i mat khung hinh, Cocos2d-X se ve lai anh len

man hinh bang OpenGL (d6i v6i windows) hok OpenGLSurface — phien ban thu
nh6 cua OpenGL giip giam mirc dO tieu hao ning Itrong va tang hieu nang cho
thiat bi smartphone (tren thiet 1)1 smartphone).
— Audio: Thu vien ma rang ding de thuc thi cac rep tin am thanh c6 djnh clang *.mp3
— Physic: chin thu vien vat ly. Cocos2d-X sir dung 2 thu vien vat ly chinh la
box2D(dtrot phat trim ben Erin Catto — Tien si Toan hoc IY thuyet vi img dung —
Dai hoc Cornell New York) va Chipmunk (duqc phat trim beri Scott Lembcke).
— Scripting: Thu vien ding de bien djch cac tap tin javascript
c. Tang ha dieu hinh: la tang ducx viet rieng cho mai h0 dieu hanh nhu iOS, Android,
WindowPhone 8...
2.2.3. Midi truing lam vile


i=b> WinS2 Application
r
'.exe
Visual Studlo 2012

Window

E

ega

ci> Android*.apk

Applicaiton

lOS Applicaiton
'.ipa
tac

Hinh 2.4: Moi twang lam viec

16


2.2.3.1. Ngon ngu lap trinh

Tuy nhien de chay dugc tren
Ng& nga lap trinh chinh thirc cua Cocos2d-X la
cac he dieu hanh khac nhau, lap trinh vien phai bien dich Lai ma ngut‘in ting yeti nen tang
ttrcmg img. Cu the nhu sau:
— De img dung c6 the chay dirge tren he dieu hinh Android, sau khi xay dung ma
ngu6n lap trinh vien sir dung trinh bien dich G++ phien ban dac biet do Google
phat trien dinh cho Android NDK (Android NDK la ding cu cho phdp Iap trinh
vien phat trien mOt phan img dung cda minh th8ng qua native code) de bien dich
chay rieng cho nen tang Android. Do G++ bien dich ten mid twang nao se xay
dung tap tin tucmg *fig cho nen tang dO, vay nen de xay dirng tep tin *.APK cho
cac may chay Android lap trinh vien phai sir dung mid truerng Cywin gia lap Linux
tren Window.

— Doi vai cac thiet bi chay tren he dieu hanh LOS, sau !chi xay dung ma ngu6n, lap
trinh vien sir dung mai trutmg phat trien Xcode tren MacOX bien dich sinh ra
tap tin *.IPA cho may chay he dieu hanh IOS.
2.2.3.2. Java Native Interface
a. Dinh nghia: JNI (Java Native Interface) la mOt framework cho phip ggi cac Mm Java
trong Java Virtural Machine (JVM) tir cac nem ngt1cAp thap nhu C, C++ hay assembly.
Do Cocos2d-X sir dung C++, nen de ggi cac ham native dm Java (cu the la Android) to
can phai gqi thong qua JNI.
b. Cach thirc host &Ong:
— Trong JNI, cac ham a tang native dugc djnh nghia trong tep tin *.c hoac*.cpp rieng
brat. Dac biet, did tied nen ngt/ C++ thi JNI cung cap mOt giao dien Wang diM don
gian. Khi may ao Java (NM) ggi ham, JNI se girl mOt con to JNIEnv va mOt d6i

tugng jobject, va bAt ki doi so nio nhung phai theo chuAn cita Java. Vi du:
JNIEXPORT void JNICALL Java ClassName MethodName
(JNIEnv *env, jobject obj)

/*Implement Native Method Here*/

+ Trong da ClassName vi MethodName la ten lap va ten phuong tittle ttrcmg img
dugc khai bac) a ten tin *.c ho4c *.cpp.

17



+ Con tr6 *env li met con tr6 struct JNIEnv c6 china cac giao dien tai may ao Java
(JVM). N6 bao gem cac chirc nang can thiet de tucmg tic vai JVM vi lim viec
veri the dei hrgng trong Java. Vi du nhu the ham truyen gia tri kieu mang trong
Native sang gia trj kieu ming trong Java hoic truyen gia trj kieu chuoi, del Wang
cling nhu thong bao the ngoai le (exceptions). ye ca bin Java co the thuc hien
mei ma ngutm tin tang Native thong qua viec sir dung JNEnv.
+ Doi se obj la met tham chieu den cac dei tueng trong Java ma da duce khai bio
trong tang Native.
+ Vi du truyen met gii trj kieu chulii (string) tir Java sang tang Native (C++)
//C++ code
extern "C"
JNIEXPORT void JNICALL Java ClassName MethodName

(JNIEnv *env, jobject obj, jstring javaString)

//Get the native string from javaString
const char *nativeString = env -> GetStringUTFChars(javaString, 0);
//Do something with the nativeString

//DON'T FORGET THIS LINE!!!
env->ReleaseStringUTFChars(javaString, nativeString);

— De bien dich ma nguen da viet bang C++ sang Java sinh ra file *.APK dung cho
thief bj chay hg lieu hinh Android, lap trinh vien can viet lui duang dan tai cac tep
tin ma ngutm (*.h) trong tep tin "Android.mk". Sau do sir dung trinh bien djch

V* ten mei twang Linux de bien dich lai town be ma nguen co trong tep ten
"Android.mk".

18


c. Anh xa kieu du Ru glita Java va Native

unsign cher
signed char

signed 8 bits


short"`,

unsign

qnsigned 16 bits
jshort

short

signed 16 bits


S

signed 32 bits
long long
int64

jlong

signed 64 bits

J


float
double
void

jfloat
jdouble

32 bits
64 bits

F
D


Bang 2.3 . Bang anh xa kieu diet lieu eta Java va Native code
Ngoii ra, signature "L fully-qualified-class ;" c6 nghia cac 16p xac dinh duy nhAt
bai ten dm 16p do. Vi di: "Ljava/lang/String;" tham chieu trti lop java.lang.String. amg
nhukY to "[" duqc ding de xac dinh cho kieu ming.
Luu Anh xa kieu du lieu String vi ming trong Java sang kieu der lieu String vi
ming trong Native code li khac nhau. Neu nhu khong kiem soat tot, chuong With se bi 16i
nghiem thing (CRASH).

2.2.4. Mit si lap dii tuvng thitang duvc mi. dung
2.2.4.1. CCDirector
—Dinh nghia: la Singerton quin ly Scene, viec chuyen d6i giaa cac scene thong qua

viec pop hoic push. Ngoii ra CCDirector can chiu trach nhiem khoi tao OpenGL
ES.
—Cac phucmg thirc chinh:
+ CCSize getWinSize():
19


Tra ve kich that man hinh that id
+ CCSize getVisibleSize():
Tra ve kich that hiln thj thgc d tren thilt bj
+ CCPoint getVisibleOriginO:
Tra ve tpa dO diem gac tpa dp hien thi tren man hinh that bt.

+ void popSceneO:
Lay ra Scene mai cling trong stack
+ void pushScene(CCScene *scene):
flea mot Scene vao stack
+ void replaceScene(CCScene *scene):
Thay Scene hien tat bang mot Scene Vick
Dtra vao 3 phuong [hire tren: to c6 the giii quyet duqc bai town da man hinh tren ck
thiet bj smartphone.

20



2.2.4.2. CCNode

CCAtlasNode

CCTIeMspAtIss

COlentaltenAtinFont

Coietwitemlabel

CalentstwiFent


CCMenultem

CO4enultemSpnle

cosenunemirnage

CCTNaitianFaMBL

Ca4o1ion4reak

CCMonultemiogglo


Catanitionfado

CaransitionFadellown

catansmonFod•lt

CCParalazNode

CCPorticloSystern

CCTransitionJurnpZeam


CCParticle9/st•nillusd

I

Celtan bonFadeup

CaransitionMovelne

CCProgressTimm

CCTransitionMovalnL


CCRenderTexture I

CCTransitionPageum

CCTransitionMovelnT

CarrantationRadisICCW

CCIrsnsitionRadmICV/

CCRibbon


CatansibonRotoZoom

CC5con•

CClionsitionScene

CCSprite

CCLaboITTF

CCSprit•atchNode


CCUthelBMFant

CCTransibonShrinkGrow

CCM/ailedMap

CCTMXisyer

Canons:bonShda

Hinh 2.5: Ccic del tuvng duvc ket thica tic CCNode
—Dinh nghia: CCNode la mOt d6i tucmg c6 cac yeu to chink. Bet ke mot d6i ttnyng

nao dirqc kheri tao deu c6 kieu di lieu la CCNode. CCNode Muting la: CCScene,
CCLayer, CCMenu, CCSprite, CCLabel...
—Cac phucmg that chinh:
+ static CCNode * create(void);
nghia: Kheri tgo mot dal tuvng CCNode
+ virtual void addChild(CCNode* child);

Y nghia: them mot del tuvng CCNode Mute vim trong doi tuimg CCNode nay.
+ virtual void removeChild(CCNode* child);
Y nghia: xon mat dal &Ting CCNode ni m trong CCNode nay.

+ virtual void onEnter();

21


nghia: Ham nil)", en; kien khi no &cc addChild
+ virtual void onExit();
nghia: Ham nib', sit kien khi no hi removeChild
+ virtual CCNode * getChildByTag(int tag);
nghia: Trci

ve mat CCNode có tag bcing vol tham so truyEn vao.

+ virtual CCArray* getChildren();

nghia: Tra ve wan bo CCNode cluvc addChild tren CCNode nay.
+ void schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat,
float delay);

t nghra: Tao ra mot lich
o Tham

selector: him xir ly lich

o Interval: thai gian 1Rp lai lich
o Repeat: s6 lan lop lich. Sir dung kCCRepeatForever neu mulm lich chay mAi
mai

o Delay: thbi gian tee
+ void unschedule(SEL_SCHEDULE selector);
nglita: Hay lich
2.2.4.3. CCScene
trong chu trinh img dung. MOt
— Dinh nghia: La mOt doi tirang hoat dOng dOc
ang dung c6 the c6 ?At nhieu Scene nhung trong mOt thei diem nhit djnh chi c6
mOt Scene dugc hoat dOng. MRc du la d6i tugng dirge ke thira tir CCNode thy nhien
CCScene la mOt doi twang dRc biet. CCScene chi nap cheing lai duy nhAt phuang
thac create() ngoli ra kh8ng nap ching lai bit ke phucmg thirc nao.
2.2.4.4. CCSprite
— Dinh nglaa: CCSprite trong Cocos2d-X cling gitmg nhu Sprite trong cac engine

khac. NO la mOt hinh anh 2D co the xoay, di chuyen, thay dOi kich thu6c, tao cac
animation vi thuc hien cac phep Bien deti khac. Do CCSprite dirge ke thira tir
CCNode nen n6 dirqc thira huang toan b0 tinh chit ma CCNode cho phip nhu
addChild, removeChild, scheduler...
— Cac phucmg that chinh
static CCSprite* create();
22


nglaa: No co the khol tgo cling voi mOt hinh anh 2D hock 1 phan hinh chit nlgit
trong mot hinh anh ban &lit.
+ virtual void setDisplayFratneWithAnimationName(const char animationName,

int framelndex);
nglifa: claw sit dung de tgo chugi anh ding animation
+ void setFlipX(bool bFlipX); va void setFlipX(bool bFlipX);

Y nghia: kit anh theo tryc X hoac tryc Y
+ virtual void setScale(float fScale);
e
Y nghta: keo gidn hinh anh theo mOt ti l' ificale. Hinh anh ban clau co ti le la 1.
22.4.5. CCScale9Sprite
— Dinh nghia: CCScale9Sprite giting nhu viec tao mot hinh anh "Nine patch" tren
android. VOy anh "Nine patch" la gi?
Anh "Nine patch" IA anh ma ce mot so yang duqc dinh nghia (defined) ce the keo

cang ra (stretchable) ma khong bi va hat. Vimg dinh nghia limOt lueri (grid) c6 kich thuerc
3 x 3 de dam bao rang viec keo dan hinh anh khong bi ver.
scalable area

9-patch guides
what do they do?

scalable area

fill area

fill area


Hinh 2.6: Hinh anh mink hpa "Nine patch"
Wing (firth nghia c6 the keo can 11 mot du6ng bao mau den c6 dO day 1 px, nim
vien ngoai cling dm anh. Le ben phai va day gqi IA Fill Area, c6 the bleu dieu nay nhu la
ban ce 1 sqi day chun, ban co dinh mOt dAu vi keo dan dAu con lai. Le ben tren va ben trig
tty thuOc vao ban chAm ve diem den nhu the nao ma yang anh de se duqc kto dan.
23


Vay tai sao can sir dung dan CCScale9Sprite?
Nhu da noi a ten, anh "Nine patch" co the keo dan ma khong bi vet hat. Dieu nay
glop giam dung lugng tai nguyen cling nhu dung lugng de tau trir hint' kill teen b() nha

RAM.
—Cac phucmg that chinh
+ virtual void setPreferredSize (CCSize size);

f nghia: Cal tat kich thwerc del ming can dat den. Mdc dinh being kich think ban
dau ctia /fifth anh.
+ virtual void setCapinsets (CCRect value);
+ virtual void setInsetLeft (float value);
+ virtual void -setInsetTop (float value);
+ virtual void setInsetRight (float value);
+ virtual void setInsetBottom (float value);


k nghia: Nhu dd giai thief' a Men. V'ung dinh nghia lit mOt hied c6 kich thy& 3x3.
phtrang thav men gitip chang to quy dinh Wing can keo dein.
2.2.4.6. CCLayer
—Dinh nghia: CCLayer la mOt d6i tugng dugc hieu nhu mOt CCNode. Tuy ninon
CCLayer cho phep zit ly cac sg kian touch cling nhu cam bin Accelerometer ten
cac thiet bi smartphone.
—Cac phucmg thac chinh:
+ virtual void setTouchEnabled(bool value);

Y nghia: Cal dat touch ca &tor sir dyng men layer nay hay khcing.
+ virtual void setTouchMode(ccTouchesMode mode);
ngliTa: cal tett chez dO touch la clan touch hay da touch

+ virtual void setTouchPriority(int priority);

Y nghia: Cal dat mar dO touch uu lien. Do mat Scene ca thi chira nhieu CCLayer,
dieu nay ca thi gay anh Throng din viec khi to touch veto mOt doi tuemg thuOc Layer nay
nhung cling ca thi no gay anh Song tai layer khcic. Vic setTouchPriority la can thik de r
trcinhvexugdqo.
+ virtual void setAccelerometerEnabled(bool value);
24


Y nglita: Chi d'at su dung Accelerometer
+ virtual void onEnter();

tnglaa: Nhu del not u tren, CCLayer &cc ki that: lei to CCNode viz co them mOt
so tinh ming mat nen phirang thac onEnter0 dirge ngp chOng lqi de cai *flat arc tinh ruing
tren.
+ virtual void onExit();
nglea: Cling nhir phuang thac onEnter0, phuvng thlic onExit duac nap cluing
lgi di )(Oa bo cac cai tat cac tinh niing dQc biit
2.2.4.7. Label
— Dinh nghTa: Label la met kieu dU lieu dimg de kheri tao met doan van ban hien thi
len man hinh. CO hai kieu Label thubng dtrqc sir dung la CCLabeITTF va
CCLabelBMFont
+ CCLabeITTF: Sir dung font *.ttf (TrueTypeFont)
o Uu diem: CO the toy chinh kich thirem ma khong sq ver anh.

o Nhuqc diem: RAI chum khi gen vao chuyen deng
+ CCLabeIBMF ont: Sir dung file anh va file djnh dung *.fnt de the hien chn
o Liu diem: C6 tec de nhanh khi thuc hien cac animation, mau sic dep do duqc
xuAt to file anh
o Nhuqc diem: CM c6 met kich thuerc theo file anh, viec pheing to thu the, c6
the gay vat anh.
— Cac phircmg thirc chinh:
+ virtual void setString(const char *label);
nghia: thay doi n5i dung dogn van ban dil duTrc khiri 4w truac do being dogn van
ban khac.
+ virtual void setColor(const ccColor3B& color);
nghia: thay dei mau sac dogn van ban.

+ virtual void setOpacity(GLubyte opacity) = 0;

Y nghia: thay dot dQ trong suit czia van ban.
+ void setFontName(const char *fontName); vi void setFntFile(const char*
fntFile);
25


Y nghia: thay dor font chit dang sir dung trong van ban
+ void setFontSize(float fontSize)
nghia: thay dot kich thwerc font chit trong van ban. Chi c6 trong CCLabeITTF
+ void setDimensions(const CCSize &dim);

nghia: thay doi kich thwor khung Min tht van ban. Chi c6 trong CCLabeITTF
+ virtual void setWidth(float width);
nghia: may dal do r Ong khung hien thi van ban. Chi c6 trong CCLabellThifont
+ void setVerticalAligrunent(CCVerticalTextAlignment verticalAlignment);

k neat,: thay dOi can le theo chiiu dgc. Chi c6 trong CCLabeITTF
+ void setHorizontalAlignment(CCTextAlignment alignment);
nghia.: thay dor can le theo chidu ngang.
2.2.4.8. CCMenu

a


chfra cac button. Button trong
— Dinh nghia: CCMenu la mot doi ttrqng dimg
Cocos2d-X c6 kiln dU lieu la CCMenultem duqc k'e thira tit CCMenu. CO 2 loai
CCMenultem thuang dime sir citing la CCMenultemSprite va CCMenultemLabel
d. CCMenultemSprite: duqc ke thira dr CCMenultem. Day la met kieu button duqc the
hien bang Sprite
e. CCMenultemLabel: duqc ke Mira tir CCMenultem. Day le kieu button duqc the hien
bang down van ban
—Cac phucmg tittle chinh:
+ static CCMenuItetnLabel * create(CCNode*label, CCObject* target,
SEL MenuHandler selector);


k nglifa: khol tgo button kiiu dogn van ban.
o Label: la down van ban hien thj tren button
o Target: mvc tieu trO den cita dOi film
o Selector: ham xi: ly stir kin khi touch vio button
+ Static CCMenultemSprite *create(CCNode* normalSprite, CCNode*
selectedSprite, CCNode* disabledSprite, CCObject* target, SEL_MenuHandler
selector);
neat,: kh6i tgo button kilu hinh tinh
26


o normalSprite: Hinh anh a tong thai binh thirerng

o selectedSprite: hinh anti 6 tong thai khi dang touch
o disabledSprite: hinh anh a tong thai khi bi v8 hieu h6a
+ virtual void setEnabled(bool value);

t nghia: cho phip button hogt tong hoc bi vo hleu Ma.
2.2.4.9. CCAction
CCAction la lap ca ban cho cac doi ttrqng action. Cac del turqng dimg
— Dinh
a Neu din hanh dengdeu duqc ke thira loi to CCAction. MOt sii action thuArng
duqc sir dung
a. CCMoveTo: di chuyen din tuqng den met diem biet truerc v6i met khoang thin gian nhat
dinh theo duArng thing.

+ static CCMoveTo* create(float duration, const CCPoint& position);
b. CCMoveBy: di chuyen den tucmg theo met huemg trong khoang th&i gian nhAt dinh. Dich
den la king vector hai chieu coa vi tri hien tai va vi tri truyen vio
+ static CCMoveBy* create(float duration, const CCPoint& position);
c. CCRotateTo: Xoay den met gee biat truerc tai tam anchorpoint trong khoang thtri gian
Wet tem
+ static CCRotateTo* create(float duration, float fDeltaAngle);
d. CCRotateBy: Xoay them met g6c biat nu& tai tam anchorPoint tir gee hien tai ciut dei
tirqng trong khoang thin gian Wet truck
+ static CCRotateTo* create(float duration, float fDeltaAngle);
e. CCScaleTo: Keo dan kich aurae drii Wog n lan trong khoang thin gian nhAt dinh
+ static CCScaleTo* create(float duration, float fDeltaScale);

f. CCScaleBy: Keo dan kich thu6c dei hum them n Ian tit de dun hien tai trong khoAng
thai gian nhAt dinh.
+ static CCScaleTo* create(float duration, float fDeltaScale);
g. CCShow: Hien till

tuqng

+ static CCShow* create();
h. CCHide: An &Si ttnyng
+ static CCHide* create();
27



×