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

15/09/2013 21:50

(e-CHÍP Online) Nhằm thực hiện trò chơi trắc nghiệm, bạn đã viết những câu lệnh trong Flash để hiển thị câu hỏi đầu tiên. Ta hãy tính đến khâu tiếp theo: thao tác trả lời câu hỏi.


Để người chơi trả lời câu hỏi, chương trình phải cho phép người chơi bấm vào một lựa chọn (a, b, c hoặc d), kiểm tra xem lựa chọn đó đúng hay sai, quyết định cộng thêm điểm hoặc không và hiển thị câu hỏi tiếp theo.

Trong cửa sổ thời tuyến (timeline) của Flash (ngay dưới thanh trình đơn), bạn bấm vào khung 1 của lớp Layer 1 (chỗ có chữ a nhỏ, cho biết có mã chương trình ActionScript), gõ phím F9 để mở lại cửa sổ Actions – Frame, nơi chứa những câu lệnh đã viết. Bạn viết thêm các dòng từ 23 đến 46 như hình sau.

Bốn câu lệnh ở bốn dòng từ 23 đến 26 quy định rằng khi người dùng bấm vào khung chữ mang tên a, b, c hoặc d thì gọi hàm tương ứng: hàm fa, fb, fc hoặc fd. Các dòng 27 – 38 nhằm định nghĩa các hàm fa, fb, fc, fd. Các hàm như vậy chỉ làm một việc đơn giản: gọi hàm check và trao cho hàm check đối mục "a", "b", "c", "d". Nghĩa là cho hàm check biết được người chơi đã bấm vào lựa chọn nào.

Các dòng 39 – 46 nhằm định nghĩa hàm check. Ở dòng đầu của hàm check (dòng 40), ta đặt ngay điều kiện: nếu số thứ tự n của câu hỏi nhỏ hơn số câu hỏi thì tiếp tục xem xét. Nghĩa là nếu điều kiện đó không thỏa thì không làm gì cả, người chơi đã trả lời câu hỏi cuối cùng. Bạn nhớ, số thứ tự n bắt đầu từ 0, chứ không phải từ 1. Khi số thứ tự n nhỏ hơn số câu hỏi, các câu lệnh 41 – 44 được thực thi. Câu lệnh ở hai dòng 41 – 42 nêu một điều kiện khác: nếu nút con 5 trong câu hỏi đang xét, tức q[5], giống với lựa chọn của người chơi (người chơi trả lời đúng) thì trị số của biến s tăng thêm 1 và trị số ấy được đưa vào khung chữ mang tên score (hiển thị điểm). Hai dấu cộng được viết trước tên biến s nhằm thực hiện thao tác: tăng trị số của s thêm 1 trước khi trị số của s được đưa vào khung chữ score. Câu lệnh dòng 43 nhằm tăng số thứ tự n thêm 1. Câu lệnh dòng 44 gọi hàm showQuestion. Một khi số thứ tự n đã tăng thêm 1, hàm showQuestion sẽ hiển thị câu hỏi tiếp theo. Bạn ấn Ctrl + Enter để kiểm tra.

Khi người chơi bấm vào lựa chọn nào đó ở câu hỏi cuối cùng, câu hỏi đó vẫn được hiển thị dù trò chơi kết thúc. Hợp lý hơn, ta nên làm cho câu hỏi cuối biến đi sau khi người chơi trả lời. Bạn trở lại cửa sổ Actions – Frame. Trong định nghĩa hàm check, bạn viết thêm các dòng 46 – 52 như hình sau.

Những dòng vừa viết thêm là câu lệnh nêu điều kiện: nếu số thứ tự n bằng số câu hỏi, nội dung của các khung chữ question, a, b, c, d sẽ thay đổi. Câu lệnh ở dòng 47 (question.text = "Trò chơi kết thúc.";) thay thế câu hỏi cuối cùng trong khung chữ question bằng câu thông báo "Trò chơi kết thúc.". Các câu lệnh 48 – 51 có tác dụng xóa trống các khung chữ a, b, c, d.

Ngoài ra, bạn nên thêm hình nền trang trí. Đóng cửa sổ Actions - Frame, bạn ấn Ctrl + R, tìm chọn tập tin hình thích hợp trong thư mục nào đó. Khi hình xuất hiện, bạn điều chỉnh kích thước của nó trong hai ô W và H của cửa sổ Properties. Theo kích thước mặc định của sân khấu Flash, bạn gõ 550 vào ô W và gõ 400 vào ô H. Bạn nhập trị số 0 vào hai ô X và Y bên cạnh để quy định vị trí góc trên, bên trái của hình. Nhờ vậy, hình vừa khít với sân khấu. Bấm-phải vào hình, bạn chọn Arrange > Send to Back để hình được đặt bên dưới các khung chữ.

Nếu hình đậm màu, bạn cần làm cho màu nhạt đi để dễ đọc các dòng chữ. Muốn vậy, bạn bấm vào công cụ Selection Tool, gõ phím F8. Trong cửa sổ Convert to Symbol, bạn bấm OK. Thao tác này chuyển hình được chọn thành nhân vật trong Flash (symbol), nhờ vậy bạn mới có thể điều chỉnh hình một cách tinh tế. Trong cửa sổ Properties, bạn bấm vào ô Color, chọn Alpha. Bấm kép vào ô Alpha Amount kế bên, bạn gõ 50 và gõ Enter. Độ đục của hình chỉ còn 50%. Bạn ấn Ctrl + Enter để xem thử câu hỏi hiển thị trên hình nền đã rõ chưa. Nếu chưa, bạn tiếp tục giảm độ đục của hình nền.

Bạn thử trả lời các câu hỏi trắc nghiệm dưới đây bằng cách bấm vào một trong các lựa chọn a, b, c hoặc d. Qua đó, bạn hình dung rõ ràng cách hoạt động của chương trình trắc nghiệm.


NGỌC GIAO

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

Lên đầu trang