Thứ Ba, 11 tháng 8, 2015

Một Số Lệnh Console Sử Dụng Trong Cocos2d-JS

Giới thiệu

-     Cocos2d-console là “command line tool” cho cocos2d-x và cocos2d-js. Bao gồm một vài lệnh cho lập trình viên để “create, compile, run” những project    “-x” hoặc “-js”.
-     Cocos2d-console chạy trên nền Python cho cả ba nền tảng Windows, Mac và Linux.
-     Yêu cầu để chạy cocos-console :
·      Python 2.7 (hiện giờ chỉ hỗ trợ cho Python 2.7)
·      Đối với iOS và Mac
o  Xcode
·      Đối với Android
o  Android NDK
o  Android SDK
o  Apache Ant
·      Đối với Win32
o  Visual Studio
-     Đối với Linux
o  Chạy lệnh build/install-deps-linux.sh trong cocos2d-x hoặc cocos2d-js.
-        Cú pháp
cocos [command] [arguments
-     Một số lệnh sẵn có
·      new
·      compile
·      deloy
·      run
·      jscompile
·      luacompile
-     Lưu ý
·      Các lệnh phụ thuộc được gọi trước.
·      Nếu lệnh A phụ thuộc lệnh B. Khi sử dụng lệnh A, những tham số mà bạn đã sử dụng đượ truyền qua lệnh B.

Ví dụ : lệnh run phụ thuộc lệnh deloy, và lệnh deloy phụ thuộc lệnh compile
            Thứ tự của các lệnh như sau : compile  -> deloy -> run
Nếu bạn sử dụng lệnh run như sau :
cocos run -p android --ndk-mode release (-p là thuộc tính của run,  --ndk-mode là thuộc tính của compile)
-     Cách thêm một lệnh vào cocos-console
Bước 1 : sửa nội dung file bin/cocos2d.ini, và thêm tên lớp của plugin mới ở đây. Ví dụ :plugin_custom.CCPluginCustom

Bước 2 : tạo file có tên plugin_custom.py trong thư mục  plugins. Và thêm nội dung vào file này. Ví dụ :


Bước 3 : chạy lệnh cocos –h (lệnh help) để xem kết quả
Bước 4 : chạy lệnh cocos cutom –p android để thực thi lệnh vừa thêm vào

Lệnh cocos compile

-     Dùng để build một project.
-    Cú pháp :

-     Tham số
·      Tham số thường dùng
Tham số
Giá trị
Ví dụ
Mô tả
Bắt buộc phải có
-h, --help


Hiện thông tin trợ giúp và thoát câu lệnh
Không
-s, --src
Đường dẫn project
./projects/GameCC2d
Chỉ ra đường dẫn của project
Không
-p, --platform
Platform khi compile
android
Chỉ ra platform nào bạn muốn compile
-m, --mode
Chế độ compile
release
Chọn chế độ compile giữa debug và release, mặc định là debug
Không
-j, --jobs
Số công việc thực hiện cùng lúc
3
Sử dụng n công việc chung một lúc, tham số này chỉ dùng cho android và linux
Không
-o,--output directory
Đường dẫn output
./release/android
Chỉ ra đường dẫn output cho project
Không
Bảng 0‑2 Tham số thông thường cho lệnh compile



·      Tham số cho Android
Tham số
Giá trị
Ví dụ
Mô tả
Bắt buộc phải có
--ap
Thư mục tại đường dẫnANDROID
_SDK_
ROOT/platforms
android-21
Chỉ ra API-Level của Android SDK. Nếu không chỉ rõ thì console sẽ tự chọn
Không
--ndk-mode
Chế độ compile của ndk
.release
Chỉ ra chế độ compile của ndk là một trong ba giá trị{debug, release,  none}. Nếu là none thì sẽ không compile. Giá trị mặc định giống với giá trị của tham số -m
Không
Bảng 0‑3 Tham số lệnh compile cho Android
·      Tham số cho iOS/Mac
Tham số
Giá trị
Ví dụ
Mô tả
Bắt buộc phải có
-t, --target
Target Name trong Xcode
MyGame
Chỉ ra tên target khi compile
Không
Bảng 0‑4 Tham số lệnh compile cho iOS/Mac
·      Tham số cho iOS
Tham số
Giá trị
Ví dụ
Mô tả
Bắt buộc phải có
--sign-identity
code sign identity
iPhone Distribution:xxxxxxxx
Chỉ ra sign identity cho iOS
Không
Bảng 0‑5 Tham số lệnh compile cho iOS



-      Ví dụ
·      cocos compile -h.  Hiện thị thông tin giúp đỡ
·      cocos compile -s ./project/MyGame -p android --ndk-mode release. build MyGame cho Android với ndk-build là release
·      cocos compile -s /project/MyGame -p ios -m release --sign identity "iPhone Distribution:xxxxxxxx". build MyGame cho iOS với chế độ release, sử dụng code sign identity là "iPhone Distribution:xxxxxxxx" 

Lệnh Deploy project Cocos2d


-      Dùng để deploy một project đến một target
-      Cú pháp

-       
-      Lệnh phụ thuộc
·      compile
-      Tham số
Tham số
Giá trị
Ví dụ
Mô tả
Bắt buộc phải có
-h, --help


Hiện thông tin trợ giúp và thoát câu lệnh
Không
-s, --src
Đường dẫn project
./projects/GameCC2d
Chỉ ra đường dẫn của project
Không
-p, --platform
Platform khi compile
android
Chỉ ra platform nào bạn muốn compile
-m, --mode
Chế độ compile
release
Chọn chế độ compile giữa debug và release, mặc định là debug
Không
Bảng 0‑6 Tham số lệnh deploy
-      Lưu ý
·      Hiện nay lệnh này chỉ hỗ trợ Android. Lệnh deploy sẽ cài đặt lại project lên thiết bị Android hoặc máy ảo
-     Ví dụ
·      cocos deploy -h. hiển thị thông tin giúp đỡ

·      cocos deploy -s ./projects/MyGame -p andoird -m release. deploy MyGame trên thiết bị Android hoặc máy ảo

Lệnh new project Cocos2d-x

-      Dùng để tạo mới project -x hoặc -js
-     


Cú pháp
-      Tham số
Tham số
Giá trị
Ví dụ
Mô tả
Bắt buộc phải có
-h, --help


Hiện thông tin trợ giúp và thoát câu lệnh
Không
-p, --package
cú pháp *.*.*
com.company.packagename
Đặt tên package cho project. Giá trị mặc định giống với tên template
Không
-l, --language
{cpp, lua, js}
cpp
Chỉ ra ngôn ngữ dùng cho project
-d, --directory
môt đường dẫn
./projects/
Chỉ ra đường dẫn nơi chứa project sau khi tạo ra, mặc định là đường dẫn hiện tại
Không
-t,--template
tên template
default
Đặt tên template mà bạn muốn tạo, giá trị mặc định là default
Không
-e, --engine path
một đường dẫn
/User/cocos2d-x
Chỉ ra đường dẫn chứa cocos2d-x/cocos2d-js egine
Không
--mac-bundleid
chuỗi mac bundleid
com.company.macbundleid
Chỉ ra bundle id cho mac project.
Không
--ios-bundleid
chuỗi mac bundleid
com.company.iosbundleid
Chỉ ra bundle id cho ios project.
Không
Bảng 0‑7 Tham số lệnh new
-      Ví dụ
·      cocos new -h. hiển thị thông tin giúp đỡ
·      cocos new -l cpp -p com.cocos2dx.mygame -d ./projects MyGame. các thuộc tính của câu lệnh này là
o  Tên package là com.cocos2dx.mygame
o  Tên thư mục chứa project là /projects
o  Tên project là MyGame

Lệnh run project Cocos2d-x

-      Dùng để compile và deploy project, sau đó chạy project
-     


Cú pháp
-      Lệnh phụ thuộc
·      deploy
-      Tham số
Tham số
Giá trị
Ví dụ
Mô tả
Bắt buộc phải có
-h, --help


Hiện thông tin trợ giúp và thoát câu lệnh
Không
-s, --src
Đường dẫn project
./projects/GameCC2d
Chỉ ra đường dẫn của project
Không
-p, --platform
Platform khi compile
android
Chỉ ra platform nào bạn muốn compile
-m, --mode
Chế độ compile
release
Chọn chế độ compile giữa debug và release, mặc định là debug
Không
Bảng 0‑8 Tham số lệnh run
-      Lưu ý
·      Hiện nay lệnh này không hỗ trợ iOS với tham số -m, mode là release
-     Ví dụ
·      cocos run -h. hiển thị thông tin giúp đỡ
·      cocos run -s ./projects/MyGame -p andoird -m release. build MyGame với chế độ release và chạy trên thiết bị Android hoặc máy ảo

Kết luận

Cocos2d là Engine phát triển game hỗ trợ không những trên Mobile mà còn trên web HTML5. Nên làm quen với Cocos2d phiên bảng 3.7 giúp các lập trình viên có thể tạo 1 game dạng đa nền tảng không những trên Mobile mà còn có thể tạo project game HTM5 để chạy trên nền web một cách dễ dàng.
Link tham khảo: http://cocos2d-x.org/products

Thứ Bảy, 8 tháng 8, 2015

Cài Đặt Cocos2d-js Và Tạo Project HelloWorld

Giới thiệu

Cocos2d là Engine phát triển game đa nền tảng được sử dụng khá rộng rãi. Từ phiên bảng Cocos2d V3.7, Cocos2d-x và Cocos2d-js đã được hợp nhất lại một. Giúp việc phát triển game đa nền tảng trở nên rất tiện lợi. Đặc biệt là phát triển 1 phiên bảng game trên nền tảng Web bằng HTML5.
Làm quen với làm game nền tảng web HTML5 sử dụng Engine Cocos2d-x. Đặc biệt dễ tiếp cận đối với bạn nào đã được tiếp cận Cocos2d-x trước. 
Cocos2d là Engine khá dễ dàng tiếp cận đối với các bạn yêu thích lập trình và lập trình game. Đặc biệt sẽ rất quen thuộc với các bạn đã từng làm game với Cocos2d-x.

Chuẩn bị

Download Cocos2d phiên bảng 3.7: http://cocos2d-x.org/download

Tạo project HelloWorld

Lệnh tạo project trên CMD:

Sau khi tạo project thành công

Lệnh build project dạng web 

Hoặc build dạng Release để xuất ra source web HTML5 trong thư mục publish

Source web HTML5 sau khi build release 

Run project với CMD

Game HelloWorld Với Cocos2d-JS


  Build bảng mobile


So sánh cấu trúc project C++ với JavaScript

Cấu trúc project với ngôn ngữ JavaScript ở phiên bảng 3.7

Cấu trúc project với ngôn ngữ C++ ở phiên bảng 3.7

Có thể thấy ở phiên bảng 3.7 cấu trúc project Cocos2d tạo ra rất đa dạng.

Kết luận

Cocos2d là Engine phát triển game hỗ trợ không những trên Mobile mà còn trên web HTML5. Nên làm quen với Cocos2d phiên bảng 3.7 giúp các lập trình viên có thể tạo 1 game dạng đa nền tảng không những trên Mobile mà còn có thể tạo project game HTM5 để chạy trên nền web một cách dễ dàng.
Link tham khảo: http://cocos2d-x.org/products

Thứ Năm, 25 tháng 6, 2015

Câu hỏi phỏng vấn Android

Chắc các bạn trước khi đi phỏng vấn đều chuẩn bị hành trang tốt nhất cho mình. Dưới đây mình có tổng hợp một số câu hỏi phỏng vấn Android dành cho các bạn chuẩn bị theo hành trang khi phỏng vấn Android nhé.

Bài viết tổng hợp một số câu hỏi phỏng vấn vị trí Junior Android Developer được các leader thường xuyên hỏi các ứng viên. Chi tiết như dưới đây:

1.     Khi nào method onResume() được gọi?

onResume() là một trong những activity lifecycle method. Nó được gọi khi activity hiển thị dưới dạng foreground.
2.     Làm thế nào để khởi chạy một Activity bên trong ứng dụng?

Để khởi động một activity, bạn cần sử dung một explicit intent với đích đến là một activity cụ thể. Ví dụ như sau:


  Intent intent = new Intent(this, OtherActivity.class);
startActivity(intent);
2.     Làm thế nào để cài đặt activity là launcher activity cho ứng dụng?

Tất cả activity trong ứng dụng đều được định nghĩa trong file Manifest. Đối với launcher activity, cần phải định nghĩa intent-filter như sau:


 android:name=".MyActivity"
                android:label="@string/app_name">
          
               android:name="android.intent.action.MAIN" />
               android:name="android.intent.category.LAUNCHER" />
       
3.   ANR là gì?

ANR viết tắt của Application Not Responding. Nếu ứng dụng thực hiện quá nhiều task trên main thread và không phản hồi trong một thời gian dài, Android system sẽ hiển thị là dialog này.
4.   Các giải pháp để tránh ANR là gì?

ANR trong ứng dụng sẽ gây khó chịu cho người dùng. Nó có thể được gây ra do các nguyên nhân khác nhau. Dưới đây là một số lời giải pháp để tránh ANR:
- Thực hiện các task vụ về network, data trên những thread riêng biệt.
- Nếu ứng dụng có quá nhiều task ngầm, nên sử dụng IntentService.
- Định mức HTTP time out khi có những task liên quan đến remote server.
- Hãy cảnh giác của vòng lặp vô hạn trong tính toán phức tạp trong ứng dụng.
5.    Làm thế nào để chia sẻ văn bản bằng cách sử dụng intent trong Android?

Share intent là một cách dễ dàng và thuận tiện trong việc chia sẻ nội dung của ứng dụng của bạn với các ứng dụng khác.


Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(sendIntent);
6.   WebView trong Android là gì?

Một WebView là một thành phần giao diện người dùng Android dùng để hiển thị trang web. Nó có thể vừa hiển thị một trang web từ xa hoặc cũng có thể tải dữ liệu HTML tĩnh. Điều này bao gồm các chức năng của một trình duyệt có thể được tích hợp vào ứng dụng. WebView sử dụng WebKit rendering engine để hiển thị các trang web và bao gồm các phương pháp để di chuyển về phía trước và trở lại thông qua một lịch sử, phóng to thu nhỏ, vv.
7.   Các dạng context trong Android?

Context xác định tình trạng hiện tại của ứng dụng hoặc đối tượng. Nó cung cấp nhiều tính năng hữu ích như new activity instance, access databases, start a service,... Bạn có thế sử dụng các cách sau để lấy ra context:getApplicationContext(), getContext(), getBaseContext() or this trong activity hiện tại.

//Creating ui instance
ImageButton button = new ImageButton(getContext());

//creating adapter
ListAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), ...);

