Cooldown Lol Là Gì

Thanh cooldown là 1 trong những thành phần đồ họa không chỉ có làm việc trong game hơn nữa ở trong tương đối nhiều các ứng dụng đang thông dụng hiện nay. Nó cần sử dụng để diễn đạt khoảng thời hạn mà fan chơi hoặc người dùng phải đợi để rất có thể thực hiện nay một hành động nào đó.

Bạn đang xem: Cooldown lol là gì

Trong phần lớn game vào vai hoăc chiến thuật như DOTA ,LOL hoặc StarCraft thì đó là một trong dẫu vậy thành phần đặc trưng nhất tác động đến cục diện cuộc đấu của game.

Trong bài hướng dẫn này, chúng ta sẽ tò mò cách làm thế nào để tạo ra một thanh cooldown bất kể ngôn từ bạn cần sử dụng là gì, tất cả sẽ chỉ là code dựng (psuedo-code) với cơ chế hoạt động vui chơi của thanh cooldown. Chúng ta cũng có thể lấy demo tại vị trí cuối của bài xích viết.

Cơ chế chuyển động cơ bản

Thanh cooldown thực tiễn là một hình hình ảnh đồ họa cho câu hỏi cooldown và bài toán cooldown có thể gọi gọn gàng là vấn đề hẹn giờ cho thứ gì đó. Ví dụ như : khi một chuyển động nào này được xảy ra, quy trình đếm thời gian bắt đầu, khi quá trình này kết thúc, hành động đó lại có thể được xảy ra lần nữa. Đó là cooldown.

Nếu đứng từ góc nhìn lập trình, để ngăn ngừa một hành động trong quá trình cooldown, ta đặt một đổi mới bool và gán giá chỉ trị mang lại nó bằng “true” khi hành động được thực hiện. Khi họ có vậy thực thi hành vi này thì đoạn code sẽ đánh giá xem thay đổi bool ta đặt ra có phải bằng “false” không với theo như ta gán ở phía bên trên thì hành vi này sẽ không được xảy ra.Khi quy trình đếm thời hạn đã kết thúc, ta gán quý giá cho trở thành bool đó bằng “false” và hành động sẽ được thực hiện.

*

Khi nút action được kích hoạt, quy trình đếm được bước đầu và nút kích hoạt bị tắt đi. Trong quá trình đếm ngược , khoảng thời gian được hiển thị với đến cho tới khi nó kết thúc. Nút action sẽ lại được kích hoạt lại.

Ta hãy xem đoạn code sau :

01. //An object Character has a boolean variable "Cooldown", a numeric variable "cTimer" and another numeric variable "cEndTime"02. 03. On clicked Button04. TxtHistory.text = txtHistory.text & newline và "The character performs an action"05. Character.cTimer = 006. Character.cEndTime = txtTimer.text //The text object "Cooldown duration"07. Character.Cooldown = True08. Button.Enabled = False09. 10. If Character.Cooldown = True11. Character.cTimer = Character.cTimer + dt12. If Character.cTimer >= Character.cEndTime13. TxtHistory.text = txtHistory.text và newline & "The character is ready to lớn perform an action"14. Character.cTimer = -115. Character.Cooldown = False16. Button.Enabled = True17. Else và Every 0.5 seconds18. TxtHistory.text = txtHistory.text & newline & "The kích hoạt is on cooldown. " & Character.cEndTime - Character.cTimer và " seconds of cooldown remaining."Hàm “On clicked Button” chỉ được xúc tiến khi nút bấm được kích hoạt với phần code bên dưới sẽ chỉ được thực thi khi sau cú click. Đó là hành động người dùng bắt đầu đếm thời gian và để “Cooldown” là “true”.

Khi nút bấm được kích hoạt, đổi mới “Character.cEndTime” là thời điểm cho khoảng tầm cooldown kết thúc. Quý giá này được đặt vào đối tượng text “txtTimer” ngay cạnh bên nút Action.

Đồng thời tại thời gian này, quý giá của “cTimer” được để về 0 vày nó được coi là một vòng thời hạn đếm ngược mới. “Cooldown” đặt về “true” để chất nhận được phần thứ hai của đoạn code được kích hoạt. Cuối cùng, chúng ta vô hiệu hóa nút đi.

