Trò chơi trắc nghiệm (bài 6)

07/10/2013 16:52

(e-CHÍP Online) Bạn đã cải tiến trò chơi trắc nghiệm trong Flash để có màn hình chào. Tính thử thách của trò chơi sẽ cao hơn nếu ta quy định thời hạn cho mỗi câu hỏi, 10 giây chẳng hạn.


Nghĩa là câu hỏi chỉ được hiển thị trong 10 giây. Quá thời hạn đó, nếu người chơi không trả lời (bấm vào một trong các lựa chọn), câu hỏi tiếp theo tự động xuất hiện.

Muốn vậy, ta cần có "đồng hồ bấm giây". Ta bấm cho đồng hồ chạy mỗi khi đưa ra câu hỏi và bấm cho đồng hồ dừng lại khi người chơi trả lời. Bạn mở lại tập tin Test.fla và mở lại cửa sổ Actions – Frame. Bạn chèn thêm hai câu lệnh mới bên trên định nghĩa hàm showQuestion, ở hai dòng 13 – 14. Câu lệnh 13 tạo ra "đồng hồ bấm giây" mang tên timer. Đặc điểm của đồng hồ timer là "đánh nhịp" sau mỗi 10 giây. Ở dòng 13, ta ghi trị số 10000 vì đơn vị được dùng là mi-li-giây (1/1000 giây). Câu lệnh dòng 14 quy định rằng cứ mỗi lần timer đánh nhịp, hàm nextQuestion được gọi để chuyển qua câu hỏi tiếp theo. Ta sẽ định nghĩa hàm nextQuestion sau.

Đồng hồ timer được tạo ra nhưng chưa hoạt động. Muốn timer bắt đầu đánh nhịp, bạn viết câu lệnh timer.start() ở cuối hàm showQuestion (dòng 30), sau khi câu hỏi được hiển thị xong. Câu lệnh như vậy tựa như thao tác bấm cho đồng hồ chạy. Một khi đồng hồ timer được bấm, cứ sau 10 giây, hàm nextQuestion lại được gọi để hiển thị câu hỏi tiếp theo.

Nếu người chơi trả lời bằng cách bấm vào lựa chọn nào đó, hàm check được gọi. Khi đó, ta phải bấm cho đồng hồ ngừng. Bạn thực hiện thao tác này bằng cách viết thêm câu lệnh timer.stop() trong hàm check (dòng 54).

Việc cuối cần làm là viết định nghĩa hàm nextQuestion để chuyển qua câu hỏi tiếp theo (dòng 71 – 77). Trong hàm nextQuestion, câu lệnh n++ (dòng 72) nhằm tăng thêm 1 cho số thứ tự câu hỏi. Sau đó, ta cần xét ngay xem n đã vượt quá số thứ tự của câu hỏi cuối hay chưa. Nếu chưa, ta gọi hàm showQuestion để hiển thị câu hỏi tiếp theo (dòng 76). Nếu đúng, ta gọi hàm check (dòng 74) để dừng chương trình. Vì hàm check được gọi trong trường hợp như vậy chỉ nhằm dừng chương trình nên câu đáp trống rỗng "" trao cho hàm check là để "cho có" mà thôi.

Với "đồng hồ bấm giây", trò chơi sẽ "gây cấn", hào hứng hơn. Nếu thấy rằng thời gian chờ 10 giây là quá ngắn đối với các bé trong nhà, bạn có thể sửa 10000 trong câu lệnh ở dòng 13 thành 20000 (20 giây) hoặc 30000 (30 giây).

NGỌC GIAO


Ý kiến bạn đọc (0)
Tên   Email

Lên đầu trang