//querying content provider
getApplicationContext().getContentResolver().query(uri, ...);

//start activity. Here this means activity context
Intent intent = new Intent(this, SecondActivity.class);
8.   Cách thức lưu trữ dữ liệu trong Android?

 còn tiếp . . . 

Thứ Ba, 19 tháng 5, 2015

Visual Studio 2015 Cross Flatform Mobile Development

Visual Studio 2015 phiên bản sản phẩm mới được công bố, bao gồm Visual toàn mới Studio Enterprise với MSDN, Visual Studio Professional với MSDN, và Visual Studio phiên bản cộng đồng miễn phí - đến cuối năm nay.
Visual Studio 2015


  • Công cụ và dịch vụ cho các dự án của bất kỳ kích thước hoặc phức tạp
  • C #, Visual Basic, F #, C ++, Python, Node.js và HTML / JavaScript
  • Xây dựng cho iOS, Android, các thiết bị Windows, Windows Server hoặc Linux
  • Gỡ lỗi chi tiết, hồ sơ, tự động và kiểm tra thủ công
  • DevOps với các triển khai tự động và giám sát liên tục
Download: VS 2015

Viết ứng dụng đa nền tảng trên Visual Studio 2015 build được ứng dụng iOS, Android, Winphone 8
Cross Flatform Mobile Development

