Bỏ qua để đến nội dung

Lập trình game và hiệu ứng

Câu trò chơi/hoạt hình xuất hiện ở gần như mọi đề thi Tin học trẻ bảng A và thường là câu nhiều điểm nhất (25-40 điểm): hứng táo, mèo bắn bóng, rắn săn mồi, game làm toán… Chuyên đề này gồm 2 phần: ôn các kỹ thuật cốt lõi mà game nào cũng dùng, sau đó thực hành 5 hiệu ứng và 10 game hoàn chỉnh. Mỗi bài có mô tả, yêu cầu và video hướng dẫn từng bước.

Phần 1 - Lý thuyết: Các kỹ thuật cốt lõi khi làm game

Phần tiêu đề “Phần 1 - Lý thuyết: Các kỹ thuật cốt lõi khi làm game”

Mọi game đều chạy trong một vòng liên tục mãi: mỗi vòng kiểm tra phím bấm, di chuyển nhân vật, kiểm tra va chạm.

khi bấm vào @greenFlag
đi tới điểm x: (0) y: (-130)
liên tục
nếu <phím [mũi tên trái v] được bấm?> thì
  thay đổi x một lượng (-5)
end
nếu <phím [mũi tên phải v] được bấm?> thì
  thay đổi x một lượng (5)
end
end

Kiểm tra phím bên trong vòng lặp (dùng <phím [mũi tên trái v] được bấm?>) cho chuyển động mượt hơn nhiều so với khối sự kiện khi bấm phím [mũi tên trái v].

khi bấm vào @greenFlag
liên tục
đi tới [con trỏ chuột v]
end

Muốn nhân vật chỉ chạy ngang (như thanh hứng, thanh đỡ bóng), dùng đặt x bằng (tọa độ x con trỏ chuột) thay cho đi tới [con trỏ chuột v].

Chuyển động tự động và bật lại khi chạm cạnh

Phần tiêu đề “Chuyển động tự động và bật lại khi chạm cạnh”
khi bấm vào @greenFlag
đặt hướng bằng (lấy ngẫu nhiên từ (-180) đến (180))
liên tục
di chuyển (5) bước
bật lại nếu chạm cạnh
end

Vật xuất hiện ở vị trí ngẫu nhiên phía trên, rơi dần xuống; chạm đáy thì quay lại từ đầu.

khi bấm vào @greenFlag
đi tới điểm x: (lấy ngẫu nhiên từ (-220) đến (220)) y: (170)
liên tục
thay đổi y một lượng (-5)
nếu <(tọa độ y) < (-170)> thì
  đi tới điểm x: (lấy ngẫu nhiên từ (-220) đến (220)) y: (170)
end
end