Dòng thứ 10 của đoạn code bên trên được xúc tiến vào mỗi giây, nó đánh giá giá trị của “Character.Cooldown” là “true” cùng nếu thỏa mãn nhu cầu điều kiện nó đã thêm giá trị của “dt” vào giá chỉ trị hiện tại của “Character.Timer”.

dt” là viết tắt cho delta time, là 1 trong biến hệ thống đại diện cho khoảng tầm thời gian cần thiết để vẽ từ khung hình trước cho tới khung hình hiện nay tại. Điều này còn có nghĩa là, mang đến dù laptop có khỏe mạnh đến đâu, thì chúng ta đều gồm thể bảo vệ rằng khoangt hời gian đếm ngược cũng biến thành chạy từng đó thời gian.

Nếu như vẫn còn thời gian đếm ngược, họ sẽ khám nghiệm giá trị của “cTimer” xem có to hơn “cEndTime” không, nếu như có, bọn họ phải đi mang đến cái dứt của câu hỏi đếm ngược. Chúng ta đặt “Character.Cooldown” là “false” làm cho đoạn code này sẽ không được thực hiện tiếp mang đến dến khi người dùng ấn nút action lại.

Đó là vớ cả lý giải về cơ chế đếm ngược hay có cách gọi khác là cooldown, sau đây bọn họ sẽ tập trung vào việc làm sao tạo ra thanh cooldown.

Thanh Cooldown cơ bản

Một thanh cooldown là 1 trong thành phần hình ảnh mà nó biến đổi kích thước cùng hiển thị liên tục . Nó là cơ chế cho người chơi biết rất có thể tiếp tục triển khai một hành động.

Xem thêm: P.R.C Là Gì ? Made In Prc Là Của Nước Nào? Made In Prc Là Của Nước Nào

*

Thanh bar đưa từ màu xanh sang màu đỏ thể hiện vấn đề cooldown, nó mở rộng từ 0 cho đến độ rộng ban đầu.

Trong ví dụ trên, thanh bar chỉ đối kháng thuần là 1 trong hình hình ảnh có độ rộng bằng 100 pixel. Lúc hành đông được thực thi, độ rộng bớt về 0 pixel. Sau đó, từng giây khi phát triển thành “Cooldown” là “true”, phạm vi được trả về với giá trị cũ dựa vào giá trị của “cTimer”.

Hãy coi đoạn code sau:

01//Using the same "Character" object as in the basic example, this time the object is visible on screen02 03 On any mouse click & Character.Cooldown = False04 Character.cTimer = 005 Character.cEndTime = txtEndTimer.text06 Character.Cooldown = True07 CooldownBar.Width = 008 CooldownBar.AnimationFrame = 109 10If Character.Cooldown = True11 Character.cTimer = Character.cTimer + dt12 CooldownBar.Width = (CooldownBar.MaxWidth / Character.cEndTime) *Character.cTimer13 14 If Character.cTimer >= Character.cEndTime15 Character.cTimer = -116 Character.Cooldown = False17 CooldownBar.Width = CooldownBar.MaxWidth18 CooldownBar.AnimationFrame = 0Cơ chế đếm ngược khá kiểu như với ví dụ trên nên họ sẽ triệu tập vào “CooldownBar”. Đối tượng này có hai khung người là hình vuông greed color 32x32px và màu đỏ 32x32px. Nó còn có thuộc tính “MaxWidth” được đặt là 100 , là chiều rộng lớn nhất của thanh bar.

Mỗi giây, trường hợp “Cooldown” là “true”, “CooldownBar.width” được để là một phần của “CooldownBar.MaxWidth”. Chúng ta xác định phần này bởi giá trị của vấn đề chia độ rộng lớn số 1 với thời gian dứt của việc đếm ngược vào sau đó nhân tác dụng với quý hiếm “cTimer”.

Ở thời điểm bắt đầu và chấm dứt của bài toán đếm ngược, họ cần phải đảm bảo chuyển khung người sang đỏ khi quá trình bước đầu và sang xanh khi quá trình kết thúc.

Một số cải tiến.

Chúng ta có thể đổi khác điểm ban đầu của thanh bar vô số cách thức khác nhau:

*

Đếm ngược cho khả năng nhân vật

Trong một vài game, nút khả năng còn thể hiện luôn luôn việc đếm ngược thời gian tái kích hoạt mang đến kĩ năng. Như ví dụ sau đây :