Thứ Hai, 11 tháng 5, 2015

Lập trình game trên mobile - Android - iOS - WinPhone

Dành cho các bạn đam mê lập trình game và muốn theo nghề lập trình game.
Yêu cầu cần có kiến thức cơ bản về lập trình, cơ bản Lập trình hướng đối tượng.

Ngôn ngữ sử dụng để viết game:
  • Android: Java (sủ dụng Engine Libgdx hoặc AndEngine )
  • iOS: Swift (sủ dụng Engine SpriteKit)

  • Đa nền tảng ( Android, iOS, Winphone, Win8, ...): C/C++  ( sử dụng Engine Cocos2d-x )
Kiến thức liên quan: OpenGL, kiến thức vật lý, cấu trúc file .json

Phát triển Game sử dụng Engine để build đa nền tản( Sử dụn 1 ngôn ngữ để viết code ở 1 project core sau đó build qua các nền tảng khác ( Android, iOS, Winphone, Win8, ...))
Sử dụng Engine để làm game đa nền tảng
Xem chi tiết các nội dung cần tìm hiểu:


CHƯƠNG TRÌNH LẬP TRÌNH GAME TRÊN ANDROID

1.      Giới thiệu về OpenGL trên Android, kỹ thuật đồ họa 2D,3D trên Android (2 buổi)
2.      Mô hình kiến trúc Lập trình Game (1 buổi)
3.      Các ý tưởng lập trình Game (1 buổi)
4.      Giới thiệu các thư viện sử dụng lập trình game trên Android (2 buổi)
5.      Làm việc với AndEngine để lập trình game (4 buổi)
6.      Nguyên tắc sử dụng Engine, Scene trong việc lập trình Game (2 buổi)
7.      Các đối tượng trên Game, Sprite, AnimatedSprite, Layer,Particle, Shape, Text (3 buổi)
8.      Audio trên Game (1 buổi)
9.      Nguyên tắc va chạm, chuyển động khi lập trình game (2 buổi)
10.  Sử lý hình ảnh trên Game (2 buổi)

