Tôi cũng đang làm một hướng dẫn cho trò chơi flash của mình và đây là cách tôi thiết lập nó. Mỗi phần của trò chơi kiểm tra một đối tượng Hướng dẫn để kiểm tra xem liệu một hành động có sẵn cho người chơi thực hiện hay không. Nếu mô-đun hướng dẫn không tồn tại hoặc không hoạt động, thì chúng tôi có thể giả định rằng người chơi có thể làm bất cứ điều gì.
Ví dụ, sử dụng trò chơi Sim City của bạn, giả sử rằng khi hướng dẫn bắt đầu, bạn không muốn người chơi có thể làm bất cứ điều gì cho đến thời điểm thích hợp. Bạn có thể có các cờ trong đối tượng hướng dẫn của mình như, PLAYER_CAN_USE_TOOLebar, PLAYER_CAN_SWITCH_VIEWS hoặc PLAYER_CAN_DESIGNATE_ZONE, v.v ... đều được đặt thành FALSE. Khi người chơi bước qua hướng dẫn của bạn, bạn có thể bắt đầu đặt các cờ đó thành đúng.
Đối với phần UI của bạn, hãy chặn tín hiệu cho mô hình hoặc bộ điều khiển thực sự thực hiện hành động nếu cờ hướng dẫn của bạn không được đặt:
// If our tutorial module/tracker exists, but the action flag is set to false
// then leave our method early
if (mTutorial.isActive() && !mTutorial.checkFlag(PLAYER_CAN_DESIGNATE_ZONE)) {
return false;
}
//Do the rest of the action here
Để mong muốn các sự kiện cụ thể, bạn có thể chuyển sự kiện trở lại vào đối tượng hướng dẫn của mình để xác thực đó là những gì người chơi cần làm để tiếp tục bước hướng dẫn đó. Ví dụ: nếu bạn cần người chơi tạo khu dân cư tại một X, Y cụ thể:
var evt:GameEvent = new GameEvent(EVENT_CREATE_ZONE, ZONE_TYPE_RESIDENTIAL, startX, startY, endX, endY);
if (mTutorial.isActive()) {
if (!mTutorial.checkFlag(PLAYER_CAN_DESIGNATE_ZONE)) {
return false;
}
//Check to see if this event is okay
if (!mTutorial.validateEvent(evt)) {
//Show why the player can't do this via popup
return false;
}
}
//Do the rest of the action here
Tôi hy vọng điều đó đã giúp. Thật không may, bạn sẽ phải thêm các kiểm tra hướng dẫn vào mã cũ của bạn để làm việc này. Nhưng bằng cách giả định rằng tất cả các hành động là hợp lệ trừ khi đối tượng hướng dẫn tồn tại sẽ giảm bớt quá trình tích hợp này và cho phép bạn giảm thiểu các lỗi của mình.