Video: [Phim ngắn] THE SPECIAL GIFT | MÓN QUÀ ĐẶC BIỆT 2025
Một khi các thiên thần bắt đầu di chuyển, luôn có khả năng chúng sẽ để lại ranh giới của màn hình. Thông thường, các nhà phát triển trò chơi HTML5 phản hồi theo một trong năm cách: bọc, nhả, dừng, chết hoặc tiếp tục. Thư viện SimpleGame có một thói quen kiểm tra ranh giới cho phép bạn chỉ định những hành vi mặc định nào để sử dụng. Thuộc tính boundAction của sprite chỉ ra hành động nào nên được sử dụng. Bạn có thể sử dụng trình kiểm tra ranh giới để thực hiện những việc sau:
-
Xác định biên giới.
Các đường viền được xác định bởi chiều rộng vải.
-
Kiểm tra xem người sử dụng đã thoát khỏi đường biên chưa.
Sau đó, một loạt các biến khác đã được thực hiện có chứa các giá trị Boolean cho biết liệu ma nằm ở một trong các đường biên: offRight, offLeft, offTop và offBottom. Sử dụng các câu lệnh cơ bản nếu xác định xem ma xút có bị tắt màn hình theo một trong các cách sau.
-
Xác định hành động ranh giới.
Sử dụng câu lệnh if đơn giản để xác định hành động ranh giới nào hiện đang được đặt cho sprite.
-
Nếu boundAction là WRAP:
Thay đổi biến x hay y sang phía đối diện, nhưng chỉ để lại các giá trị dx và dy một mình.
-
Nếu boundAction là BOUNCE:
Đảo ngược dy nếu spite bị dội xuống phía trên hoặc dưới cùng, và dx nếu sprite bị trả về phía trái hoặc phải. Không cần phải thay đổi trực tiếp x hay y.
-
boundAction là STOP: Chỉ cần thiết lập tốc độ bằng không, bất kể ranh giới nào đã được thoát ra.
Nếu
-
boundAction là DIE: Đặt tốc độ bằng không và gọi phương thức hide () của sprite. Điều này sẽ làm cho tinh thần biến mất và không còn được xem xét trong tính toán va chạm.
Bất kỳ sự hạn chế khác được coi là TIẾP THEO.
-
Không cần hành động ở đây bởi vì tinh thần sẽ tiếp tục di chuyển ngay cả khi nó không hiển thị. Nếu đây là hiệu quả mong muốn, bạn bằng cách nào đó chỉ ra cho người dùng nơi mà ma, hoặc cung cấp một số cách để các ma cà rồng trở lại.
Đây là một phần của mã cho trình kiểm tra va chạm:
offRight = false; offLeft = sai; offTop = sai; offBottom = sai; if (this.x> rightBorder) {offRight = true;} if (this.x bottomBorder) {offBottom = true;} if (this.Y <0) {offTop = true;} nếu (điều này boundAction == WRAP) {if (offRight) {this. x = leftBorder;} // end if if (offBottom) {this. y = topBorder;} // end if if (offLeft) {this. x = rightBorder;} // end if if (offTop) {this. y = bottomBorder;}} else if (this. boundAction == BOUNCE) {if (offTop || offBottom) {đây.dy * = -1; điều này. calcSpeedAngle (); điều này. imgAngle = này. moveAngle;} if (offLeft | offRight) {this. dx * = -1; điều này. calcSpeedAngle (); điều này. imgAngle = này. moveAngle;}} else if (this. boundAction == STOP) {if (offLeft | offRight || offTop || offBottom) {đây. setSpeed (0);}} else if (this. boundAction == DIE) {if (offLeft | offRight | offTop || offBottom) {this. ẩn giấu(); điều này. setSpeed (0);}} else {// tiếp tục mãi mãi}} // end checkbounds
Nếu bạn muốn thay đổi hành động ranh giới của sprite trong simpleGame, bạn có thể sử dụng phương thức setBoundAction () để làm như vậy.
Lưu ý rằng một vài trường hợp có thể yêu cầu các hành vi khác nhau. Ví dụ: bạn có thể quấn quanh cạnh nhưng dừng lại ở trên cùng hoặc dưới cùng. Nếu bạn cần một hành vi cụ thể hơn, chỉ cần xây dựng một phương pháp checkBounds mới () cho sprite của bạn. Tuy nhiên, bạn sẽ cần phải kiểm tra tất cả các ranh giới bởi vì checkBounds mới của bạn () sẽ ghi đè hoàn toàn một trong những được xây dựng trong simpleGame.