Dùng <đang chạm [Mèo v]?> (chạm nhân vật khác), <đang chạm [cạnh v]?> (chạm mép sân khấu) hoặc <đang chạm màu (#000000)?> (chạm vùng màu, hay dùng cho tường, đường đua).

nếu <đang chạm [Mèo v]?> thì
thay đổi [điểm v] một lượng (1)
bắt đầu âm thanh [Pop v]
đi tới điểm x: (lấy ngẫu nhiên từ (-220) đến (220)) y: (170)
end

Tạo biến (điểm), (mạng) cho tất cả nhân vật, đặt lại giá trị khi bấm lá cờ. Đếm giờ bằng đặt lại đống hồ bấm giờ và (đồng hồ bấm giờ).

khi bấm vào @greenFlag
đặt [điểm v] thành (0)
đặt [mạng v] thành (3)
đặt lại đống hồ bấm giờ
đợi đến khi <<(mạng) = (0)> hoặc <(đồng hồ bấm giờ) > (60)>>
phát tin [Kết thúc v]

Bản sao (clone) - tạo nhiều vật cùng lúc

Phần tiêu đề “Bản sao (clone) - tạo nhiều vật cùng lúc”

Đạn, bong bóng, kẻ địch, đốm sáng… đều là bản sao của một nhân vật gốc (nhân vật gốc thường ẩn đi).

khi bấm vào @greenFlag
ẩn
liên tục
tạo bản sao của [bản thân tôi v]
đợi (1) giây
end

khi tôi bắt đầu là một bản sao
đi tới điểm x: (lấy ngẫu nhiên từ (-220) đến (220)) y: (170)
hiện
lặp lại cho đến khi <(tọa độ y) < (-170)>
thay đổi y một lượng (-4)
end
xóa bản sao này

Dùng thông điệp để các nhân vật “báo” cho nhau: bắt đầu màn chơi, qua màn, thua, thắng.

khi nhận [Kết thúc v]
đổi phông nền thành [Game Over v]
phát âm thanh [Lose v] đến hết
dừng lại [tất cả v]

thay đổi hiệu ứng [màu sắc v] một lượng (25), thay đổi hiệu ứng [bóng ma v] một lượng (5) (mờ dần), trang phục kế tiếp (hoạt ảnh chạy, bay), bắt đầu âm thanh [Pop v] (không chờ, game vẫn chạy tiếp) - các khối nhỏ này làm game và hiệu ứng trông “xịn” hơn hẳn.

Phần 2 - Thực hành: 5 hiệu ứng và 10 game

Phần tiêu đề “Phần 2 - Thực hành: 5 hiệu ứng và 10 game”

Nhiều quả bóng di chuyển trên sân khấu, chạm cạnh màn hình thì bật lại.

Yêu cầu:

  • Mỗi quả bóng xuất hiện ở vị trí và hướng ngẫu nhiên.
  • Bóng di chuyển liên tục, chạm cạnh thì bật lại.

Kiến thức dùng: chuyển động tự động, bật lại nếu chạm cạnh, số ngẫu nhiên, bản sao.

Thử thêm: mỗi lần bóng chạm cạnh thì đổi màu; bấm phím cách để thêm một quả bóng mới.

Xem hướng dẫn giải

Khi di chuyển chuột, nhân vật và các bản sao của nó nối đuôi nhau đi theo dấu chuột, trông như một con rắn đang bò.

Kiến thức dùng: đi tới [con trỏ chuột v], bản sao, liên tục.

Thử thêm: đuôi nhỏ dần và mờ dần về cuối; đuôi đổi màu cầu vồng.

Xem hướng dẫn giải

Chiếc đũa di chuyển theo chuột, để lại vệt lấp lánh phía sau.

Kiến thức dùng: điều khiển bằng chuột, bản sao, hiệu ứng thay đổi hiệu ứng [bóng ma v] một lượng (5), số ngẫu nhiên.

Thử thêm: chỉ phát ra vệt sáng khi đang giữ chuột (<chuột được nhấn?>).

Xem hướng dẫn giải

Pháo bay lên rồi nổ tung thành nhiều tia sáng nhiều màu, kèm âm thanh. Link tải âm thanh: Google Drive.

Kiến thức dùng: bản sao, hướng ngẫu nhiên, hiệu ứng màu sắc và bóng ma, âm thanh.

Thử thêm: bấm chuột ở đâu thì pháo nổ ở đó; hiện dòng chữ chúc mừng năm mới sau màn pháo hoa.

Xem hướng dẫn giải

Bài 5: Đồng hồ chạy theo thời gian thực

Phần tiêu đề “Bài 5: Đồng hồ chạy theo thời gian thực”

Đồng hồ kim có kim giờ, kim phút, kim giây chạy đúng theo giờ của máy tính. Tải mặt đồng hồ: mẫu 1 hoặc mẫu 2.

Kiến thức dùng: khối ([giây v] hiện tại), đặt hướng bằng (90), phép toán đổi giờ/phút/giây ra góc quay.

Thử thêm: thêm đồng hồ số (hiển thị dạng 08:05:30); điểm chuông mỗi khi tròn giờ.

Xem hướng dẫn giải

Trứng rơi ngẫu nhiên từ trên xuống, người chơi điều khiển giỏ để hứng. Đây là dạng game ra thi nhiều nhất (hứng táo, ngựa bắt bóng…).

Yêu cầu:

  • Giỏ di chuyển trái/phải bằng phím mũi tên.
  • Hứng được trứng thì cộng điểm, để rơi xuống đất thì mất lượt.
  • Hết lượt thì Game Over.

Kiến thức dùng: vật rơi, va chạm, biến điểm và mạng.

Thử thêm: trứng rơi nhanh dần theo điểm; thêm “trứng thối” - hứng phải thì trừ điểm.

Xem hướng dẫn giải

Thanh gỗ (paddle) đỡ quả bóng nảy trên sân khấu, để bóng rơi xuống đáy thì thua.

Kiến thức dùng: điều khiển ngang, bóng nảy, đổi hướng khi chạm thanh gỗ, âm thanh và nhạc nền, Game Over.

Thử thêm: chế độ 2 người chơi (W/S và mũi tên lên/xuống); bóng nhanh dần sau mỗi lần đỡ.

Xem hướng dẫn giải

Chú chim bay lên mỗi khi bấm phím, tự rơi xuống do trọng lực; vượt qua khe giữa các ống khói để ghi điểm. Tải hình ảnh, âm thanh: Google Drive.

Kiến thức dùng: mô phỏng trọng lực bằng biến vận tốc, ống khói là bản sao chạy từ phải sang trái với độ cao ngẫu nhiên, biến điểm, va chạm, Game Over, âm thanh.

Thử thêm: khe giữa hai ống hẹp dần; lưu điểm cao nhất.

Xem hướng dẫn giải

Bong bóng xuất hiện trên màn hình, người chơi bắn/bấm để làm vỡ chúng và ghi điểm.

Kiến thức dùng: bản sao, vị trí ngẫu nhiên, va chạm, biến điểm, âm thanh.

Thử thêm: giới hạn thời gian 30 giây; bong bóng màu đặc biệt được nhiều điểm hơn.

Xem hướng dẫn giải

Con rắn di chuyển liên tục theo 4 hướng, ăn mồi thì dài thêm, đâm vào tường hoặc vào thân mình thì thua. Dạng này từng ra ở đề thi Tin học trẻ cấp tỉnh.

Kiến thức dùng: điều khiển 4 hướng, mồi ở vị trí ngẫu nhiên, thân rắn dựng bằng bản sao (hoặc bút vẽ), va chạm.

Thử thêm: rắn nhanh dần sau mỗi lần ăn mồi; thêm chướng ngại vật trên sân.

Xem hướng dẫn giải

Bọ xuất hiện và bò trên màn hình, người chơi tiêu diệt bọ để ghi điểm.

Kiến thức dùng: bản sao cho bọ, chuyển động ngẫu nhiên, va chạm, biến điểm, Game Over.

Thử thêm: có nhiều loại bọ với số điểm khác nhau; qua màn khi đủ điểm.

Xem hướng dẫn giải

Game bắn súng: các hình khối lao tới, người chơi bắn đạn để phá hủy chúng. Tải nhân vật và phông nền: Google Drive.

Kiến thức dùng: đạn và kẻ địch đều là bản sao, va chạm giữa hai loại bản sao, biến điểm và mạng, thông điệp.

Thử thêm: thêm vật phẩm bắn 3 tia; kẻ địch “trùm” cần bắn nhiều phát mới chết.

Xem hướng dẫn giải

Điều khiển chú chuột lấy trứng và tránh bị bắt.

Kiến thức dùng: điều khiển bằng phím, va chạm, biến điểm, nhân vật đối thủ tự di chuyển.

Thử thêm: đối thủ đuổi theo chuột (hướng về phía đối tượng [Chuột v]); thêm màn chơi khó hơn.

Xem hướng dẫn giải

Lái xe vào đúng ô đậu mà không đâm vào chướng ngại vật. Tải nhân vật và phông nền: Google Drive.

Kiến thức dùng: điều khiển kiểu lái xe (tiến/lùi + xoay), va chạm theo màu, chuyển phông nền khi qua màn.

Thử thêm: giới hạn thời gian mỗi màn; tự thiết kế thêm một bãi đậu xe mới.

Xem hướng dẫn giải

Game chạy vô tận: chú thỏ chạy và nhảy qua chướng ngại vật. Đây là bài dài nhất, tổng hợp hầu hết kỹ thuật ở Phần 1.

Kiến thức dùng: hoạt ảnh bằng trang phục kế tiếp, nhảy bằng trọng lực, chướng ngại vật là bản sao, điểm số, Game Over.

Thử thêm: tốc độ tăng dần theo thời gian; thêm vật phẩm cà rốt để cộng điểm.

Xem hướng dẫn giải

Sau khi làm xong các bài trên, hãy thử sức với các câu trò chơi trong đề thi thật:

Khi làm bài thi, đọc kỹ bảng chấm điểm của đề: mỗi ý (nhân vật di chuyển đúng, có tính điểm, có Game Over…) được chấm riêng, nên hãy làm cho chạy được từng ý một trước, rồi mới thêm hiệu ứng cho đẹp.

Toàn bộ video trong chuyên đề nằm trong 2 playlist trên kênh Bumbii Academy: