[Video Summary] Ch. 2.7 Timing Code Execution with DispatchQueue asyncAfter, adding Animation & Sound to WordGarden
Mô tả nhanh
Video này hướng dẫn cách thêm hiệu ứng animation và âm thanh vào ứng dụng Word Garden, đồng thời sử dụng DispatchQueue asyncAfter để thực thi code sau một khoảng thời gian nhất định, tạo hiệu ứng lá héo và âm thanh tương ứng khi người chơi đoán sai.
Video
Mô tả chi tiết
Video này hướng dẫn cách thêm hiệu ứng animation và âm thanh vào ứng dụng Word Garden, đồng thời sử dụng DispatchQueue asyncAfter để thực thi code sau một khoảng thời gian nhất định, tạo hiệu ứng lá héo và âm thanh tương ứng khi người chơi đoán sai.
Các bước chính:
- Thêm animation cho ImageView:
- Sử dụng modifier
.animation
sauImageView
. - Chọn
.easeIn(duration:)
để tạo hiệu ứng mờ dần (fade in) cho ảnh. - Gán
imageName
làm giá trị để kích hoạt animation khiimageName
thay đổi. - Ban đầu, đặt
duration
là 3 giây để dễ quan sát, sau đó giảm xuống 0.75 giây.
- Sử dụng modifier
- Hiển thị ảnh "wilt" khi đoán sai:
- Trong hàm
updateGameplay()
, khi phát hiện người chơi đoán sai (sử dụng!wordToGuess.contains(guessLetter)
), thay đổiimageName
thành ảnh "wilt". - Để xảy ra animation "wilt" trước khi ảnh hoa hiện ra, cần sử dụng
DispatchQueue.main.asyncAfter(deadline:)
.
- Trong hàm
- Sử dụng
DispatchQueue.main.asyncAfter
:- Gọi
DispatchQueue.main.asyncAfter(deadline: .now() + 0.75)
để trì hoãn việc cập nhật ảnh hoa sau 0.75 giây (bằng thời gian animation lá héo). - Trong closure của
asyncAfter
, cập nhậtimageName
thành ảnh hoa.
- Gọi
- Thêm âm thanh:
- Import
AVFAudio
để có thể chơi âm thanh. - Khai báo một biến
audioPlayer
kiểuAVAudioPlayer?
làm state variable. - Copy hàm
playSound(soundName:)
từ ứng dụng "You Are Awesome" và paste vào project Word Garden. - Gọi
playSound("incorrect")
khi người chơi đoán sai,playSound("correct")
khi đoán đúng. - Gọi
playSound("word-guest")
khi đoán đúng cả từ,playSound("word-not-guest")
khi hết lượt đoán từ mà không đoán ra.
- Import
- Hoàn thiện và chạy thử:
- Chạy ứng dụng và kiểm tra các hiệu ứng âm thanh, animation trên simulator hoặc thiết bị thật
Các điểm quan trọng:
DispatchQueue.main.asyncAfter
được sử dụng để trì hoãn việc thực thi code sau một khoảng thời gian xác định.- Việc sử dụng
AVFAudio
giúp thêm âm thanh vào ứng dụng một cách dễ dàng. - Animation và âm thanh làm tăng tính hấp dẫn cho ứng dụng.
Chúc bạn thành công với việc hoàn thiện ứng dụng Word Garden của mình!