1 Chuẩn bị Resource
1.1 Hình ảnh game
Các hình ảnh trong game, chúng ta sử dụng một công cụ hỗ trợ để tạo ra Sprite như trên, đó là một trong các công cụ Texture Atlas có tên là Zwoptex. Công cụ này sẽ hỗ trợ tạo ra file ảnh dạng sheet như trên cùng với file .plist ánh xạ vị trí của từng loại sprite, giúp Cocos2d-x có thể đọc được từng ảnh.
1.2 Font bitmap
Font bitmap là loại font được tạo bằng hình ảnh, font này có thể không cần có đủ tất cả các ký tự như bảng chữ cái, nó chỉ cần “phục vụ” đủ nội dung mà game cần.
Để tạo ra font bitmap ta có thể sử dụng công cụ: GlyphDesigner
Về mặt cơ chế hoạt động thì font bitmap cũng tương tự như sprite sheet, cũng có 1 sheet của ký tự và 1 file “plist”.
info face="SFJuggernaut" size=35 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2
common lineHeight=35 base=29 scaleW=128 scaleH=128 pages=1 packed=0
page id=0 file="font.png"
chars count=14
char id=37 x=2 y=2 width=52 height=34 xoffset=1 yoffset=1 xadvance=50 page=0 chnl=0 letter="%"
char id=52 x=56 y=2 width=32 height=28 xoffset=1 yoffset=4 xadvance=29 page=0 chnl=0 letter="4"
char id=55 x=90 y=2 width=32 height=28 xoffset=1 yoffset=4 xadvance=28 page=0 chnl=0 letter="7"
char id=50 x=2 y=38 width=32 height=28 xoffset=1 yoffset=4 xadvance=29 page=0 chnl=0 letter="2"
char id=54 x=36 y=38 width=32 height=28 xoffset=1 yoffset=4 xadvance=29 page=0 chnl=0 letter="6"
char id=56 x=70 y=38 width=32 height=28 xoffset=1 yoffset=4 xadvance=29 page=0 chnl=0 letter="8"
char id=57 x=2 y=68 width=32 height=28 xoffset=1 yoffset=4 xadvance=29 page=0 chnl=0 letter="9"
2 Xây dựng Game
2.1 Định nghĩa các hằng số
Ta định nghĩa các hằng số sẽ dùng trong game vào file Constant.htypedef struct tagResource
{
Size size;
char directory[100];
} Resource;
static Resource tabletResourceSD = { Size(1024, 768), "sd"};
static Resource tabletResourceHD = { Size(2048, 1536), "hd"};
static Size designResolutionSize = Size(1024, 768);
#define ZODER_BG 0
#define ZODER_CITY_BACKGROUND ZODER_BG + 1
#define ZODER_CLOUD ZODER_CITY_BACKGROUND + 1
#define ZODER_METEOR ZODER_CLOUD + 1
#define ZODER_CITY_FOREGROUND ZODER_METEOR + 1
#define ZODER_BOMB ZODER_CITY_FOREGROUND + 1
#define ZODER_TEXT ZODER_BOMB + 1
#define TAG_SPARKLE 1001
#define TAG_HALO TAG_SPARKLE + 1
#define TAG_METEOR TAG_HALO + 1
#define TAG_HEALTH TAG_METEOR + 1
// android effect only support ogg
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#define MUSIC_BG "sound/music.mp3"
#define SFX_BOMB_FAIL "sound/bombFail.mp3"
#define SFX_BOMB_RELEASE "sound/bombRelease.mp3"
#define SFX_BOMB "sound/bomb.mp3"
#define SFX_HEALTH "sound/health.mp3"
#define SFX_FIRETRUCK "sound/fireTruck.mp3"
#else
#define MUSIC_BG "music.mp3"
#define SFX_BOMB_FAIL "bombFail.mp3"
#define SFX_BOMB_RELEASE "bombRelease.mp3"
#define SFX_BOMB "bomb.mp3"
#define SFX_HEALTH "health.mp3"
#define SFX_FIRETRUCK "fireTruck.mp3"
#endif
Về phần play sound, chúng ta sẽ sử dụng lại mã nguồn tương tự như game Air Hockey, lớp AudioUtils.
No comments:
Post a Comment