[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
.animationsauImageView. - Chọn
.easeIn(duration:)để tạo hiệu ứng mờ dần (fade in) cho ảnh. - Gán
imageNamelàm giá trị để kích hoạt animation khiimageNamethay đổi. - Ban đầu, đặt
durationlà 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 đổiimageNamethà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ậtimageNamethành ảnh hoa.
- Gọi
- Thêm âm thanh:
- Import
AVFAudiođể có thể chơi âm thanh. - Khai báo một biến
audioPlayerkiể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
AVFAudiogiú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!
