Tôi đang thực hành một số chương trình trò chơi 2D đơn giản và đã đưa ra lý thuyết rằng trong khi hoạt ảnh (thay đổi thực tế ở vị trí hình ảnh được tính toán tốt nhất với các số dấu phẩy động). Tôi có cảm giác rằng nếu bạn di chuyển một hình ảnh xung quanh với ints các hình ảnh động sẽ không được mịn màng.Điều gì xảy ra khi chuyển đổi gấp đôi (hoặc nổi) thành ints?
Trong Java có vẻ như bạn không thể vẽ hình ảnh có số dấu phẩy động để cung cấp cho một vị trí hình ảnh. Nhưng dường như khi ban đầu bạn khai báo các ảnh x và y của mình, bạn có thể khai báo chúng là Đôi hoặc Phao nổi và khi thực sự vẽ hình ảnh bạn phải đưa chúng vào int. Giống như tôi tìm thấy HERE:
/**
* Draw this entity to the graphics context provided
*
* @param g The graphics context on which to draw
*/
public void draw(Graphics g) {
sprite.draw(g,(int) x,(int) y);
}
Câu hỏi của tôi là về cách Java xử lý chuyển đổi? Nếu đoạn mã này tăng gấp đôi vào phút cuối, tại sao chúng lại tăng gấp đôi ở vị trí đầu tiên? Java có ẩn các số sau dấu thập phân không?
Tôi biết trong C và C++ số sau khi số thập phân bị cắt và bạn chỉ thấy những gì trước đó. Java xử lý việc truyền này như thế nào?
Nó chỉ giảm số thập phân, giống như C, C++. http://www.fluffycat.com/Java/Casting/ – dmcnelis
Bạn nên thực hiện các phép tính trong gấp đôi nhiều nhất có thể, và khi bạn cuối cùng chuyển nó sang một phương thức chấp nhận int, bạn làm Math.round(). – Stephan