01/10/2018, 15:38
Cách để so sánh vị trí của 2 "vật" trong swift
Nếu em muốn kiểm tra xem vị trí của 2 “vật” trên trục y có bằng nhau không thì dùng như thế này có đúng không ạ
if (tuy.position.y) == (me.position.y) {
addScore(playerWhoWon: tuy)
}
nếu đúng thì tại sao nó không thực hiện addscore mà e gõ ở dưới và nếu sai thì nhờ các bro giúp e sửa với ạ
Many thanks
Bài liên quan
Format code của bạn cho dễ nhìn:
làm sao để format được như vậy ạ , vì e mới vào nên còn mu mơ lắm
đọc code của bạn thì mình cũng có hiểu chút chút
nhưng hình như trong t.h này nó k dc
p/s: tuy ở đây là trái bóng và me là paddle nhá
Code không sai, không cộng được điểm thi có nghĩa là 2 ý không bao giờ bằng nhau thôi
tăng kMinimumVerticalSize lên thử, chứ collision detection bên game mình không rành.
@qloved bạn nhìn vào đường màu cam thì sẽ thấy mình cố tình cho nó chạm vào bên phải của paddle mục đích để vị trí 2 cái nó = nhau mà
mình tăng kMinimumVerticalSize lên 1 thì được rồi ^^ cảm ơn bro nhé
Bạn nhìn thì nói làm gì, quan trọng là số, chắc là kiểu dữ liệu của y là float, bạn nghĩ với phần thập phân giữa 2 số rất nhỏ thì có thể thể hiện trên màn hình được không, hơn nữa con chạy của bạn là di chuyển nên chắc bạn sẽ cộng với 1 số offset nào đó, với phép cộng liên tiếp 1 số không nguyên thì mình không chắc có giá trị y của thanh padding có thể bằng được với y của con chạy
Với lt game thì bạn nên thay so sánh bằng bằng các phép so sánh tương đối sẽ cho kết quả chính xác hơn. Ngoài ra cẩn thận với trường hợp đi xuyên tường nếu vận tốc của vật di chuyển lớn và độ dày của tường nhỏ.
Mình ví dụ 1 TH để bạn tự phân tích:
Quả bóng ở vị trí 1,1 hàng rào laze là đường thẳng x = 5. Nếu bóng chạm tia laze thì sẽ bị mất điểm:
Rõ ràng là TH nào thì bóng cũng sẽ bị laze cắt nhưng không phải TH nào áp dụng cách tính thông thường cũng cho kết quả đúng được
cảm ơn bạn nhưng mình vẫn chưa hiểu lắm chỗ " vận tốc di chuyển cao mà độ dày của tường nhỏ " , tại sao lại vậy ?
Bạn có thể nghiên cứu TH 4 ở ví dụ trên, quả bóng sẽ xuyên qua tường bao ngày cả khi bạn cộng thêm threshold = 1
ok bạn , mình sẽ nghiên cứu thêm