11.  Viết các game cơ bản (3 buổi)

CHƯƠNG TRÌNH LẬP TRÌNH GAME ĐA NỀN TẢN ( ANDROID, IOS, WINPHONE, WIN 8 )  SỬ DỤNG ENGINE COCOS2D-X
Engine Cocos2d-x

1.      Ôn tập kiến thức C/C++ và lập trình hướng đối tượng (2 buổi)
2.      Mô hình kiến trúc Lập trình Game (1 buổi)
3.      Các ý tưởng lập trình Game (1 buổi)
4.      Giới thiệu Engine Cocos2d-x (2 buổi)
5.      Làm việc với Engine Cocos2d-x để lập trình game (4 buổi)
6.      Nguyên tắc sử dụng Engine, Scene trong việc lập trình Game (2 buổi)
7.      Các đối tượng trên Game, Sprite, AnimatedSprite, Layer,Particle (3 buổi)
8.      Audio trên Game (1 buổi)
9.      Nguyên tắc va chạm, chuyển động khi lập trình game (2 buổi)
10.  Sử lý hình ảnh trên Game (2 buổi)
11.  Viết các game cơ bản (3 buổi)

BẠN NÀO CÓ NHU CẦU TÌM HIỂU LÀM GAME CÓ THỂ COMMENT DƯỚI BÀI VIẾT NHÉ <3  AD page Học Lập Trình
Các bạn comment ở dưới bài viết để trao đổi nhé :D

