Bài 4. Thêm các khối
Bây giờ đã đến lúc ta thêm các khối vào trò
chơi. Trước khi thêm các khối, cần phải nhớ rằng chúng có những đặc điểm như
sau:
- Bạn sẽ nhận điểm khi chúng bị phá hủy.
- Chúng sẽ bị hủy nếu va chạm với quả bóng.
- Một vài khối có hiệu ứng đặc biệt khi bị hủy.
Chúng ta phải ghi nhớ những điều này khi tạo các
khối. Có rất nhiều hình dạng khối mà ta có thể sử dụng trong asset (tải ở www.construct2vn.ga), nhưng để đơn giản, ta sẽ sử dụng hình dạng chữ nhật.
Ta sẽ phân loại chúng dựa trên màu sắc của chúng:
- Khối xanh dương là khối bình thường, không có hiệu ứng đặc biệt, biến mất sau 1 lần va chạm.
- Khối màu tím thì cần 2 lần va chạm và cũng không có hiệu ứng đặc biệt.
- Khối xanh lá cây sẽ bị hủy sau 1 lần chạm nhưng sẽ được thêm điểm.
- Khối màu đỏ bị phá hủy sau 1 lần chạm và cho thêm sinh mạng.
- Các khối màu vàng giúp tăng giới hạn thời gian.
Hãy thêm các khối vào layout của chúng ta, chèn
một sprite object mới cùng với những khối và tên của nó. Trong cửa sổ chỉnh sửa
hình ảnh, tải một sprite hình chữ nhật màu xanh. Chúng ta cũng tải các màu khác
vào object này để dễ dàng thiết lập chúng và có thể thay đổi chúng khi game
đang chạy thử. Chúng ta có thể làm điều này bằng cách thêm những hoạt ảnh mới
cho object này.
Kích
chuột phải vào cửa sổ Animations và
lựa chọn Add Animations để thêm hoạt
ảnh mới, đổi tên của nó thành purple
và cho hình ảnh hình chữ nhật màu tím vào hoạt ảnh này. Hãy đảm bảo rằng bạn
kích vào hoạt ảnh này đầu tiên trước khi thêm một hình ảnh vào nó vì C2 luôn lựa
chọn tự động mặc định hoạt ảnh khi bạn thêm những hoạt ảnh mới. Lặp lại điều
này với các màu khác cho đến khi bạn có đủ các yêu cầu về hoạt ảnh.
Đóng cửa sổ chỉnh sửa hình ảnh và ta đã có đủ
object khối trên layout của chúng ta. Tiếp theo chúng ta sẽ thêm 3 instance
variables (biến thực thể) để thể hiện những đặc tính của object này:
- Đầu tiên, thêm một instance variable tên là score với giá trị mặc định là 100, nó sẽ thêm điểm mỗi lần khối bị phá vỡ.
- Thứ hai, thêm health instance variable với giá trị mặc định là 1, cái này miêu tả cần va chạm bao nhiêu lần với quả bóng thì khối sẽ bị hủy.
- Cuối cùng, thêm effect instance variable và để giá trị ban đầu là 0, chúng ta sẽ thao tác cái này sau khi ta thêm những hiệu ứng đặc biệt vào khi khối bị phá vỡ.
1. Phá hủy các khối
Bạn có thể cảm thấy ban đầu hơi khó khăn, nhưng
đừng lo, tôi sẽ giải thích một cách dễ hiểu nhất. Bây giờ ta sẽ dùng biến thực
thể để xác định xem khối nào cần phá hủy. Nhưng trước tiên hãy đặt các khối vào
vị trí trong layout như sau:
Trước tiên chúng ta sẽ khiến các khối va chạm với
quả bóng và phá hủy chúng. Giống như areaBorder
object, chúng ta sẽ thêm hành vi Solid
vào các khối. Điều này sẽ khiến quả bóng đập vào các khối, nhưng sẽ không tiêu
diệt chúng. Để phá hủy chúng, chúng ta sẽ trừ sinh mạng của chúng đi sau mỗi lần
va chạm, sau đó ta sẽ kiểm tra xem sinh mạng của nó về 0; nếu như thế, ta sẽ
phá hủy chúng. Dịch nhưng cái này sang dang code, bạn có có 2 dòng code mới. Đầu
tiên là:
Thứ
hai là :
Nếu bạn test thử bây giờ, bạn sẽ thấy gameplay
cơ bản của trò chơi, bạn có thể di chuyển tấm ván để đẩy quả bóng và phá hủy
các khối.
WAITING FOR LUV
Bạn có muốn cải thiện khả năng thiết kế đồ họa của mình? Chắc hẳn các bạn cũng biết, nếu các dòng code là linh hồn của một trò chơi, thì đồ họa chính là bộ mặt của trò chơi đó. Đồ họa đẹp, dễ nhìn sẽ khiến trò chơi của bạn tăng tỉ lệ hấp dẫn người xem đến 90%. Hiện tại có hai công cụ hỗ trợ thiết kế đồ họa game tiện nhất mà mình biết, đó là Photoshop và Illustrator. Mình sẽ cố gắng tìm kiếm và chia sẻ các đồ họa game miễn phí cho các bạn tại blog này; tuy nhiên,
một trò chơi mà 100% do chính mình tạo ra vẫn hơn là đi cóp nhặt hình ảnh từ nơi khác đúng không nào. Tiện đây, mình có chia sẻ một khóa học thiết kế đồ họa Game 2D cho Mobile. Các bạn có thể tham khảo dưới đây để được giảm 40% học phí nhé.
2. Thiết lập các khối đặc biệt
Bây giờ, chúng ta sẽ thiết lập các khối đặc biệt
ở cấp độ đầu. Có hai cách để làm điều này: để nó ngẫu nhiên hoặc xác định nó bằng
tay. CHúng ta sẽ làm điều này bằng tay vì trò chơi này dựa trên cấp độ. Để làm
điều này, trước hết chúng ta thêm một biến thực thể vào các khối gọi là blockColor và để lại giá trị ban đầu là
rỗng. Chúng ta sẽ sử dụng biến thực thể để xác định khối này thuộc loại gì.
Sau
khi thêm biến thực thể này, hãy đóng cửa sổ biến thực thể và lựa chọn những khối
mà bạn muốn đổi màu. Sau đó ở thanh Properties,
thay đổi giá trị của blockColor sang
màu mà bạn muốn. Màu phải là một trong những hoạt ảnh mà ta đã thiết lập trước
đó và khi bạn thiết lập biến Text
trong thanh Properties, bạn không cần
phải gõ kí hiệu chỉ dẫn. Nếu bạn thiết lập khối màu tím, đừng quên thay đổi
sinh mạng của nó, nó cần 2 lần va chạm để phá hủy.
Tuy nhiên, mặc dù chúng ta đã thay đổi biến thực
thể, nhưng không có nghĩa là những hoạt ảnh của khối sẽ thay đổi ngay lập tức.
Chúng ta cần thêm cái gì đó vào event
sheet. Chúng ta cần game kiểm tra biến thực thể khi bắt đầu vào game và
thay đổi hoạt ảnh của khối sang màu đó. Vì vậy, ta chỉ cần thêm:
Bạn có nhận ra những khối với biến thực thể có
giá trị rỗng lai là màu xanh nước biển không? Bởi vì khi C2 không tìm thấy một
hoạt ảnh phù hợp, nó sẽ quay lại màu mặc định, là màu xanh nước biển.
3. Viết biểu thức
Ở trong code mà ta đã viết trước đó, chúng ta
dùng một biểu thức để lấy giá trị của một biến thực thể. Một biểu thức là bất
kì sự kết hợp toán học hợp pháp mà đại diện cho 1 giá trị. Tất cả object của C2
đều có biểu thức.
Một
trong những sự kết hợp toán học đó là biến, một biến thực thể đơn cũng được
tính là một biểu thức. Ví dụ, bạn có thể lấy vị trí của một object từ giá trị x
và y. Bạn cũng có thể thực hiện các phép toán trong một biểu thức, chẳng hạn
như cộng, trừ, nhân, chia.
Bài 5. Hiểu về biến không đổi
Bây
giờ, chúng ta sẽ bắt đầu thay đổi trạng thái của trò chơi. Chúng tôi sẽ làm điều
này bằng cách sử dụng 2 loại biến: biến thực thể và biến toàn cục. Chúng ta sẽ
phân biệt biến toàn cục sau khi kiểm tra sau với biến thực thể. Tuy nhiên, ta sẽ
thay đổi biến toàn cục thành một loại biến đặc biệt: biến không đổi (constant variable).
Vậy biến không đổi là gì? Đó là biến (toàn cầu hay địa phương) mà giá trị không thay đổi cho đến khi được khai báo. Cả biến văn bản hay kiểu số đều có thể trở thành biến ko đổi. Để tạo biến ko đổi, hãy lựa chọn hộp Constant khi tạo một biến toàn cầu mới. Các biến không đổi ở event sheet được chỉ ra theo tên của của nó, có thể viết hoa.
Vậy biến không đổi là gì? Đó là biến (toàn cầu hay địa phương) mà giá trị không thay đổi cho đến khi được khai báo. Cả biến văn bản hay kiểu số đều có thể trở thành biến ko đổi. Để tạo biến ko đổi, hãy lựa chọn hộp Constant khi tạo một biến toàn cầu mới. Các biến không đổi ở event sheet được chỉ ra theo tên của của nó, có thể viết hoa.
Hãy
thử ngay bây giờ, đi tới event sheet
và tạo ra một vài biến cần thiết để tạo các hiệu ứng đặc biệt cho các khối. Như
bạn nhớ, giá trị mặc định biến thực thể hiệu ứng của các khối là 0; chính vì vậy
chúng ta sẽ tạo một giá trị bằng 0 khi khối không có hiệu ứng nào cả. Sau đó ta đặt
các giá trị gia tăng cho các hiệu ứng đặc biệt khác, như trong ảnh chụp màn
hình sau:
Đây
là những gì mà người chơi được thưởng khi phá hủy các khối. Chính vì vậy hãy
thay đổi giá trị thuộc tính hiệu ứng của các khối trong layout. Cho giá trị 1 tới khối xanh lá, 2 tới khối màu đỏ, 3 tới khối màu vàng.
Bài 6. Thêm các sự kiện phụ
Bây
giờ, ta đã gán giá trị cho thuộc tính hiệu ứng, ta có thể bắt đầu thêm các dòng
code tới event sheet. Logic là nếu khối bị phá hủy, chúng ta sẽ kiểm tra biến
thực thể effect của nó, nếu nó giống
một trong những hiệu ứng biến ko đổi, chúng ta sẽ thay đổi giá trị của biến dựa
vào hiệu ứng đó. Để làm một vài điều khi object bị phá hủy, ta sẽ sử dụng sự kiện
On destroyed. Hãy thêm sự kiện On destroyed tới event sheet.
Bây
giờ, chúng ta muốn so sánh một giá trị của biến thực thể sau sự kiện On destroyed; điều này có nghĩa là ta sẽ
tạo một sự kiện trong một sự kiện khác, chúng ta cần sub-event. Để tạo một sự
kiện phụ, đầu tiên bạn cần chọn một sự kiện mà bạn muốn tạo sự kiện phụ và ấn
nút S trên bàn phím, một cửa sổ mới
sẽ mở ra. Ở đây bạn có thể lựa chọn một event mới cho sự kiện phụ. Tạo sự kiện
phụ của bạn cho đến khi được như này:
Không giới hạn sự kiện phụ trong một sự kiện, Bạn
có thể tạo bao nhiêu sự kiện phụ tùy ý nhưng khuyến khích không nên vì nó sẽ khiến
bạn rất dễ nhầm lẫn.
Bây
giờ, để khiến những khối này hoạt động, chúng ta cần thực hiện thêm 3 biến toàn
cầu: score, life và gameTime. Về life và gameTime, chúng
ta muốn chúng tăng sau khi sửa số; life sẽ tăng lên 1 và gameTime sẽ tăng lên
10. Điênt thưởng dựa trên life và gameTime còn lại của người chơi, dòng code
như sau:
Chúng
ta đã thêm thành công các hiệu ứng đặc biệt và thưởng thêm khi những khối bị
phá hủy. Bây giờ, ta muốn thay đổi một số thứ về tấm ván khi các khối bị phá hủy.
Bản dịch do construct2vn.ga thực hiện
Ai sao chép hay chia sẻ hãy ghi nguồn và đưa link www.construct2vn.ga vào đầu bài chia sẻ nhé
Ai sao chép hay chia sẻ hãy ghi nguồn và đưa link www.construct2vn.ga vào đầu bài chia sẻ nhé