Tuesday, October 7, 2014

Cocos2d-x: Game Sky Defense (Phần cuối)


1.1 Action và Animation

1.1.1 Action


Mỗi Node trong Cocos2d-x có các thông tin thuộc tính về: position, rotation, scale, visibility, opacity. Action trong Cocos2d-x sẽ thay đổi một trong các thuộc tính này theo thời gian.

Trong file InGameScene.h


class InGameScene : public Layer

{

private:

      void createActions();

      void shockWaveFinish();

      void animationFinish(Node *sender);

private:

      Action *swingAction_;

      Action *shockwaveAction_;

      Action *growBombAction_;

      Action *rotateAction_;

      Action *groundHitAction_;

      Action *explosionAction_;

};

Cocos2d-x: Game Sky Defense (Phần 3)

1.1 Các Sprite trong lớp InGameScene

class InGameScene : public Layer

{

public:

      static Scene *createScene();

public:

      virtual bool init();

      CREATE_FUNC(InGameScene);

      ~InGameScene();

      virtual void onEnter();

. . .

}

Cocos2d-x: Game Sky Defense (Phần 2)


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.

Cocos2d-x: Game Sky Defense (Phần 1)

 1 Tổng quan

Phần này chúng ta tiếp tục phát triển game có tên là Sky Defense. Các thiên thạch sẽ rơi xuống từ bầu trời, phá hủy thành phố bên dưới, nhiệm vụ của người chơi là sẽ đặt bom phá hủy các thiên thạch này, bảo vệ thành phố.

Thursday, October 2, 2014

Cocos2d-x: Cấu hình Game AirHockey trên môi trường Android - Eclipse


Cấu hình Game AirHockey  trên Eclipse cho Android

- Chúng ta có thể tham khảo lại bài viết "Cocos2d-x: Làm game đầu tiên - Air Hockey" để nắm tiếp phần này.
- Mở lại dự án AirHockey mà ta đã Import ở các bài trước bằng Eclipse.

- Sau khi build dự án ta sẽ nhận được thông báo lỗi không tìm thấy các file class mà chúng ta định nghĩa thêm, ví dụ như: InGameScene chẳng hạn.




Wednesday, October 1, 2014

Cocos2d-x: Làm game đầu tiên - Air Hockey (Phần cuối)

1.1 Định nghĩa lớp InGameScene

- Màn hình game trong Cocos2d-x là các scene, do vậy chúng ta phải định nghĩa một scene cho game của mình.

- InGameScene, đây là lớp mang theo scene để chứa các đối tượng của game. Thông thường, chúng ta không cần phải định nghĩa một lớp scene riêng biệt mà ta sẽ chú trọng vào định nghĩa một lớp Layer (là vùng chứa thực sự) và trong lớp này có một hàm tĩnh khởi tạo ra scene chứa Layer này.

- Trong file InGameScene.h
#include <stdio.h>

#include "cocos2d.h"

using namespace cocos2d;

class InGameScene : Layer
{
public:
    static Scene* createScene();
   
public:
    virtual bool init();
   
    CREATE_FUNC(InGameScene);

};

Cocos2d-x: Làm game đầu tiên - Air Hockey (Phần 2)

1 Xây dựng game

1.1 Chuẩn bị môi trường và Resource

- Chúng ta sẽ phát triển game này cho iPad và iPad Retina, sử dụng IDE Xcode

- Resource
  • Âm thanh: các file âm thanh và nhạc nền cho game
  • Hình ảnh: ảnh của sân bóng, mallet, puck. Vì ta phát triển cho 2 loại kích thước nên sẽ có 2 thư mục ảnh sd và hd. Lưu ý khi add resource ảnh cho 2 thư mục này vào Xcode, không như add âm thanh hay font, chúng ta chỉ add tham chiếu 2 thư mục này để tránh bị báo lỗi trùng tên file bên trong 2 thư mục.


Cocos2d-x: Làm game đầu tiên - Air Hockey (Phần 1)

1 Tổng quan

Ở phần này chúng ta sẽ bắt đầu phát triển một game đơn giản để làm quen các bước lập trình với Cocos2d-x. Game chúng ta sẽ làm có tên là Air Hockey, mô phỏng một trò chơi khá phổ biến trong các siêu thị :)


Game này sẽ cho phép 2 người chơi, mỗi người điều khiển ở 1 nửa phần sân của mình để đánh bóng. Game sẽ được phát triển cho các dòng Tablet, mà ở phần này chúng ta sẽ tạm phát triển cho iPad và iPad retina. Qua game này chúng ta sẽ làm quen với các vấn đề sau:
  • Scene, Layer
  • Sprite
  • Vòng lặp Main loop
  • Xử lý Multi-touch
  • Âm thanh
  • Xử lý Multi-size