Chủ Nhật, 3 tháng 5, 2015

Internet of Things

1. Khái niệm Internet of Things
              Internet of Things (IoT) là một kịch bản của thế giới, khi mà mỗi đồ vật, mỗi đồ vật, con người được cung cấp một định danh của riêng mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một mạng duy nhất mà không cần đến sự tương tác trực tiếp giữa người với người, hay người với máy tính. IoT đã phát triển từ sự hội tụ của công nghệ không dây, công nghệ vi cơ điện tử và Internet.
Khái niệm Internet of things


 2. Xu hướng của thế giới Internet of Things
 Như vậy có thể tạm hiểu, Internet of Things là khi tất cả mọi thứ đều được kết nối với nhau qua mạng Internet, người dùng (chủ) có thể kiểm soát mọi đồ vật của mình qua mạng mà chỉ bằng một thiết bị thông minh, chẳng hạn như smartphone, tablet, PC hay thậm chí chỉ bằng một chiếc smartwatch nhỏ bé trên tay.
Xu hướng của thế giới với Internet of Things

* Các giao thức giao tiếp không dây trong thế giới IoT được thiết kế để thỏa mãn các yêu cầu cơ bản: 
Tiêu tốn ít năng lượng cho việc thu/phát sóng, 
Tiêu tốn ít băng thông (để giảm gánh nặng cho router wireless và hệ thống mạng), hoạt động trong mạng mắt lưới…

