java - 从java获取不正确的子图像

标签 java sprite bufferedimage

在我的游戏中,我试图制作一个动画行走序列,因此我试图确保图像会根据其所在的动画帧而变化。当按下空格键时,图像会发生变化,但不是从 Sprite 表中获取下一个图像,而是获取下一个图像和上一个图像。我有下面问题的屏幕截图以及代码。

<小时/>

按下空格之前

before
按下空格后

after

<小时/>

代码

private static BufferedImage image;
private static BufferedImage[] cropped = new BufferedImage[15]; 
private static byte frame = 0;

public Player(){
    try {
        image = ImageIO.read(new File("DownWalking.png"));

    } catch (IOException ex) {
        ex.printStackTrace();
    }


}

public void drawPlayer(int x,int y,Graphics2D g2){
    if (frame == 0){
        cropped[0] = image.getSubimage(2, 1, 23, 43);   
    }
    if (frame == 1){
        cropped[1] = image.getSubimage(34, 1, 54, 45);
    }

g2.drawImage(cropped[frame],x * Tile.tileSize, y * Tile.tileSize, cropped[frame].getWidth(), cropped[frame].getHeight(), null);

最佳答案

getSubImage 的方法签名是:

getSubimage(int x, int y, int w, int h)

getSubimage(x1,y1,x2,y2)导致您的图像获得 2 个图 block 而不是 1 个图 block 。

Source

关于java - 从java获取不正确的子图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20725258/

相关文章:

java - 用于配置的 Web UI 框架

java - 为什么 Java 没有条件与和条件或运算符的复合赋值版本? (&&=, ||=)

android - 在 Android 中移动位图时的图像轨迹

javascript - 删除指定为子级的 Sprite 给另一个 Sprite - Phaser

java - 之间的区别。图形填充矩形和清除矩形

java - 未获取通过 RestTemplate.getForObject 传递的 header

android - SetTexture 和 Sprites 没有按预期工作! (LibGDX)

java - 如何缩放PNG图像直到达到目标文件大小

java - MiniCraft中notch是如何做动画的?

java - 如何让 ScrollView 自动滚动到底部?