몇 가지 간단한 2D 게임 프로그래밍을 연습 중이며 애니메이션 중에 (이미지 위치의 실제 변화가 부동 소수점 숫자로 계산되는 것이 가장 좋습니다) 이론이 떠 올랐습니다. int로 이미지를 움직이면 애니메이션이 부드럽 지 않을 것이라는 느낌이 들었습니다.double (또는 float)을 int로 변환하면 어떻게됩니까?
자바에서는 이미지에 위치를 부여하기 위해 부동 소수점 숫자로 이미지를 그릴 수 없습니다. 그러나 처음에 사용자가 x 및 y을 선언 할 때 Double 또는 Float로 선언 할 수 있으며 실제로 이미지를 그리는 데는 int로 변환해야합니다. 마찬가지로 나는 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와 C++에서 소수점 이하 자릿수가 잘린 것을 알기 때문에 그 앞에 무엇이 보이는지 만 알 수있다. Java가이 캐스팅을 어떻게 처리합니까?
C, C++와 마찬가지로 10 진수 만 삭제합니다. http://www.fluffycat.com/Java/Casting/ – dmcnelis
가능한 한 두 배로 계산해야하며, 마지막으로 int를 받아들이는 메서드에 전달하면 Math.round()를 수행합니다. – Stephan