* Một số thiết bị sẽ giao tiếp qua:
 -   Wi-fi
 -   Bluetooth,
 -   NFC
 -   Nhưng đa phần sẽ tận dụng các kết nối sử dụng dải tần của mạng không dây.
3. Ứng dụng của Internet of Things


  •               Dùng iPhone mở khóa MacBook:
              Knock, được phát triển bởi Knock Software Inc và đang bán trên Apple Store với giá 3.99 USD. 
           Công dụng của Knock là giúp bạn dùng iPhone để unlock (mở khóa) MacBook bằng cách cầm iPhone gõ hai cái lên đâu đó. 

  •       Nhà thông minh (Smart Home)
Ứng dụng BLE để điều khiển máy lạnh, TV, đèn, máy giặt… nói chung là mọi thiết bị trong ngôi nhà của bạn. Biến chiếc mobile của bạn thành chiếc remote đa năng, điều khiển đủ mọi thứ trong nhà và thậm chí không cần điều khiển, đèn vẫn có thể tự tắt.
ĐTDĐ của các bạn sẽ cần cài đặt một phần mềm để làm trung tâm điều khiển, 
Cứ mỗi thiết bị cần điều khiển sẽ gắn một thiết bị ngoại vi 
Cài đặt lệnh cho từng thiết bị ngoại vi ấy như là bấm lệnh gì thì thiết bị nào sẽ thực thi điều gì .
Không thì toàn bộ thiết bị điện trong nhà sẽ tắt hết, trừ tủ lạnh, chẳng hạn.
7. Hướng dẫn tìm hiểu Internet of things
http://www.intel.com/content/www/us/en/internet-of-things/overview.html
http://www.arduino.cc/
- http://www.visualmicro.com/ 
5. Xây dựng ứng dụng đầu tiên
Thiết kế xe điều khiển từ xa qua bluetooth
Xe điểu khiên bằng bluetooch
Cập nhập sau :)