在瓷砖地图中移动时,我无法将角色保持在中央

时间:2019-05-27 20:27:49

标签: java swing animation

public void paintComponent(Graphics g) { 
    super.paintComponent(g); //required to ensure the panel si correctly redrawn
    g.setColor(backgroundColor);
    g.fillRect(0, 0, 1280, 1280);
    for(int i = 0; i <visibleHeight;i=i+1){ 
        for(int j = 0; j <visibleHeight;j=j+1){
            if (((hero.getY()-visibleHeight/2)+i) < 34 && ((hero.getY()-visibleHeight/2)+i) > 0
                    && ((hero.getX()-visibleHeight/2)+j) < 34 && ((hero.getX()-visibleHeight/2)+j) > 0){
                if (world[(hero.getY()-visibleHeight/2)+i][(hero.getX()-visibleHeight/2)+j] == '1'){
                    g.drawImage(tree,j*GridToScreenRatio,i*GridToScreenRatio,GridToScreenRatio,GridToScreenRatio,this);
                } else if (world[hero.getY()-visibleHeight/2+i][(hero.getX()-visibleHeight/2)+j] == '2'){
                    g.setColor(trailColour);
                    g.fillRect(j*GridToScreenRatio, i*GridToScreenRatio, GridToScreenRatio, GridToScreenRatio);
                }
            }
        }
    }
}

这是我目前拥有的代码,我不确定如何使字符居中。

1 个答案:

答案 0 :(得分:0)

首先,我看到x for循环和j for循环都在使用VisibleHeight。这不是应该是VisibleWidth,另一个是VisibleHeight吗?

关于英雄。如果您希望英雄位于窗口的中心,则必须从循环中删除绘制他的线条,并在循环后使用windowWidth / 2和windowHeight / 2绘制图像,以便绘制地图(作为背景) )和英雄。