*

Như bạn đã thấy, mỗi năng lực có một thanh bar màu đen và một bộ đếm tiếng thể hiện việc cooldown. Thanh bar màu sắc đen thực ra là một hình hình ảnh được bỏ trên nút tài năng có độ mờ bằng 45%, và bộ đếm thời gian là một đối tượng người tiêu dùng text. Từng nút kĩ năng đều có thực thể của nó là “SkillCover” và “txtSkillTimer”.

Lần này, các biến “Cooldown” , “sTime” cùng “sEndTime” được tích hợp mỗi thực thể “SkillButton” . Với điểm gốc đến “SkillCover” là cạnh đáy của nó.

Xem đoạn code sau :

01//Object "SkillButton" with variables "Cooldown" (boolean), "sTime" (numeric), "sEndTime" (numeric), & a specific animation frame lớn know which instance is being clicked/selected.02//Object "SkillCover" with a variable "Skill" mix accordingly lớn the animation frame of the SkillButton they are related to.03//Object "txtSkillTimer" with a variable "Skill" for the same purpose as above.04On SkillButton clicked và SkillButton.Cooldown = False05 SkillButton.sTime = 006 SkillButton.Cooldown = True07 Create Proj & ProjImage objects08 ProjImage.AnimationFrame = SkillButton.AnimationFrame //To either throw a dagger or a ninja star09 10 txtSkillTimer.Skill = SkillButton.AnimationFrame11 &12 SkillCover.Skill = SkillButton.AnimationFrame13 phối txtSkillTimer"s position to the bottom of SkillButton14 phối SkillCover"s position to the bottom of SkillButton15 set txtSkillTimer in Front of SkillButton16 phối SkillCover behind txtSkillTimer //Still in front of SkillButton17 txtSkillTimer.Visible = True18 SkillCover.Visible = True19 SkillCover.Height = SkillButton.Height20 21For each SkillButton và SkillButton.Cooldown = True22 SkillButton.sTime = SkillButton.sTime + dt23 24 txtSkillTimer.Skill = SkillButton.AnimationFrame25 &26 SkillCover.Skill = SkillButton.AnimationFrame27 txtSkillTimer.text = SkillButton.sEndTime - SkillButton.sTime28 SkillCover.height = SkillButton.Height - ((SkillButton.Height / SkillButton.sEndTime) * SkillButton.sTime)29 30 If SkillButton.sTime >= SkillButton.sEndTime31 SkillButton.sTime = -132 SkillButton.Cooldown = False33 34 txtSkillTimer.Skill = SkillButton.AnimationFrame35 &36 SkillCover.Skill = SkillButton.AnimationFrame37 txtSkillTimer.Visible = False38 SkillCover.Visible = FalseỞ đây, họ chọn đúng thực thể của “txtSkillTimer” với “SkillCover”. Không giống như thanh cooldown trước, “Skillcover” bắt đầu từ đầy cho tới vơi, che tổng thể chiều cao của “SkillButton”, và kế tiếp trong quy trình đếm ngược sẽ bước đầu giảm độ cao để hở ra hình hình ảnh của nút.

Để có tác dụng được việc này, bọn họ cho “SkillCover” chiều cao bằng với “SkillButton” để bắt đầu, và sau mỗi size hình, vẫn trừ đi (“SkillButton.Height” / “SkillButton.sEndTime”) * “SkillButton.sTime” từ độ cao đủ của nó.

Bạn rất có thể làm nhiều hơn nữa với “SkillCover”, toàn bộ đều phụ thuộc vào trí tưởng tượng và kĩ năng mĩ thuật của bạn.

Kết luận

Bạn có thể dùng hết sức nhiều cách để tạo một thanh cooldown bar .Không có một khuôn chủng loại nào tất cả định cho nó. Toàn bộ đều phụ thuộc vào vào tài năng của bạn.Bạn rất có thể lấy hướng dẫn ở chỗ này :

https://github.com/tutsplus/HUD-Cooldown-Bars

Cảm ơn bạn đã đọc bài xích hướng dẫn và mong muốn được nghe những đánh giá từ phía bạn.

REF : https://gamedevelopment.tutsplus.com/tutorials/how-to-code-hud-cooldown-bars--cms-20983