您现在的位置是:主页 > news > 黑龙江交通系统网站建设/云搜索引擎
黑龙江交通系统网站建设/云搜索引擎
admin2025/4/30 2:57:56【news】
简介黑龙江交通系统网站建设,云搜索引擎,沧州做网站的大公司,有找专业做淘宝网站的美工我目前正试图以正常速度在屏幕上绘制图像,就像在视频游戏中一样.不幸的是,由于图像移动的速率,一些帧是相同的,因为图像尚未移动整个像素.有没有办法为Graphics2D提供浮点值,以便在屏幕上绘制图像,而不是int值?最初这是我做的:BufferedImage srcImage s…
我目前正试图以正常速度在屏幕上绘制图像,就像在视频游戏中一样.
不幸的是,由于图像移动的速率,一些帧是相同的,因为图像尚未移动整个像素.
有没有办法为Graphics2D提供浮点值,以便在屏幕上绘制图像,而不是int值?
最初这是我做的:
BufferedImage srcImage = sprite.getImage ( );
Position imagePosition = ... ; //Defined elsewhere
g.drawImage ( srcImage, (int) imagePosition.getX(), (int) imagePosition.getY() );
这当然是阈值,因此图片不会在像素之间移动,而是从一个跳到下一个.
下一个方法是将绘制颜色设置为纹理,然后在指定位置绘制.不幸的是,这产生了不正确的结果,显示出平铺而不是正确的抗锯齿.
g.setRenderingHint ( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON );
BufferedImage srcImage = sprite.getImage ( );
g.setPaint ( new TexturePaint ( srcImage, new Rectangle2D.Float ( 0, 0, srcImage.getWidth ( ), srcImage.getHeight ( ) ) ) );
AffineTransform xform = new AffineTransform ( );
xform.setToIdentity ( );
xform.translate ( onScreenPos.getX ( ), onScreenPos.getY ( ) );
g.transform ( xform );
g.fillRect(0, 0, srcImage.getWidth(), srcImage.getHeight());
我该怎么做才能在Java中实现图像子像素渲染的预期效果?