Lập trình game trên thiết bị di động (Đồ án tốt nghiệp)Lập trình game trên thiết bị di động (Đồ án tốt nghiệp)Lập trình game trên thiết bị di động (Đồ án tốt nghiệp)Lập trình game trên thiết bị di động (Đồ án tốt nghiệp)Lập trình game trên thiết bị di động (Đồ án tốt nghiệp)Lập trình game trên thiết bị di động (Đồ án tốt nghiệp)Lập trình game trên thiết bị di động (Đồ án tốt nghiệp)Lập trình game trên thiết bị di động (Đồ án tốt nghiệp)Lập trình game trên thiết bị di động (Đồ án tốt nghiệp)Lập trình game trên thiết bị di động (Đồ án tốt nghiệp)Lập trình game trên thiết bị di động (Đồ án tốt nghiệp)Lập trình game trên thiết bị di động (Đồ án tốt nghiệp)Lập trình game trên thiết bị di động (Đồ án tốt nghiệp)
Trang 1LÝ THUY T 8
1.1 KI N C A THI T B NG THÔNG MINH 8
1.1.1 Gi i thi u 8
1.1.2 Vi x lý 9
1.1.3 B nh RAM 14
1.1.4 B nh ROM 15
1.1.5 Màn hình 15
1.1.6 B x h a 16
1.2 CÁC THI T B NG 17
1.2.1 Gia t c k 17
1.2.2 Con quay h i chuy n 18
nh v v tinh 19
1.2.4 C m bi n dung 20
1.3 KI N TRÚC C A N N T NG ANDROID 21
1.3.1 Nhân c a h u hành 21
1.3 n 22
1.3.3 Khung ng d ng trên Android 24
1.3.4 T ng ng d ng 25
1.3.5 Các thành ph n trong m t ng d ng Android 25
1.4 CÔNG C VÀ NGÔN NG L P TRÌNH 29
1.4.1 Ngôn ng l p trình 29
1.4.2 Công c cho l p trình 29
1.4.3 M t s Game engine 31
1.5 QUY TRÌNH XÂY D NG PH N M M TRÊN ANDROID 32
L N THO I THÔNG MINH 33
2.1 Gi i thi u 33
2.2 KI N TRÚC C A .33
2.2.1 Ki n trúc chung 33
Trang 22.2.2 K thu t âm thanh 35
2.2.3 K thu h a 36
2.2.4 H th ng mô ph ng 41
2.2.5 K thu t x lý va ch m trong game 42
2.3 CÔNG C X LÝ ÂM THANH 43
2.4 CÔNG C X LÝ HÌNH NH 44
2.5 CÔNG C PHÁT TRI N PH N M M 46
TRI N KHAI NG D NG 50
3.1 CHU N B TÀI NGUYÊN CHO NG D NG 50
ng c 50
h a 50
3.1.3 Âm thanh 51
3.2 TH C NGHI M 51
Trang 3DANH SÁCH CÁC HÌNH
Hình 1-1:Ki n c a FPGA 8
Hình 1-2:Ki n trúc Snapdragon S4 s d ng b vi x lý Krait 10
Hình 1-3: kh i SoC OMAP36xx c a Texas Instruments 10
Hình 1-4: Bi OMAP4470 c a Texas Instruments 11
Hình 1-5: kh i Exynos 4210 c a Samsung 11
Hình 1-6: Hình minh h a v m ch Samsung Galaxy S 4G 12
Hình 1-7: kh i c a Tegra 2 13
Hình 1-8: Hình nh c lý (lõi th 5 n m trên cùng) 13
Hình 1-9: Hình minh h a v m ch Motorola Droid Razr 14
Hình 1- n c a m t t m n n LCD TFT 15
Hình 1- t m hi n th AMOLED 16
Hình 1-12: Ki n trúc bên trong GPU Mali c a ARM 16
Hình 1-13: Hình minh h a gia t c k dùng trong máy bay 17
Hình 1-14: C u t n c a gia t c k 17
Hình 1-15: Minh h a ho ng c a gia t c k n t 18
Hình 1-16: Hình nh minh h a con quay h i chuy n 18
Hình 1-17: Hình nh minh h a MEMS 19
Hình 1-18: M t s a GPS: 19
Hình 1-19: Hình minh h ho ng c a màn hình c m n dung 20 Hình 1-20: Ki n c a h u hành Android 21
Hình 1-21: S so sánh Java VM và Dalvik VMs 23
Hình 1-22: i c a m t ho ng 27
Hình 1-23: chuy n tr ng thái c a d ch v 28
Hình 1-24: Ki n trúc c a b cung c p n i dung trong Android 29
Hình 2-1: Ki n c a m 33
Hình 2-2: Hình minh h a ngón tay ch u khi n trong User Input 34 Hình 2-3: Hình minh h a phép d ch chuy n, phép quay 36
Hình 2-4: Minh h a phép chi u ph i c nh 3D trên 2D 37
Trang 4Hình 2-5: Minh h a phép chi u song song 37
Hình 2-6: Minh h a góc nhìn h p 37
Hình 2-7: Minh h a góc nhìn r ng 38
Hình 2-8: Minh h a phép chi u hình nh vào thi t b , hình bên trái chuy n g c t vào thi t b và hình bên ph i là d ch chuy n thi t b v phía hình nh .38
Hình 2-9: Hình minh h a h tr c t -Các 3 chi u 39
Hình 2-10: Giao di n Android Virtual Device Manager 41
Hình 2-11: T o thi t b o trong Android Virtual Device Manager 42
Hình 2-12: Giao di 43
Hình 2-13: Giao di 44
Hình 2-14: Giao di 44
Hình 2-15: Giao di 45
Hình 2-16: Giao di o n 45
Hình 2-17: Giao di 46
Hình 2-18: Giao di n Eclipse 46
Hình 2-19: Ch t o d án 47
Hình 2-20: Nh p thông tin cho d án 48
Hình 2-21: Thi t l p thêm các thông s cho ng d ng 48
Hình 2-22: Ch n ch hi n th 49
Hình 2-23: Hoàn thành t o d án 49
Hình 3-1: Hình nh máy bay trên b u tr i 51
Hình 3-2: Màn hình làm vi c c u Unity3D 51
Hình 3-3: Màn hình làm vi c c a MonoDevelop 52
Hình 3-4: Hình ch t n công 53
Hình 3-5: Máy bay b n 53
Hình 3-6: Hình nh v a r sang trái v a b n 54
Trang 5DANH SÁCH CÁC T VI T T T
4
5
Trang 6L I C
c h t, em xin chân thành c y giáo - Ths Nguy n Tr
gi ng viên Khoa Công ngh thông tin - i h c Dân L p H
dành cho em r t nhi u th i gian quý báu, tr c ti ng d n t , ch b o
Em xin chân thành c t c các th y cô giáo trong khoa Công ngh thông tin - i h c Dân L p H i Phòng, chân thành c y giáo, cô giáo tham gia gi ng d y và truy t nh ng ki n th c quý báu trong su t th i gian em h c
Tuy có nhi u c g ng trong quá trình h c t án t t nghi
không th tránh kh i nh ng thi u sót nh nh, em r c s góp ý quý báu
Trang 7GI I THI U
L p trình trên thi t b ng phát tri n ngày nay c a ngành
nhi u l i nhu n cho n n kinh t Th nh t, nó m ra m ng m i c n nhi u lao
ng k thu t cao, gi i quy t nhi u công vi ng Th 2, ngành này
n t , giáo d c và m t s ngành d ch v khác Th 3, m c a ngành này là ngành công nghi p không khói, nguyên li u chính là tri th c bi i l i ích
to l n cho c ng
Khóa lu n này cho em m i trong vi ng ngh nghi
Trang 8LÝ THUY T
Gi i thi u
L p trình là m c quan tr ng trong ngành công ngh thông tin, l p trình cho thi t b i m t s yêu c u riêng khác v i l p trình cho máy tính L p trình cho máy tính nói c phát tri n nh trong m t th i gian dài và có ít
i, không có chu n th ng nh t, ph n c ng ph thu c nhi u vào các hãng
nhiên các s n ph m v thi t b u có m t s ch
nh v v ng, và m t s các sensor khác T phân tích trên, trong
n t p trung vào trình bày n n t ng ph n c ng c a thi t b ng
và m t s ngôn ng l n hình cho thi t b ng
1.1.1 Gi i thi u
Hi n nay có r t nhi u các hãng s n xu t thi t b ph n c n tho i thông
tuy nhiên n n t ng công ngh ng
d ng SoC (System on a chip).Công ngh này tích h p nhi u b ph n khác nhau vào trong m t vi m ch tích h lý (CPU), chip x h a
u khi n USB và các vi m ch WIFI cùng nhi u th khác
n a.Các h th u d a trên n n t ng công ngh FPGA (field-programmable gate array)
Trang 9S d ng FPGA là m t gi i pháp khác nh m kh c ph c m t s h n ch c a ASIC (Application-Specific Integrated Circuit), ASIC là m t vi m c thi t k dành cho m t ng d ng c th , v v ph c t p khi tri n khai.FPGA là
m t lo i vi m ch bán d n chuyên d u so sánh FPGA v i ASIC thì
c m t có h n ch trong vi c th c hi n nh ng tác v
trình l i, thi t k n n chi phí gi m, rút ng n th n ph m vào
Các nhà thi t k s d ng các ngôn ng mô t ph n c ng
thi t k và l p trình cho FPGA Các gói ph n m m và thi t b ph tr cho quá trình thi t k này do các hãng s n xu t FPGA l p Ngoài ra t s hãng khác cung c p các gói ph n m m ki
Synopsys, Synplify
1.1.2 Vi x lý
Vi x n tho c nhi u hãng s n xu t và theo nhi u chu n khác nhau Trong ph n này khóa lu n gi i thi u m t s n tho i thông minh
1.1.2.1 ARM
Chip ARM (Advance RISC Machine) c a hãng ARM Holding c nâng c p qua nhi u phiên b n Hi n nay có nhi u phiên b n c a ARM ARM 11, Cortex-M, Cortex-R,Cortex-A Th c ch t ARM Holdings không s n xu t chip mà h thi t k
Apple, ARM cung c p các thi t k IP-Core cho lo i 32 bit và 64 bit
1.1.2.2 SoC Snapdragon
SoC Snapdragonc a hãng Qualcomm l a ch n m t gi i pháp khác m c dù h
d ng b n quy n c s n xu không s d ng hoàn toàn thi t k c a ARM Hãng này d a vào thi t k ARM r i c i ti n thi t k phát tri n
thành các vi x lý Scorpion và Krait riêng c a h , các vi x lý c a Qualcomm
v i các b vi x lý u.Các vi x lý Scorpion và Krait SoC Snapdragon c a Qualcomm Mã Snapdragon có nhi u lo Sx (x 1, 2, ,
n) S x càng l n thì t x lý càng m nh Hi n t i có m t s s n ph m d ki n s
Trang 10s d ng Snapdragon S4 c a Qualcomm HTC One S, HTC EVO 4G LTE, HTC One XL,
Hình 1-2:Ki n trúc Snapdragon S4 s d ng b vi x lý Krait
1.1.2.3 OMAP
SoC OMAP (Open Media Application Platform) c a Texas Instruments c s
d ng khá r ng rãi n ph n tho i c a Motorola u s d ng
ph m OMAP 3 và 4 c dùng ph bi n hi n nay
Hình 1-3: kh i SoC OMAP36xx c a Texas Instruments
Do m o nhi u s n ph m v i các tùy ch n nên SoC OMAP không tích
h p b ph n Wifi, Bluetoothvà m t s thành ph n cho t ng dòng s n
Trang 11Hình 1-4: Bi OMAP4470 c a Texas Instruments
Tuy nhiên, các SoC OMAP c tích h p thêm công ngh ti t ki n
SmartReflex hai lõi ARM Cortex-Mx ti t ki i gian pin
1.1.2.4 d Exynos
SoC Exynosc a hãng Samsungch y u ph c v trong các s n ph m c a Samsung,
ngoài ra hãng Meizu, nhà s n xu n tho i Trung Qu c s d i c a
h M c dù Samsung s n xu t SoC v n nh p Snapdragon c a Qualcomm
s n xu n tho i vì Exynos ng c m t s yêu c u c a s n ph m m i
Hình 1-5: kh i Exynos 4210 c a Samsung
Trang 12Dòng s n ph m Exynos 4210 lõi kép c c i thi n m nh v t so v i phiên
m ch s d ng h Exynos
Hình 1-6: Hình minh h a v m ch Samsung Galaxy S 4G
Exynos r t h a h n nghi m các th h Exynos m c tích h p các b vi x lý ARM Cortex-A15 lõi kép 2 GHz cùng v i vi x h a Mali c i ti n,
Trang 13n nh m ti t ki ng n ph m có tên là Wayne s
Trang 14tích h p các b vi x lý ARM Cortex-A15 trong c u hình b n lõi ho c tám lõi GPU
1.1.2.6 f SoC c a Apple
Apple là m t hãng n i ti ng v i các s n ph m tinh t và ch ng cao H
s n xu t SoC n giao cho hãng khác Apple ch dùng cho các s n
ph m c a h Hi n nay Apple l y ngu n SoC tr c ti p t Samsung trang b cho máy tính b n tho i Iphone c a h
Chip A4 là SoC tích h p vi x lý ARM Cortex- t 800 MHz
nhi u âm thanh.Trong th h k ti p SoC A6 s s d ng quy trình 28nm và tích h p
1.1.3 B nh RAM
B nh RAM trong thi t b
c tích h p trong SoC nh m gi m thi c thi t b , gi
tiêu th , t truy c
Hình 1-9: Hình minh h a v m ch Motorola Droid Razr
Trang 151.1.4 B nh ROM
B nh ROM trong thi t b ng có vai trò to l i ROM trong máy
c tích h c phân chia thành nhi u vùng Vùng ch a thông tin h th ng, vùng ch a h u hành và ch a các t p tin h th ng khác
Trong m t s ng h p, màn hình LCD tiêu t n nhi u
c dày
1.1.5.2 AMOLED
AMOLED (Active-Matrix Organic Light-Emitting Diode) là màn hình dùng các
Trang 16-
Trang 17GPU (Graphics Processing Unit) là thu t ng chung ch chip x h a, trong
x lý các l h a.GPU x h a 2D/3D v i nhi u t n s xung nh p khác nhau
t 200M n 400s c tích h p thành nhi u lõi tuy theo nhu c u c a s n
ph m và có th x lý 204 t phép tính/giây GPU c u h tr OpenGL và DirectX
1.2.1 Gia t c k
Hình 1-13: Hình minh h a gia t c k dùng trong máy bay
phát hi n chuy n ng c a thi t b ng Trong thi t b c l p m t gia
t c k giúp cho thi t b nh n di c chi u xoay c a thi t b u ch nh các ph n
m m phù h p v i tr ng thái m i c n tho i
Gia t c k nguyên th y là m t khoang ch a hình tr có ch a qu bóng g n lò xo hình [] Khoang ch c g n li n vào v t th c c, còn qu bóng di chuy n m t chi u bên trong khoang ch a Khi thi t b chuy ng qu
di chuy n làm lò xo co dãn D co dãn c a lò xo thi t b có th c l c và gia t c c a chuy ng
Hình 1-14: C u t n c a gia t c k
Trang 18Gia t c k trong thi t b ng là m t thi t b n t ho ng d a trên nguyên lý
c a gia t c k n này
Hình 1-15: Minh h a ho ng c a gia t c k n t
hai c u ra c a thi t b
1.2.2 Con quay h i chuy n
Hình 1-16: Hình nh minh h a con quay h i chuy n
Con quay h i chuy n (gyroscope) là m t trong nh ng b ph n c m ng quan
tr ng trong thi t b ng Do gia t c k ch có th c gia t c tuy n tính c a thi t b nên ph i k t h p v i con quay h i chuy n có th nh n bi ng c a thi t b , h th ng có th d dàng ghi nh n nh ng chuy ng theo c
ho ng Trong các thi t b ng không s d ng con quay h i chuy c mà dùng thi t b g i là MEMS (MicroElectroMechanical System H
th n t ) thi t b này mô ph ng chính xác ho ng c a các thi t b c
Trang 201.2.4 C m bi n dung
Màn hình là thi t b hi n th i v i thi t b
vai trò quan tr ng là nh u khi n t i dùng B ph n c m c b sung vào ph i màn hình c g i là l p c m ng s hóa H u h t n tho i thông minh hi n nay u trang b màn hình c m n dung
L p c m n dung s d ng công ngh PCT (projected capacitive touch), t o
ra m i" trên màn i này phát hi n ti p xúc c i dùng b ng cách
chi u c ng n các ti p xúc có th th c hi n ho c gián ti p ho c tr c ti p trên màn hình
Trang 211.3 KI N TRÚC C A N N T NG ANDROID
Android là h u hành c a hãng Google, v ng ti p c n là m t h u hành cho thi t b ng [11] Android nhanh chóng tr thành h u hành ph bi n
nh t trên th gi c xây d ng t nhân Linux, Android c m r ng thêm nhi u
t chi ti t t ng thành ph n trong Android
Hình 1-20: Ki n c a h u hành Android
1.3.1 Nhân c a h u hành
Android là m t s n ph n hình c a vi c h p tác và phát tri n mã ngu n m
H u hành Android s d ng nhân Linux phát tri n Nhân Linux phát tri n
c c p nh t và phát tri
th , Camera, bàn phím, chu t, k t n i Wifi, âm thanh, qu n lý ngu n, USB và
th nh cùng v i các trình k t n i khác
Trang 221.3.2 T n
t ng phát tri n ng d ng v ng trãi Các i cho Android s c s ng mãnh li t và trên th c t có vô s các ph n m m ch y trên n n t ng Android
Surface Manager: qu n lí giao di n bao g m l p giao di n 2D và 3D
n media: d a tên OpenCORE c a PacketVideo, m t b n
h tr c, ghi l i nhi nh d ng âm thanh, video, hình
MPEG4, H.264, MP3, AAC, AMR, JPG, và PNG
Trang 23Hình 1-21: S so sánh Java VM và Dalvik VMs
M c dù Android ch p nh n c hai ngôn ng l p trình Java và C, tuy nhiên Java
biên d ch và ch y các ng d ng trên Android i v i ngôn ng l p trình C,
Google cung c p framework khác là libc, khi l p trình thì d a vào NDK (Native
Development Kit) Ngôn ng l p trình cho c phát tri ng
ch y trên máy o Dalvik VM n c a Android cung c p
c a Android
t th m m t cách hi u qu N n t ng k thu t này d a vào lõi
th c hi ng và qu n lý tài nguyên b nh
H u hành Android h tr m t s các APIs phát tri n ng d ng
- android.util: Gói ti n ích qu n lý nhi u l p m c h th ng :các l p (List,
Trang 24- android.view:Gói khung nhìn n nh t.
u thông qua các View.
- android.widget: c xây d ng d a trên gói View Nh ng thành ph n giao di c t o s n s d t o nên giao di n i dùng m t cách nhanh chóng
- com.google.android.maps:B giao di n ng d truy c n b
s n trong Androidt các ph n m m ng d ng
- android.app:Gói n này cung c p c truy c n d li u c a các ng d ng
- Android.provider: n này t o thu n l i cho các nhà phát tri n truy c p
n các Content Provider tiêu chu ncho phép truy c d li u chu n trong
t t c các b n Android
- Android.telephony: Các API cung c p cách th c k t n i v i t ng vi n thông
trong thi t b , cho phép t o, nh n, theo dõi các cu c g i, tình tr ng các cu c g i và tin
nh n SMS
- android.webkit: Gói WebKit cung c p giao di n l p trình ng d ng (API)có th
i n i dung d a trên n n Web, g m l p WebView, trình qu n lý cookie t o ra giao di n Web và nhúng trong ng d ng
1.3.3 Khung ng d ng trên Android
Ki n trúc c a Android khuy n khích khái ni m Thành ph n s d ng l i, cho phép công b và chia s các Activity, Service, d li u, v i các ng d ng khác v i quy n truy c c qu n lý b i khai báo
i l p trình t o ra m t trình qu n lý danh b ho c trình quay s n tho i mà có các thành ph i khác có th t o m i giao di n và m
Nh ng d ch v sau là nh ng d ch v ki n nh t c a t t c các ng
Trang 25- u khi i c a các Activity bao g m c qu n lý các t ng Activity.
- c s d t o l p các giao di i dùng cho các Activity
- Notification Mamager: Cung c p m c nh và quy c cho vi c g i các
i dùng
- Content Provider: Cho phép ng d ng chia s d li u gi a các ng d ng
- Resource Manager: H tr các thành ph n không thu c mã ngu i
1.3.4 T ng ng d ng
p trên cùng c a ki n trúc n n t ng Android Android s ho ng v i
m t b các ng d ng bao g m ng d n t , g i tin nh n, l ch, b , trình duy t web, danh b t c các ng d c vi t b ng ngôn ng Java Các ng
d ng này có th c cung c p s n ho c phát tri n b i nh ng l p trình viên
1.3.5 Các thành ph n trong m t ng d ng Android
M t ng d ng Android có các thành ph n sau:
Activities (Ho ng) Services
Broadcast Receivers Content Provider
M t ng d ng không nh t thi các thành ph n này.M i thông tin v
ng d c ghi trong t p tin AndroidManifest.xml.
Trang 26Các
các
Trang 28Hình 1-23: chuy n tr ng thái c a d ch v
1.3.5.3 B nh n p qu ng bá (Broadcast receivers)
BroadcastReceiver.