Đây là một chức năng tiện đơn giản mà trả về true nếu slowFactor là ít hơn
1.0, nói cho bạn rằng tháp không thực sự làm chậm khủng long.
Khi một con khủng long chạy chậm lại, bạn sẽ làm giảm tốc độ của nó, tất nhiên, nhưng bạn cũng đang
đi để làm nổi bật sprite của khủng long với một màu xanh.
Mở DinosaurEntity.swift và thêm chức năng sau đây để các DinosaurEntity
lớp:
func chậm lại (slowFactor: Float)
{animationComponent.node.color = SKColor.cyanColor ()
animationComponent.node.colorBlendFactor = 1.0
chuyển dinosaurType {trường hợp .TRex, .TRexBoss: spriteComponent.node.speed = CGFloat (slowFactor) trường hợp .Triceratops:! đại lý .maxSpeed = dinosaurType.speed * slowFactor}} Đầu tiên, bạn thêm màu xanh đến nút AnimationComponent. Sau đó, bạn điều chỉnh tốc độ của con khủng long, tùy thuộc vào loại khủng long. • .TRex và .TRexBoss khủng long dùng hành động để di chuyển dọc theo con đường của họ, do đó, bạn điều chỉnh tốc độ bằng cách thay đổi tốc độ trên nút SpriteComponent, mà ảnh hưởng đến tất cả các hành động chạy vào nút đó. • .Triceratops khủng long sử dụng các mục tiêu trong hành vi đại diện của họ để di chuyển, vì vậy chỉ cần điều chỉnh maxSpeed các đại lý của họ sẽ làm chậm họ xuống. Sau khi nó chậm một con khủng long, tháp đá là sẽ xem nếu nó có thể bắn trúng bất kỳ khác khủng long trong phạm vi của nó trước khi nó chạm khủng long cùng một lần nữa. Điều này là để đá tháp có thể làm chậm nhiều loài khủng long nếu họ đang ở trong phạm vi, do đó cho phép người chơi có cơ hội chiến đấu. Theo dõi tình trạng này bằng cách thêm vào các tài sản sau đến lớp DinosaurEntity: var hasBeenSlowed = false Bây giờ, thêm lên tới đỉnh điểm của chậm lại (_ :): hasBeenSlowed = true Bây giờ bạn có một Boolean mà sẽ cho bạn biết hay không tháp đã bị chậm lại một con khủng long. 2D iOS & tvOS Games bởi Tutorials Chương 20: Đại lý, mục tiêu, và hành vi raywenderlich.com 552 Kể từ khi nó FiringComponent của tháp, gây thiệt hại khủng long, đây là một logic nơi để còn làm chậm khủng long, nếu cần thiết. Mở FiringComponent.swift và xác định vị trí damageAction trong updateWithDeltaTime (_ :). DamageAction là một SKAction mà thực hiện một khối đóng cửa. Bên trong sự đóng damageAction, thêm vào như sau: nếu self.towerType.hasSlowingEffect {target.slowed (self.towerType.slowFactor)} Tất cả những gì còn lại là để thay đổi logic nhắm mục tiêu của rock-tháp hoặc thực sự, bất kỳ loại tháp có một làm chậm hiệu lực. Mở GameScene.swift và đi đến didFinishUpdate (). Tại các điểm mà bạn kiểm tra những con khủng long nằm trong phạm vi của tòa tháp của bạn, thay thế các dòng sau: nếu dinosaur.spriteComponent.node.position.x> t.spriteComponent.node.position.x {target = khủng long} Với những dòng này: nếu towerType.hasSlowingEffect {nếu dinosaur.hasBeenSlowed && t.hasBeenSlowed! {target = khủng long} else if dinosaur.hasBeenSlowed == t.hasBeenSlowed && dinosaur.spriteComponent.node.position.x> t.spriteComponent.node.position.x {mục tiêu = khủng long}} else if dinosaur.spriteComponent.node.position.x> t.spriteComponent.node.position.x {target = khủng long} Thay vì chỉ đơn giản là kiểm tra mà khủng long là xa xuống con đường, bây giờ bạn hãy kiểm tra xem nếu có một con khủng long trong phạm vi đó đã không bị làm chậm. Nếu bạn tìm thấy một, nó sẽ được ưu tiên như là một mục tiêu. Nếu cả hai loài khủng long đã bị chậm lại, những ai xa dọc trên con đường được ưu tiên như là một mục tiêu. Xây dựng và chạy, và tại một số điểm, xây dựng một tháp đá để làm chậm những rampaging khủng long. 2D iOS & tvOS Games bởi Tutorials Chương 20 : Đại lý, mục tiêu, và hành vi raywenderlich.com 553 Đó là tháp đá chắc chắn gói một cú đấm, và với hiệu ứng làm chậm mới của nó, nó có thể. chỉ là về đấm cán cân nghiêng của người chơi cố gắng để đánh bại trò chơi mới của bạn với một sự kết hợp của đá và tháp và gỗ xem ra cho rằng T-Rex Boss, như ông có thể mất rất nhiều hình phạt! Xin chúc mừng! Sử dụng một số tính năng tuyệt vời của GameplayKit, bạn đã tạo ra một hoàn toàn trò chơi phòng thủ tháp hoạt động: • Trong chương đầu tiên, bạn đã học cách sử dụng các thực thể và các thành phần để thiết kế trò chơi của bạn để sử dụng lại chức năng. Bạn tách chức năng đối tượng trận đấu quan trọng vào các thành phần và sử dụng những thành phần trong các tổ chức trò chơi của bạn mà không cần phải viết lại bất kỳ mã. • Trong các chương sau đó, bạn sử dụng công cụ tìm đường GameplayKit để di chuyển của bạn khủng long T-Rex trên hiện trường, tránh chướng ngại vật và tòa tháp dọc theo con đường. • Và cuối cùng, trong chương này, bạn sử dụng các đại lý, các mục tiêu và hành vi để di chuyển của bạn Triceratops khủng long theo những con đường của họ. Họ tránh các chướng ngại vật và tháp trong khung cảnh của bạn bằng cách tuân theo các mục tiêu trong hành vi tìm đường của bạn. Nhưng bạn không khá được thực hiện chưa ... một trò chơi như thế này xứng đáng để được nhìn thấy trên một lớn hơn màn hình!
đang được dịch, vui lòng đợi..